推荐资料整理

推荐算法
https://zhuanlan.zhihu.com/p/35815532 推荐系统遇上深度学习系列课程。 算法和推荐有点脱节,有很多就是单纯介绍算法
https://www.bookstack.cn/read/paddlepaddle-tutorials/spilt.6.bed9defe2f6deddd.md Paddle实现推荐系统实例讲解

https://zhuanlan.zhihu.com/p/27768663 四大常用推荐算法
1.协同过滤:1)根据好友推荐,把好友的喜好视为你的喜好。 有利于发觉用户新喜好,可能和历史喜好差异巨大
2)根据你的历史记录推荐,把和你的历史喜好相似的喜好也视为你的喜好。 完全依赖历史内容,但是会慢慢产生局限性
3)综合以上两种方式。 即考虑新喜好,有考虑历史喜好
2.矩阵分解(也是协同的一种):在一个新的特征空间下表示现有样本。构建user-item矩阵,然后拆分得到u_i (第i个用户), v_j(第j个item) 的表达式,从而计算出一个用户对于所有item的喜好度
3.聚类:将所有用户进行聚类,每一类对应相同的标签,然后对每一类进行推荐(相同类推荐内容相同)。
文中提到聚类作为协同的前置,可以简化计算,为什么?(聚类时每一个user都只和聚类中心计算,协同是要遍历user的全部好友)
4.深度学习:将推荐设为一个监督问题(购买/点击了推荐为正样本)。
因为样本集本身很大,所以推荐一般分为两步:粗拍(选择其中一部分作为候选集)和精排
基于内容的推荐算法,感觉和协同过滤详细,都是在挖掘用户自己感兴趣的东西,然后再推荐相似的东西

https://zhuanlan.zhihu.com/p/138446984 深度学习推荐算法整理 TODO:结合这篇文章细致梳理一下推荐算法发展
AutoRec:协同过滤的思想,特征构建采用了Auto_encoder,将高维系数特征转化为低维稠密特征,再decoder到原特征。encoder-decoder 思路
以user_AutoRec为例,构建user-item矩阵,然后拆分得到u_i (第i个用户) 的表达式,通过encoder 、decoder得到重构特征,该特征即为对应用户对于item的喜好度,根据喜好度进行推荐
NeuralCF:协同过滤思路。将user和item分别进行特征embedding。然后一路走特征内积,一路走多层感知机(MLP)。两路结果合并为一路,sigmoid激活得到score。score描述user和item是否有交互行为(并一定喜欢,有交互为目标)
内积这一路其实就是协同的做法,但是内积仅仅考虑了线性关系,加入MLP则是挖掘特征之间的交互信息。两路的embedding特征也可以分别构建。
Deep Crossing:充分考虑特征之间的交互信息,使用深层的神经网络。但是深层会导致梯度消失,所以使用残差网络。 残差模块其实是在预测模块输出和输入的残差,有boosting的思想。
稀疏特征进行embedding,和数值特征拼接,然后通过残差网络,预测CTR分值。 特征交互通过特征每一维和其他维度相乘(残差网络部分)实现。
PNN:考虑特征之间的交互信息,并引入produce layer,通过乘积的方式替代简单的特征拼接。
特征按filed进行embedding,然后两个filed embedding特征进行乘积操作,乘积所得特征和乘积前的embedding特征拼接,然后通过MLP预测得分。 特征交互通过乘积操作和MLP实现
FNN:和PNN结构相似,没有produce layer,filed embedding特征用FM分解值初始化。
特征按filed进行embedding (FM分解值初始化) ,所有filed的特征拼接,然后继续全连接操作
wide&deep:wide部分是LR模型,充分考虑历史信息,倾向于根据历史信息进行推荐。特征为原始稀疏特征和特征的叉乘结果(考虑历史信息中哪两个特征是共同出现的),
deep部分就是NN模型,充分考虑特征之间的交互,增加模型的泛化能力(多层网络使得特征充分交互,出现历史未有的特征组合)
deep&cross:cross部分替换wide,cross可以计算更高阶的交叉特征,充分挖掘历史数据信息
cross算子 x0乘以xi的转置乘以wi + xi + bi 其中x0是原始特征,xi是第i层输出,bi是偏置项。
多个cross算子实现高阶交叉特征, xi操作是在拟合xi+1和xi的差值,是boosting思想
cross和deep的区别:cross部分是不同维度特征相乘,deep是不同维度特征加权
deepFM:FM替代wide部分,考虑稀疏特征非零值对应的权重和 不同field特征之间的乘积

DIN:引入attention机制,虽然用户历史关注或购买过很多物品,但是不同物品的喜好度并不相同,所以应给予不同的权重。直接sum pooling使得用户喜好度被稀释
每个物品构建出固定维度特征,然后根据attention权重进行sum pooling。attention是物品和候选广告的外积(历史行为中有和候选广告相似的,即认为用户喜欢,给与很大的权重)
sum pooling的作用是虽然每人历史物品个数不同,但是pooling之后维度是固定的。然后和其他用户特征拼接,进入NN网络
DIEN:相对于DIN,DIEN考虑了时序特征。网络结构主要包含兴趣提取层(输入是用户历史行为时序特征)和兴趣进化层,然后输出和用户其他特征拼接,进入NN网络。
兴趣提取层:是GRU,用于捕获用户行为的时序信息,个人 感觉也可以认为是兴趣的一个进化过程(作者解释就是考虑用户行为的依赖关系)
兴趣进化层:是AUGRU,引入了attention机制,做法和DIN一样。

MIND:基于用户历史的召回问题可以描述为如下三元组 其中 表示用户u历史交互过的item, 表示用户历史的基本特征(如年龄性别等), 是目标item。
MIND的任务可以描述为:

文章思路和胶囊网络还需要再学习一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值