总结提纲--经典算法(推荐系统)

2016--Yoube--视频推荐DNN

召回阶段也用了DNN(别人家都是用CF、基于内容、基于社交网络等): 输入是{用户画像(包括用户行为video集合+用户行为过的搜索词集合+用户属性),context(地理位置信息...)},输出是(百万个video,每个是一个类别);损失函数是softmax+交叉熵损失;用户实际观看完的video做正样本,用negative-sampling选负样本(一个正样本和上千个负样本,在一次softmax里进行更新);

召回阶段,训练时DNN的输出u视作用户编码向量,和百万个w向量点乘,得到百万个z,通过softmax得到百万个概率p;预测时,可以把百万个w向量看作video编码向量(因为要求的是u和w点乘最大的那上百个w们),所以可以把w放到库里,用KNN检索来近似点乘内积最大;

Ranking阶段: 输入是:{用户画像(包括用户行为video集合+用户属性),context,一个候选video(主要是ID)}; 输出是:一个经过sigmoid后的概率p;

2016--Google--应用商店推荐Wide&Deep

wide侧:人工做特征交叉,负责记忆,倾向于给用户推他已经点击过的东西;

deep侧:embedding+DNN,负责泛化,倾向于给用户推的东西更多样性;(注意:deep侧最后一层的几百个输出值,要和wide几百个交叉后的特征,一起加权相加,再经过softmax,也就是几百对几百,才平衡)

2017--华为--应用商店推荐DeepFM

和Wide&Deep的区别:wide侧用的FM二阶特征交叉,比之前手工特征工程要高效;FM向量和Deep向量是复用的,联合训练;

2017--Google--广告CTR预估公开数据集上的Deep&Cross

和Wide&Deep的区别:wide侧用Cross网络来自动构造有限高阶的交叉特征; 比Deep侧的参数少很多( O(层数*w的维度))

Cross结构:竖着的原始输入x0 * 横着的上层网络输出x^{_{}^{T}} * 竖着的权重向量w + bias向量b + 竖着的上层网络输出x(这项是借鉴了ResNet,让前面的网络只拟合残差

2018--MSRA--xDeepFM

自动构造输入向量的“高阶”特征组合;可惜工业界实际效果一般比不过Wide&Deep和DeepFM;时间复杂度高是痛点;容易过拟合(可对特征做离散化,加dropout来解决)

2018--阿里妈妈--转化率CVR预估

1. ESMM 根据用户行为序列,显示引入CTR和CTCVR作为辅助任务,“迂回” 学习CVR,从而在完整样本空间下进行模型的训练和预测,解决了CVR预估中的2个难题。

2. 可以把 ESMM 看成一个新颖的 Multi-Task-Learning 框架,其中子任务的网络结构是可替换的,当中有很大的想象空间。

2018--阿里--电商广告CTR上的DIN

在Embedding+DNN的基础上,用候选Item和用户行为Item的Attention做权重,对用户行为Item序列做了带权pooling

原理是对用户行为序列进行了按候选Item的不同而区分性对待,每个行为的权重是不同的;

2018--阿里--电商广告CTR上的DIEN

(和DIN的区别只有用户行为序列编码那里)

1.引入RNN对用户行为序列建模;(用户行为序列是时间上的序列,所以很自然联想到RNN)

2.对序列里的中间兴趣和下一时刻的输入行为,进行了相关度建模(附加损失函数对RNN进行了增强);

3.用每时刻的兴趣和该ad特征进行了相关性概率计算,作为下一层GRU单元的update-gate的输入,影响“当前兴趣”和“记忆兴趣”之间的取舍程度;(借鉴了AGRU,把Attention引入RNN,即用户的总的兴趣只和一部分用户行为有关)

2019--阿里--淘宝电商推荐的BST(Transformer)

(和DIN的区别只有用户行为序列编码那里)

Transformer把用户行为序列和候选item放一起进行特征抽取,所有时刻的输出向量都concatenate起来(行为序列固定长度20,不够就padding)

Transformer的套路:Multi-Head Self-Attention,FFN,position embedding

2019--Facebook--DLRM(主要是工程方面;效果和DCN基本持平,还号称state-of-the-art)

dense特征,经过bottom MLP的变换,得到一个embedding; 和类别特征的embedding们(可选的经过MLP后的向量),两两之间做向量点乘(类似FM的思想),得到的很多乘积串成一个向量,输入到top MLP里面,最后过sigmoid得到点击概率;

Model并行:输入Embedding占内存太大,所以存放在多个device上;

Data并行:top MLP的参数量小,所以每个device上都复制一份,但是处理不同的训练数据;

Embedding的All-to-All通信;MLP梯度的AllReduce;

2016--微软--Item2Vec

把同一个用户点击过的item集合视为sentence,把item视为word,窗口无限大,进行skip-gram&negative-sampling训练,得到的词向量就是item-embedding; 可用于神经网络的输入初始化值,以加快收敛;

同理,User2Vec也行,把item上点击过的用户集合视为sentece, 把用户视为word,得到user-embedding;

本质是基于ItemCF/UserCF协同过滤的,用户点击item的行为为依据;

我的想法:训练item2vec的时候,把该用户对应的集合也用一个embedding表示,参与训练,也能捎带得到user-embedding啊,类似sentence-embedding那种;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值