推荐系统树模型

目录

一、传统树模型

1、决策树和回归树模型

2、AdaBoost框架与提升树

3、Bagging框架与随机森林

4、Boosting和Bagging

二、深度树模型

1、TDM

2、TEM

3、JTM

4、BSAT

5、Deep Retrieval


一、传统树模型

1、决策树和回归树模型

决策树模型可看作if-else指令集合,通过对特征空间的划分来完成分类或回归任务。

通常用信息熵、基尼系数、均方误差、方差等,来衡量混乱程度。

ID3和C4.5采用了信息熵,CART树在分类时采用基尼系数,回归任务中采用均方误差。

2、AdaBoost框架与提升树

AdaBoost的基本思想是通过融合一些弱分类器来提升模型性能。

3、Bagging框架与随机森林

4、Boosting和Bagging

Boosting与Bagging的比较:

  • 设计思路不同

Boosting的主要思路是补短板,下一个子学习器的任务就是着重学习以前的学习器没有学到的部分;Bagging的主要思路是广撒网,通过重采样的方式让模型看到更多数据,从而增强泛化能力。

  • 关注重点不同

从方差-偏差分解上看,Boosting是通过用多个子学习器之间的相互补充作用不断降低模型的误差来提升精度,更加关注降低模型的偏差;Bagging通过采样的方式让模型看到更多的数据来提升其泛化能力,更加关注降低模型的方差。

  • 训练方式不同

Bagging的修改主要在对数据集的重采样,各个子学习器之间互不影响,是一种并行模型;Boosting的子学习器相互影响,后一个学习器要学习之前学习器没有学习到的部分,是一种串行的模型。

二、深度树模型

1、TDM

左边的深度学习模型,就是拼接了各个时期用户行为对应的特征,推荐标的(对应的树节点)的特征,再加上一些平平无奇的特征(比如用户性别,年龄等,在图中未标注出来),然后就可以计算出用户对推荐标的的感兴趣程度。这里注意,用户对应的embedding和推荐标的的embedding一起输入了深度学习模型,这里就能学习到更多用户和推荐标的之间更多交互的信息,这就解决了我们当前的主流技术的一个问题,即利用用户和item的embedding之间的相似度匹配作k-最近邻推荐,其无法表征更多用户和推荐标的之间更多交互的信息其产生的算法瓶颈的问题,又不需要遍历所有item(利用上面树的结构做搜索)。

模型借助attention结构,将用户行为中和本次判别相关的那部分筛选出来,以提取用户的兴趣,实现更精准的判别。

利用item的embedding和其类别初始化一棵树,然后树节点的embedding拼接起来输入深度学习模型训练,就可以得到最终稿的embedding。

线上检索时,采用 beam-search的方法,根据用户对每层节点的兴趣挑选 topK,将每层 topK 节点的子节点作为下一层挑选的候选集合逐层展开,直到最终的叶子层。

2、TEM

 对于给定的用户u和物品i,打分结果为:

 TEM使用GBDT来进行特征的交叉,GBDT包含一系列的决策树Q={Q1,Q2,...,QS},对于每一颗决策树,都会得到一个one-hot的向量,最终拼接起来就得到一个multi-hot向量。通过attention网络计算出权重,然后经过pooling,得到最终结果。

 

3、JTM

沿用了 TDM 树结构索引 + 任意复杂模型的系统框架,通过联合优化和层次化特征建模来解决 TDM 的缺陷。JTM 在一个共同的损失函数下提出交替优化的联合训练框架,来学习树索引结构,避免二者优化目标不一致导致次优解的情况。同时提出了层次化用户兴趣表达的概念,借助树索引的层级结构对用户行为特征进行不同精度层次的建模,更好地表征了在检索过程中用户兴趣从粗到细的表达。

4、BSAT

 

在 JTM 基础上,对检索过程(即 beamsearch)进行了联合学习,用以缓解离线训练阶段和在线服务阶段节点分布不匹配的问题:1)训练时通过正样本上溯 + 同层随机负采样生成树上节点,而在线服务时通过 beamsearch 检索生成树上节点;2)树上节点的标签通过其子节点标签决定,无法避免在 beam search 过程中不出错。

BSAT 首先给出了面向 Beam Search 最优树模型的理论定义,并对其存在性进行了理论证明。为了训练最优树模型,文章给出了损失函数的定义以及训练算法。训练算法中核心不同点在于:1)用于训练的树上节点通过 beamsearch 的方式进行生成;2)树上节点的标签等于其子树中边缘概率最高的物品标签,而不仅仅由其子节点标签决定。通过以上改进可以有效解决训练 - 在线服务不匹配的问题。实验结果表明,BSAT 从召回指标上比 JTM 取得了更优的效果。

5、Deep Retrieval

 尽管基于树结构的召回取得了不错的效果,但仍存在两点不足,1)树结构本身很难学习,叶子节点数据稀疏难以在更细的层面学习到良好的树结构,制约了检索效果;2)每个候选物品只能分配到一个叶子节点上,限制了模型从多个角度来刻画候选集物品的表达。DeepRetrieval [5] 工作通过改变索引结构,使用 D x K 矩阵作为物品索引,通过 D 步预测每步 K 种选择编织出 K^D 条路径,路径编码通过 EM 算法与模型一同计算,得到路径与物品的多对多关系,进而从更复杂的角度学习用户与物品的关系,并且实验表明 DeepRetrieval 可以在接近线性的计算复杂度下取得与暴力全库匹配算法相当的效果。

参考:

【1】TDM算法介绍_suspend2014的博客-CSDN博客

【2】推荐系统遇上深度学习(四十七)-TEM:基于树模型构建可解释性推荐系统 - 云+社区 - 腾讯云

【3】阿里妈妈新一代联合训练框架——JTM模型详解 - 知乎

【4】解读工业级推荐系统的2020深度优化用户体验并为业务赋 - 知之

【5】阿里妈妈深度树匹配技术演进:TDM->JTM->BSAT__财经头条

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值