模型背景
用户在访问电商网站时,会表现出兴趣的多样性。但用户是否点击当前的商品或广告,很大程度上依赖于其历史行为,并且仅仅取决于历史行为中的一小部分。而在之前如Wide&Deep、DeepFM之类的CTR预估模型中,首先学习各个特征的embedding表示,将高维度稀疏数据转换为低维度的向量表示,然后学习低维的特征交互和高维的非线性关系。但是这些研究没有针对用户历史行为特征进行建模。
DIN模型在这种背景下被提出,对用户历史行为特征进行建模,捕捉用户历史行为和当前商品之间的关联,更准确地进行推荐。
模型结构
基线模型
首先介绍基线模型,即DIN修改的基础。基线模型包括Embedding层、Pooling和Concat层、全连接层、输出层四部分。
Embedding层将高维稀疏的输入转换为低维稠密的向量表示。由于输入包含用户行为数据,而每个用户的历史行为数是不同的,对于这类特征,我们一般会用multi-hot编码来表示,即向量中不仅有一个维度为1。
pooling层将用户的历史行为embedding变为统一长度,pooling操作可以选用sum或averate,最终得到固定长度的embedding向量来表示用户兴趣。
pooling层的结果拼接后作为全连接层的输入。全连接层用来学习特征之间的非线性关系。对于点击率预测任务,输入user,ad和publisher的特征,输出是否被点击({not-click, click}),是一个二分类问题,因此损失函数设计为:。
DIN模型
在基线模型中,输入的embedding为所有历史商品信息的综合表达,和当前候选广告商品交互。但是之前提过用户是否点击当前的商品或广告仅仅取决于历史行为中的一小部分,如果综合考虑所有历史信息会引入噪声。因此DIN模型在当前候选广告和用户行为之间引入注意力机制,让模型更关注和当前候选广告更相关的用户历史行为。
DIN模型结构为:
DIN中应用的注意力机制可以用公式表示为:
其中是用户的embedding向量,