文章目录
DeepMCP
Abstract
经典的CTR模型关注的是feature-CTR之间的关系(权重)。
DeepMCP模型在此基础之上又额外考虑了
● feature-feature
● user-ad
● ad-ad
这三种关系。
Model
整个模型包括三个部分
- matching subnet
用来匹配user-ad之间的关系,论文中说就是一个ad是否匹配一个用户的兴趣 - correlation subnet
用来探索ad-ad之间的关系,主要处理的是在用户点击历史的windows中的ads的关系 - prediction subnet
建模feature-CTR的关系,给出最终的CTR_pred_rate
但是在test stage会只激活Prediction subnet部分:
feature segregation
作者将features分成了四个组:
- user(userId, age等)
- query(query, query cate.等)
- ad(creativeId,adTitle等)
- other feat.(hour of day, day of week)
Example
这里作者给出了一个Motivating example我觉得比较简洁的说明了问题
如上图所示。
embedding经过随机初始化当我们使用CTRLabel作为supervision的时候u1和u2的表示相差较大,因为预测任务并没有考虑feature相似带来的相关性。所以作者认为很难精确的估计pCTR(途中的问号)
但是当我们考虑feature-feature和ad-ad之间的relationship就可能较好的改善上面这个问题。
Prediction Subnet
论文中的结构图如下所示:
其中的结构是比较简单的DNN,论文中提到这个部分可以替换为其他的经典CTR模型。
对于输入m的获得:
是other fearue、user feature、和Query feature经过embedding之后concate获得的。
其中对于文本特征是利用bi-gram通过embedding然后经过sum pooling之后得到的。
最后一层FC输出的经过sigmoid得到最终的pCTR。
Matching Subnet
这一部分用来提取user-ad之间的高阶关系,一个广告和用户兴趣的相关度。这里又一个我认为非常好的观点,作者认为如果用户点击了这个ad那就说明这个ad是符合用户的兴趣的,同时在某种程度上这个ad和用户输入的query是相关的,可能很相关也可能只是一点点相关,但是一定是有联系的。文中用high-order relationship来描述,这是非常有意义的,在我看来。
于是得到了Matching Subnet的这个framework:
上图中的输入包括两个部分,一个是user part,另一个是ad part
● user part
输入的是user feature和query feature,经过concate operation得到的就是m_u
● ad part
输入的是ad feature部分,经过emb然后conatenate得到m_a
最后我们可以得到matching score s:
注:
这里activation func并没有选择常见的relu,而是tanh主要是因为ReLU会导致输出存在很多的0,进而导致
Correlation Subnet
最后一个subnet用来建模ad-ad之间的关系。
使用的是在一个time window的用户点击序列中的ads,然后目的为了学习到跟好的ad表示。
首先使用skip-gram模型获取ad表示,因为一个用户点击的ad在一段时间内是存在一定的关系的
假设有点击历史如下:
{a1, a2, …, aL}
利用马尔可夫模型negative sampling来计算:
上式中Q表示sampled negativa ads的数量。
Training Procedure
上述三个部分的loss函数分别是:
● predict subnet:
● matching subnet
● correlation subnet
● final loss
Dataset
-
-
Company advertising dataset