Learning Tree-based Deep Model for Recommender Systems解读

Learning Tree-based Deep Model for Recommender Systems

摘要

使用模型为所有用户预测偏好需要非常大的开销,在整个语料库上进行检索变得困难。采用传统的内积方式计算用户-物品偏好不利于融合其他丰富的信息,限制了模型的能力。论文提出的TDM可以引进任意的先进模型,而且复杂度仅仅是语料库大小的log倍,模型的主要思想是为每一个用户,对树由上到下进行由粗到细的遍历从而进行预测。树结构也可以共同学习更好的用户兴趣分布从而提升训练和预测性能。

介绍

传统的协同过滤方法不能跳出历史行为,以至于无法探索到潜在的用户兴趣,这也导致了找回结果的精度受限。
实验结果证明多层的FFN往往比固定的内积形式效果要好。
TDM方法利用信息的层级结构,将推荐系统问题归结为一系列的层级分类问题,论文的主要贡献如下:

  • 是第一个方法能够使用任意的先进模型从大规模语料中生成推荐,且复杂度是语料库大小的对数级。
  • TDM能够更准确的发现新颖而且有效的推荐结果。
  • TDM通过使用层级搜索也提升了推荐准确度,其实现方法就是将大问题分解成一个个小问题,由难到易解决。
  • 树作为一种索引结构,可以学习到一种物品和抽象概念的最优结构,反过来也可以帮助模型训练,而且TDM方法可以联合训练神经网络和树。

相比于层级softmax树,层级softmax树的最优父节点并不能保证底层节点的最优,所以仍然需要遍历所有节点去寻找最优解,因此对于检索任务是不合适的。论文提出的max-heap树可以处理这个问题。

系统结构

提出的模型主要是用来生成候选集,即召回阶段

基于树的深度模型

  • 父节点的真实偏好等于子节点的最大偏好除以归一化项

  • 每一层只需要检索最大k的父节点的子节点即可,而且其实也不需要知道真实的概率大小,只需要知道相对排序即可。

  • 使用负采样训练每一层的顺序分类器,只需要一个全局的神经网络二分模型即可。

  • 为每一个positive node随机采样负样本,每一层使用全局分类器都是层内的,也就是独立于上层决策的影响,那么即使上层节点模型做出了不太好的选择,那在底层,我们也能选择相对较好的节点。

  • 相比于暴力搜索,TDM也提升了推荐的质量。

  • 每个节点使用低维的embedding表示,使用attention module来得到更好的用户表征。

  • 设计了块级的输入层来区分位于不同时间窗口内的用户行为,每一个窗口内的物品embedding会被加权平均,这些操作避免了使用内积操作方式。

  • 树初始化:使用物品的类型信息建立初始化树,如果一个物品属于多个类别,我们随机指定一个归属。物品会被递归的分为两部分直到集合只包含一个物品。

  • 树的学习:每一个叶子结点的embedding表示会在模型训练之后学习到,然后我们使用学习到的节点embedding vector聚簇一个新的树,具体为使用kNN算法,每次一组物品会被二分类成两组,然后以此往复,直到剩下一个物品。

  • 深度模型和树形结构是被以下方式来联合学习:

    1. 构造一个初始化树,训练模型指导收敛。
    2. 基于训练好的节点embedding得到一棵新的树。
    3. 用学习到的新的树形结构再次训练模型

结论

未来方向是设计更加复杂的树的学习方法

相关博客和代码实现参考

http://d0evi1.com/tdm/
https://github.com/LRegan666/Tree_Deep_Model

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值