作  者:十方
公众号:炼丹笔记  

(1)Why Deep Retrieval?

一个规模较大的推荐系统,需要解决的核心问题就是如何从百万甚至亿级别的候选集中快速找到最相关的top-k个候选。以前的解决方案都是两步:

  • 双塔模型,最后做Dot
  • 用Annoy Tree或者HNSW给候选集建索引,在线计算向量实时检索top-k

之前方案存在的问题:

  • 因为要分两步,而两步的目标是不一样的。
  • 双塔限制了模型的表达能力

基于此,又出现了TDM等树结构模型,但是把每个候选分配到唯一一个叶子节点是最好的方案吗?所以end-to-end的Deep Retrieval(DR)就这样诞生了。

(2)Deep Retrieval 长什么样?

DR并没用用树结构,而是采用了一个矩阵结构(图a所示),现在规定只能从左向右走,因此走D步就可以走完这个矩阵,一共有K的D次方种走法,每一种走走法,都代表一簇候选。所以一个候选,可能存在于多种走法,一种走法也会有多个候选。类比到电商,比如一种类别就对应一种走法,一种类别包含多个商品,一个商品可能也属于多个类别,比如巧克力既可以是食品,也可以是情人节礼物。拿图(a)来说,(1,2,1)和(2,1,2)两条路径分别表示情人节礼物和食品,里面都可以有巧克力。

那怎么从从user的特征,找到一天路径,拉出候选商品呢。可以通过user特征,embeding后,user-embedding接softmax层确定先走到哪个节点,走第k步(k∈[1,D]),就可以用历史走过的所有节点的embedding和user-embedding concat在一起,接softmax层判断第k步走到应该走到哪个节点,最终得到的路径就可以拉出很多candidate了。

Deep Retrieval的优势:

  • 训练的时候item的露肩可以和神经网络参数用EM算法一起学习
  • Deep Retrieval是end-to-end的模型,容易部署
  • 多对多的编码方式使得DR能学到user和item更复杂的关系

(三) Deep Retrieval如何定义目标函数?

既然是概率,我们就可以定义类似logloss的目标函数,如下式:

融合上面两个式子:

看到这里,大家肯定有疑问,不是一个商品对应多个路径吗,目标函数咋一点没体现?下面才开始介绍多路径的目标函数。

预估的时候,用Beam Search找到J条路径,合并每条路径召回的item即可。

(四)Deep Retrieval如何学习参数?

因为有目标函数有π的存在,所以目标函数不连续,也就不可以做梯度下降,因此论文提出EM算法解决这个问题,并用正则化降低过拟合。

再看下多路径目标函数:

然后论文说上式有出现log(0)的风险,通过融合下面不等式,就可以避免这个情况:

最终,EM训练算法总结如下,关于正则化就不细说了:

(五)Deep Retrieval为何如此优秀?

论文提到,Deep Retrieval能如此优秀,是因为目标函数包含了softmax层,因为一开始每个物品的路径是随机初始化的,增加了优化的困难,因为softmax的输入是共享embeding的,使得模型一直在往正确的方向学习,最后还用了beam search,所以召回如此优秀。


weixin.qq.com/r/XSjP1zr (二维码自动识别)

推荐系统炼丹笔记:Deep Retrieval相关推荐

  1. 推荐系统炼丹笔记:大规模推荐Deep Retrieval

    作 者:十方 公众号:炼丹笔记 (1)Why Deep Retrieval? 一个规模较大的推荐系统,需要解决的核心问题就是如何从百万甚至亿级别的候选集中快速找到最相关的top-k个候选.以前的解决方 ...

  2. 推荐系统炼丹笔记:EdgeRec阿里边缘计算推荐系统

    作者:一元 公众号:炼丹笔记 背景 推荐系统(RS)已经成为大多数web应用程序的关键模块.最近,大多数RSs都是基于云到边缘框架的瀑布式的,其中推荐的结果通过在云服务器中预先计算传送到edge(例如 ...

  3. 推荐系统炼丹笔记:推荐系统Bias/Debias大全

    作者:一元 公众号:炼丹笔记 背景 在实践中,做推荐系统的很多朋友思考的问题是如何对数据进行挖掘,大多数论文致力于开发机器学习模型来更好地拟合用户行为数据.然而,用户行为数据是观察性的,而不是实验性的 ...

  4. 推荐系统炼丹笔记:阿里边缘计算+奉送20个推荐系统强特

    作者:一元 公众号:炼丹笔记 背景 推荐系统(RS)已经成为大多数web应用程序的关键模块.最近,大多数RSs都是基于云到边缘框架的瀑布式的,其中推荐的结果通过在云服务器中预先计算传送到edge(例如 ...

  5. 推荐系统炼丹笔记:多模态推荐之用户评论篇

    作者:一元 公众号:炼丹笔记 目前非常多的推荐系统主要使用用户的一些基础反馈信息来作为最终的标签进行模型的训练,例如点击/购买等,但是却鲜有文章去进一步挖掘用户的其它反馈,例如用户对于该产品的评论,很 ...

  6. 推荐系统炼丹笔记:用户评论在推荐中的应用

    作者:一元 公众号:炼丹笔记 目前非常多的推荐系统主要使用用户的一些基础反馈信息来作为最终的标签进行模型的训练,例如点击/购买等,但是却鲜有文章去进一步挖掘用户的其它反馈,例如用户对于该产品的评论,很 ...

  7. 推荐系统炼丹笔记:Embedding在内存问题上的一种解法

    作 者:一元 公众号:炼丹笔记 很多朋友都会发现,修改embedding的大小能对深度模型带来非常大的影响,往往越大的embedding能带来更佳的效果,但是却因为Embedding内存的问题,没法直 ...

  8. 推荐系统炼丹笔记:好想哭,我居然输在了内存问题上!

    作 者:一元 公众号:炼丹笔记 很多朋友都会发现,修改embedding的大小能对深度模型带来非常大的影响,往往越大的embedding能带来更佳的效果,但是却因为Embedding内存的问题,没法直 ...

  9. 推荐系统炼丹笔记:边缘计算+奉送20个推荐系统强特

    作者:一元 公众号:炼丹笔记 背景 推荐系统(RS)已经成为大多数web应用程序的关键模块.最近,大多数RSs都是基于云到边缘框架的瀑布式的,其中推荐的结果通过在云服务器中预先计算传送到edge(例如 ...

最新文章

  1. 交换排序图解_图解简单选择排序
  2. 【硬核】自己动手实现轻量级神经网络推理框架
  3. Microbiome: 再论扩增子功能预测分析(Picrust)的效果
  4. 一个模型通杀8大视觉任务,图像、视频生成大一统!MSRA+北大全华班「女娲」模型...
  5. Node-RED简介与Windows上安装、启动和运行示例
  6. ma5626如何进入web配置_如何给Dnsmasq提供一个Web配置界面?
  7. Solr+Hbase多条件查(优劣互补)
  8. js post中文乱码 php,AJAX之POST数据中文乱码如何解决
  9. Oracle教程-安装、结构(一)
  10. Spring Roo 之 Mysql 连接
  11. 【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构
  12. Linux下如何重置MySQL密码
  13. 从零快速搭建自己的爬虫系统
  14. 今日头条信息流 - 基础账户实操
  15. 利用信息差赚美金?对!你没看错!
  16. cqyz oj | 【训练题】铲雪车问题
  17. python数据分析:客户价值分析案例实战
  18. 双复合摆的动力学【牛顿法---拉格朗日法】两种方式
  19. 群晖自动删除重复文件_在群晖中批量删除重复文件(零基础手把手图文)
  20. sim卡在苹果手机显示无服务器,iPhone手机没有信号怎么办 手机提示无服务怎么解决...

热门文章

  1. python flask 学习与实战
  2. select下拉列表选中后,跳转新链接
  3. 【Rain in ACStar HDU-3340】
  4. python编程快速上手_给Python小白推荐的40本入门书籍,帮你快速上手
  5. python3入门与进阶笔记_16_变量进阶 — 黑马程序员《Python入门教程完整版》笔记...
  6. Python DataFrame删除某一列中包含的特定元素所在的行
  7. 转载:【opencv入门教程之六】创建Trackbar图片对比度、亮度值调整
  8. 光流 | 视频中物体检测的研究现状
  9. 数据结构二:排序(插入排序和希尔排序)
  10. 云服务器系统重装为windows,并进行文件传输