深度学习推荐系统(5)
Embeding &MLP的缺陷
我们之前所讲的模型,都有这样的特点:首先将大规模稀疏特征映射到Embedding,然后转换其维度后连接多层感知器(MLP),以此学习特征的非线性关系。这些方法的优点是显而易见的,能够减少大量的特征工程,同时取得很好的效果。因此在推荐系统领域非常流行。这类模型被DIN作者统称为Embeding &MLP
但是,Embedding &MLP 模型 中,表示用户的向量维度有限,这成为了制约模型表示用户广泛兴趣的瓶颈。具体的讲,用户的兴趣被压缩为固定的向量,这使得模型的表达能力被限制。如果要增强表达能力则需要扩大学习参数,这将导致计算和存储的负担。
当然,用户兴趣的重要程度是不同的,只有部分的用户兴趣会影响用户的行为。 例如,一位女游泳运动员会点击推荐的护目镜,主要是因为购买了泳衣,而不是上周购物清单中的鞋子。
DIN
DIN是由阿里巴巴所研发的网络,这个模型是应用在有大量用户历史行为信息的场景下,例如淘宝根据用户的购买历史来推荐给用户商品。DIN将用户的历史行为数据与当前的产品相关联。通过用户的历史数据推断用户的兴趣,达到精准的广告推送。
特征
上图是DTN论文中,阿里巴巴所给出的广告系统中的特征格式。其中第二行的用户行为特征非常关键,且是多热编码(mult-hot)
多热编码:例如我们现在有3个样本: - 样本1 在该属性下取值有1,2两种特征 - 样本2 在该属性下有2一种特征 - 样本3 在该属性下有3,4 两种特征。我们以multi-hot编码的形式来定义特征应为 - 样本1 [1,1,0,0] - 样本2 [0,1,0,0] - 样本3 [0,0,1,1]
按照作者的举例,[weekday=Friday, gender=Female, visited_cate_ids={Bag,Book},ad_cate_id=Book]
,其中visted_cate_ids代表用户的历史商品列表,每个人的历史商品列表的长度都不一致,所以采用mult-hot编码。最终的特征形式如下:
模型结构
论文着重介绍了一个Embeding &MLP的基础模型,将其与DIN对比,可以更直观的感受到DIN的结构特点和优势
Embeding &MLP基础模型
基础模型分为Embedding Layer、pooling layer and Concat layer、MLP、Loss。
Embedding Layer:把高维稀疏向量转换为低维稠密向量。
Pooling layer and Concat layer:不同用户的行为数量并不一致,使得每个用户的历史行为特征拼起来就不一样长,因此利用池化操作将维度统一。常用的池化操作有求和池化和平均池化。Concat layer层的作用就是拼接了,就是把这所有的特征embedding向量,如果再有连续特征的话也算上,从特征维度拼接整合,作为MLP的输入。
MLP 全连接,用了学习特征之间的各种交互。
LOSS 使用的目标函数是负对数似然函数
L = − 1 N ∑ ( x , y ) ∈ S ( y log p ( x ) + ( 1 − y ) log ( 1 − p ( x ) ) ) L=-\frac{1}{N} \sum_{(\boldsymbol{x}, y) \in \mathcal{S}}(y \log p(\boldsymbol{x})+(1-y) \log (1-p(\boldsymbol{x}))) L=−N1(x,y)∈S