推荐系统遇上深度学习

文章目录

    • 1、特征交叉系列
    • 2、召回
      • a、embeding
    • 3、排序
      • a、传统思路
      • b、深度学习
    • 3、E&E
      • a、强化学习
    • 4、指标

在简书上看到这一系列文章,非常喜欢,可惜排版不够好,且缺乏衔接,因此转录到这里,供随时查阅。
(全部链接来自简书– 石晓文的学习日记)

1、特征交叉系列

早期广告计算及推荐系统中,工业界常用LR来完成排序计算,因为LR是广义线性模型,特征之间缺乏交互,因此常使用人工组合特征的方案来深度挖掘特征,后渐渐衍生出FM,FFM等二项特征自动化交叉方案。近年来,由于深度学习的发展,大量自动化特征组合方案被研究探索并应用于推荐系统和广告计算中。
推荐系统遇上深度学习(一)–FM模型理论和实践
推荐系统遇上深度学习(二)–FFM模型理论和实践
推荐系统遇上深度学习(三)–DeepFM模型理论和实践
(DeepFM可以近似理解为Deep&Wide,当然其中Wide部分不再是LR而是FM)
推荐系统遇上深度学习(四)–多值离散特征的embedding解决方案
讲解了tf中tf.contrib.lookup.index_table_from_tensor方法,实际上就是将离散特征进行embedding方式的初始化并定义好跟idx关系,便于后续检索。
推荐系统遇上深度学习(五)–Deep&Cross Network模型理论和实践
跟DeepFM很像,但是FM的部分使用神经网络进行特征交叉
推荐系统遇上深度学习(六)–PNN模型理论和实践
感觉很多思想都是很类似的,PNN跟DeepFM也有类似之处,不同在于(1)PNN的两两特征交叉是使用两层网络来完成(最终归一化为一个D1长度的embedding向量),是基于特征embedding之后的向量计算出来的;而FM则是使用矩阵分解的方案,来表达两个特征的权重,是基于特征单值计算出来的。(2)PNN的交叉层和单层在浅层concat,最终一起进行若干个全连接计算,而DeepFM则对Deep进行深入计算,然后在倒数第二层直接将两者合并。
推荐系统遇上深度学习(七)–NFM模型理论和实践
推荐系统遇上深度学习(八)–AFM模型理论和实践
以上两个大同小异,都是基于FM和Deep的串行结构,留待以后研究。

2、召回

传统上讲,推荐的召回阶段多通过协同过滤、以及一些规则(热门、兴趣等)方式召回。目前深度学习领域大多数思考方向都是将item进行embedding,继而进行向量匹配再召回。方向多集中于网络设计,目标定义,以及线上快速召回的工程化方案。

a、embeding

推荐系统遇上深度学习(三十九)-推荐系统中召回策略演进!
简介:1、协同过滤;2、基于向量;3、基于树;
扩展阅读:基于任意深度学习+树状全库搜索的新一代推荐系统
推荐系统遇上深度学习(四十六)-阿里电商推荐中亿级商品的embedding策略这篇文章略语焉不详,没有详述SI的具体提取方法。需要阅读原文。可借鉴的地方:1、引入SI(Side Information)来解决冷启动问题;这个思路对于规范化商品表达(idmatching也有一定借鉴意义);2、使用不同SI不同权重的方案(权重需训练,还是拍一个?)3、随机游走策略构建物品间关系;3、Skip-gram思路训练网络(w2v的思路真是遍地开花啊)。
推荐系统遇上深度学习(三十六)–Learning and Transferring IDs Representation in E-commerce 这篇文章很赞,值得阅读原文。值得借鉴的地方:1、item2vec(又是w2v),并使用品牌id,产品id,店铺id等综合id作为item的表达,因此中间含有属性id到itemid的矩阵,这个就为属性表达item(冷启动)做了好铺垫;2、负采样,采用越热采样率越高的方案,有一点工程实现技巧;3、物品冷启动采用属性近似计算。另:用户冷启动采用了淘宝向量,这个在其他公司并没有可借鉴性不必考虑。

3、排序

a、传统思路

推荐系统遇上深度学习(十)–GBDT+LR融合方案实战
GBDT+LR是较为经典的排序算法,由Facebook提出。文中没有提到的是:这种双模型需要考虑的是线上工程切换问题。即双模型版本的同步维护。

b、深度学习

推荐系统遇上深度学习(十八)–探秘阿里之深度兴趣网络(DIN)浅析及实现
简介:1、利用了Local Attention机制;2、gAUC的评价指标;3、Dice激活函数(根据数据调整LeakRelu分割点);4、自适应性正则(根据featureId出现频次进行正则力度调整)

推荐系统遇上深度学习(四十八)-BST:将Transformer用于淘宝电商推荐简介:使用transformer模型,利用item,user,context和cross特征,对下一个商品进行ctr预估(有点怀疑是否上线应用)。值得借鉴的地方:1、使用(用户点击时间-推荐时间)作为position bias;2、使用leakyRelu做激活。(transformer相关资料:使用Excel通俗易懂理解Transformer!)

3、E&E

EE问题(Exploration and Exploitation,探索与开发)是推荐系统及广告计算里较为常见的一个问题,从业务角度理解,主要目的是提升惊喜度,以防止用户审美疲劳。近年来已有比较成熟的解决方案。
推荐系统遇上深度学习(十二)–推荐系统中的EE问题及基本Bandit算法经典的UCB和汤普森采样方法。
推荐系统遇上深度学习(十三)–linUCB方法浅析及实现 UCB算法的升级版,考虑了在线特征,我对于LinUCB的理解是,在实际工程应用中,可以在CTR预估计算后的基础上,加上根据reward计算出的Delta值( Δ = α x t , a T A a − 1 x a \Delta =\alpha \sqrt {x^{T}_{t,a}{A^{-1}_{a}}{x_{a}}} Δ=αxt,aTAa1xa ),以加入LinUCB的扰动。

a、强化学习

  1. 推荐系统遇上深度学习(十四)–《DRN:A Deep Reinforcement Learning Framework for News Recommendation》 强化学习在新闻推荐领域的应用。在DQN基础上应用了Dueling-Double-DQN(相关学习资料参见:深度强化学习从入门到大师:进一步了解深度Q学习(第三部分*续)).同样地,这个模型只适用于排序阶段。
    值得借鉴的地方:1、比较合理地给出用户活跃度(可以使用规则手段),并使用活跃度作为未来奖励的一个评估手段;2、多样性的评估方法(ILS,使用item相似性来评估)3、Duel DQN网络的设计;4、在线更新方法。
    疑问:对于在线更新的方案细节不太理解,且缺乏工程化的构建方案。
  2. 推荐系统遇上深度学习(十五)–强化学习在京东推荐中的探索这篇论文的可借鉴之处,在于使用了模拟器来预估state+action的可能收益(通过状态-动作转移概率)。因为在传统ctr模型中,由于使用的正负样本是基于为用户已推荐的物品空间,实际上相对于全量空间,样本是有偏的。
    疑问:使用了list-wise来做排序(号称),但我认为实际上仍然是paire-wise,当每个物品单独打分且取最高打分的物品排在前面,并且打分与整体推荐中序列并无丝毫关联时,我认为所谓list-wise就都是pair-wise的。

4、指标

推荐系统遇上深度学习(九)–评价指标AUC原理及实践
AUC是ctr预估的常用离线评估指标,比precision和recall更健壮,能够应对样本不平衡的情况(尤其是ctr这种正样本超级少的情况)

你可能感兴趣的:(推荐与广告,机器学习,深度学习,推荐系统,深度学习)