第八章
深度学习推荐系统的前沿实践
Facebook的深度学习推荐系统
GBDT+LR
通过GBDT自动进行特征筛选和组合,生成新的离散型特征向量,再把该特征向量当做LR模型的输入,预测CTR
- 特征工程模型化
- 模型复杂性和实效性的权衡
DLRM(Deep Learning Recommender Model)
特征工程
类别、id类特征用one-hot编码生成稀疏特征(sparse features)
数值型连续特征(dense features)
Embedding层
每个类别转换成one-hot向量后,用Embedding层将其转换成n的embedding向量
连续型特征concat成一个特征向量
神经网络层(NNs层)
特征交互层(interactions层)
将之前的embedding两两内积,目的让特征之间充分交叉,组合
目标拟合层
sigmoid函数给出最终的点击率预估
Airbnb基于Embedding的实时搜索推荐系统
生成短期兴趣Embedding的目的是进行房源的相似推荐,以及对用户进行session内的实时个性化推荐
生成长期兴趣Embedding的目的是在最终的推荐结果中照顾到用户之前的预定偏好,推荐更容易被用户预定的个性化房源
基于短期兴趣的房源Embedding方法
Item2vec,把序列当做一个句子样本,开始Embedding过程
skip-gram model作为embedding方法的框架,通过修改word2vec的目标函数使其逼近airbnb的业务目标
正样本取自session内点击序列滑动窗口中的房源,负样本则是确定中心房源后从语料库中随机取一个
基于长期兴趣的用户Embedding和房源Embedding
预定序列十分稀疏,无法使用跟点击行为一样的操作进行word2vec embedding操作
- 预定行为的总体数量远远小于点击行为,所以预定会话集合的大小是远小于点击会话
- 单一用户的预定行为很少,大量用户在过去1年甚至只预定过一个房源,导致很多预定会话序列长度仅为1
- 大部分房源被预定的次数也很少,要使word2vec训练处较稳定有意义的embedding,物品最少出现5-10次,但大量房源被预定的次数少于5次,无法得到有效的embedding
如何解决:基于某些属性规则做相似用户和相似房源的聚合
用聚合数据的方式生成新的预定序列
Airbnb在训练user type embedding和list type embedding时是把所有元组扁平化了,把用户属性和房源属性当做完全相同的词去训练embedding
Airbnb搜索词的embedding
搜索结果更接近用户动机
Airbnb的实时搜索排序模型及特征工程
支持Pairwise Lambda Rank的GBDT模型
YouTube深度学习视频推荐系统
候选集生成模型(Candidate Generation Model):召回层
Youtube推荐系统的候选集生成模型是一个标准的利用Embedding预训练特征的深度神经网络模型
用户向量的生成:因为输入的特征向量全部都是用户相关的特征,所以在使用某用户u的特征向量作为模型输入时,最后一层ReLu层的输出向量可以当做该用户的Embedding向量。
排序模型
排序模型只需对几百个候选视频进行排序,因此可以引入更多特征进行精排
time since last watch:表达的是用户观看同类视频的间隔时间
previous impression:该视频已经被曝光给该用户的次数:避免同一个视频对同一个用户的持续无效曝光,尽量增加用户看到新视频的可能性
对4、5特征还进行了平方和开方的处理,提升模型对特征的表达能力。
候选集使用softmax作为输出层
排序选择加权逻辑回归作为输出层,增加用户观看时长才是最主要的优化目标
将正样本的观看时长作为其样本权重
odds(机会比):p/(1-p)
变量odds本质上的物理意义就是每次曝光期望观看时长
训练和测试样本处理
next watch多分类问题,使用softmax进行训练,因为总共的分类有数百万之巨,因此会很低效
解决方案:使用负采样,分层softmax效果不好,所以使用了负采样
没用原始日志,而是对每个用户提取等数量的样本
因为减少高度活跃用户对模型损失的过度影响,使模型过于偏向活跃用户的行为模式,忽略数量更广大的长尾用户的体验
处理测试集没有采用经典的随机留一法,而是以用户最近一次观看行为作为测试集
避免引入未来信息,产生与事实不符的数据穿越问题
处理用户对新视频的偏好
引入了Example Age特征:训练样本产生的时刻距离当前时刻的时间
阿里巴巴深度学习推荐系统的进化
LS-PLM、DIN、DIEN、MIMN
ESSM,浏览-点击、点击加入购物车,多目标优化模型ESSM,建立CTR CVR模型
多模态信息,多模态CTR模型
阿里巴巴推荐系统模型的进化过程
基础深度学习模型
Embedding + MLP深度学习模型架构
DIN
注意力机制替换基础模型的Sum Pooling操作
DIEN
使用序列模型在用户行为历史上抽取用户兴趣并模拟用户兴趣的演化过程
MIMN
在DIEN的基础上,将用户的兴趣细分为不同兴趣通道,进一步模拟用户在不同兴趣通道上的演化过程,生成不同兴趣通道的记忆向量,再利用注意力机制作用于多层神经网络
演化重点在于对用户历史行为的利用