今天我想介绍阿里的同一推荐团队一脉相承的两篇文章,Deep Interest Network for Click-Through Rate Prediction和,Deep Interest Evolution Network for Click-Through Rate Prediction。这是第一部分,主要介绍前一篇文章。
Deep Interest Network(DIN)
Deep Interest Network提出于2017年。它的思路非常值得借鉴。在电子商务系统或者说所有的推荐系统中,CTR预测都是一个值得注意的问题。而在今年了,深度学习方法被广泛地应用于CTR预测中。
这篇文章认为,大部分目前使用的深度学习模型都可以认为是Embedding&MLP结构,即大规模的、稀疏的输入数据首先被压缩成低维的embedding,变成固定长度的输入向量,被输入到全连接网络中去。这些模型大大减少了特征工程的工作量,因此广为流行。
但这些方法仍然有缺点,最大的缺点就是固定维数的向量不能充分地表达用户兴趣的diversity。我们当然可以扩大向量的维数,但这会导致模型overfitting的可能性大大增加。在推荐系统中,兴趣一般由过去的行为来表示。从另一个角度上说,我们也不一定非要用维数很高的向量。用户的兴趣也许很广,但是在预测某些项目的时候我们并不需要知道用户全部的interest。比如说,预测一个用户是不是要买一双鞋子时,我们关心她在买衣服鞋子时的兴趣,而不关心她在买厨房用品时的兴趣。文章把这类兴趣称为locally activated,这个文章都是试图利用attention机制在diversity和locally activated之间寻找较优的平衡。
在淘宝系统中,广告即是商品,也就是一般推荐系统中的item。推荐系统的逻辑如下:把一般的retriever阶段称为Matching,系统逻辑由matching和ranking组成。淘宝使用collaborative filtering来完成matching过程,选择一些candidate,再用CTR prediction方法进行排序。
输入排序算法的feature大部分情况下是multi-group categorical form,它们被one-hot或者multi-hot形式表示出来,一个典型的输入如下:
而整个输入空间则如图所示:
Base Model
淘宝本来使用的是一个Embedding&MLP模型,我们在这里称这个model为Base Model。这个model由如下几部分构成:
Embedding Layer
Embedding Layer负责将一些上面提到的高维的binary vector转变为稠密的低维向量。例如我们可以把约 1 0 7 10^7 107维的goods id向量转化为几十维的embedding向量。Embedding layer使用字典查找的方法,并遵循如下规则:
- 如果 t i t_i ti是one-hot vector,就把它转化为简单的embedding, e i = w