关注我们,一起学习
在模型中进行单调性建模在医学和金融领域都有着重要的作用,比如在金融领域,同一个用户在不同权益下的转化率是随着权益的增大呈现递增趋势的,曲线是单调的[1]。而单调性建模可以从几个方面出发:函数建模,模型结构,正则化。
函数建模
根据数据分布,设定先验的单调性函数,用模型来预估这些函数对应的参数。
- 线性单调函数[5],,其中c干预的权益,softplus保障了c的权重系数是大于0的
- [6]中进一步在上述的基础上加了sigmoid,,得到非线性的单调性函数
- 建模成sigmoid函数[7],,其中c是干预的offer,a和b是可学习参数都大于0,a是敏感度,b是拐点,可以用类似softplus的激活函数来控制;D决定了上界。
模型结构
累计求和,增量大于0
[1]中提出的方式是预测不干预情况下的转化率,然后对于每种干预,预测在该权益干预下相对前一个更小的权益干预的增益,并保证该增益值大于0,从而保证单调性。
每种干预相对前一种的增益通过NN预测得到logit,然后可以通过平方,exp()或其他激活函数等操作来保证增益大于0,对于干预t下的预测值表达如下,其中表示相邻干预的增益,对于干预t求前t个干预的累计增益。
constrained monotonic neural network[2]
下图是构建constrained单调网络(下面简称cmnn)的结构图,包含了可学习参数和激活函数,那么这样一个单元可以一层层的组合就可以构造成一个多层的单调NN。笔者以为,在真正使用的时候,不一定需要整个网络都都单调的NN,比如可以在最后几层的时候采用这个。
- 线性变换部分,在常规的wx+b的基础上约束权重的正负性,通过t来控制单调递增或递减,
- 经过了上面的线性变换部分,就要进入到激活函数部分了,一方面对于sigmoid这种饱和有界的激活函数,在训练时有时会难以训练和收敛;另一方面,像relu这类函数对于在拟合饱和有界函数的时候又不太友好,因此作者这里考虑用分段函数。这里的表示relu,elu等函数,表示哪些维度执行分段中的哪些函数,,m为输入h的维度,如果(m,0,0)则输入的h向量都走激活函数(比如relu)。
例子
- 这一层的输出表示为
正则化或损失函数
- 可以采用L2R中的pair wise 损失,约束前一个权益的预测logit要小于后一个,如
- 也可以采用point wise损失,干预M作为特征输入,损失函数为[4],其中表示神经网络的原始损失如CE loss等,表示递增干预M产生的预测值之间的差值,比如M1>M2,并且预测值也更大,则就小于0,由于存在max(),因此符合单调性的情况下,这部分损失值为0
参考
- [1] End-to-End Cost-Effective Incentive Recommendation under Budget Constraint with Uplift Modeling
- [2] Constrained Monotonic Neural Networks
- [3] Deep lattice networks and partial monotonic functions
- [4] How to Incorporate Monotonicity in Deep Networks While Preserving Flexibility?
- [5] Graph Representation Learning for Merchant Incentive Optimization in Mobile Payment Marketing
- [6] Adversarial Learning for Incentive Optimization in Mobile Payment Marketing
交流群:点击“联系 作者”--备注“研究方向-公司或学校”
欢迎|论文宣传|合作交流
往期推荐
腾讯 | MTMT: 促进用户增长的多干预多任务uplift模型
长按关注,更多精彩
点个在看你最好看