【论文笔记】TEM: 结合 GBDT 叶节点嵌入的可解释推荐模型
“ 本文主要介绍了发表在 WWW2018 的论文《TEM: Tree-enhanced Embedding Model for Explainable Recommendation》,利用 GBDT 叶子节点进行嵌入表示来获得一个具有解释性的推荐模型”
本文来源:RecLismCat https://zhuanlan.zhihu.com/p/96124874
3 TREE-ENHANCED EMBEDDING METHOD
首先提出 TEM,它结合 MF 用于稀疏数据建模和 GBDTs 用于交叉特征学习的优点。还讨论了可解释性,分析了其复杂性。
3.1 Predictive Model
给定一个 user u ,一个 item i,和他们的特征向量
将它们作为输入,TEM 预测 user-Item 偏好:
其中,前两项是与 FM 相似的特征偏差,第三项是 TEM 的核心部分。参数Θ用于建模交叉特征影响。
3.1.1 Constructing Cross Features
与在学习过程中不透明地捕捉交叉特征效应的嵌入式方法不同,我们最初的考虑是让交叉特征是显式的并且是可解释的。在工业中广泛使用的一种解决方案是手工制作交叉特性,然后将它们输入一个可解释的方法,该方法可以了解每个交叉特性的重要性,例如逻辑回归。例如,我们可以通过交叉特征变量 age 和 traveler style 的所有值来获得二阶交叉特征。但是,这种方法的难点在于它是不可伸缩的。为了对高阶特征交互进行建模,必须将多个特征变量交叉在一起,从而导致复杂性呈指数级增长。虽然通过谨慎的特征工程,如跨越重要的变量或值,可以在一定程度上控制复杂性,但开发有效的解决方案需要大量的领域知识,不容易适应领域。
为了避免这种劳动密集型的特性工程,我们利用 GBDT(在 2.2 节中简要介绍)来自动识别有用的交叉特性。虽然 GBDT 并不是专门为提取交叉特征而设计的,但是考虑到一个叶节点代表一个交叉特征,并且树是通过优化对历史交互作用的预测来构建的,因此认为叶节点是有用的交叉特征是合理的。
形式上,我们定义 GBDT 为一系列决策树 Q={Q1,Q2,...,Qs},其中,每一棵树将一个特征向量 x 映射到一个叶子节点上(有权重)。我们使用 Ls 定义第 s 棵树的叶子节点的数量。与原始的将激活的叶节点的权值累加作为预测的 GBDT 不同,我们将激活的叶节点作为交叉特征,并将其输入神经注意模型中进行更有效的学习。我们将交叉特征表示为一个多热向量 q,它是多个单热向量(其中一个单热向量编码树的激活叶节点)的串联:
这里 q 是一个稀疏向量,其中值为 1 的元素表示激活的叶节点,q 中的非零元素数量为 S。
设 q 的大小为
- 。例如,在图一中,有两个子树 Q1(有五个叶子节点)和 Q2(有三个叶子节点)。如果 x 分别以 Q1 和 Q2 的第二和第三叶节点结束,那么得到的多热向量 q 应该是[0,1,0,0,0,0,0,1]。令图 1 中的特征变量(x0
- x5)和值(a0 ~ a5)的语义被列在表 1 中,那么 q 表示从 x 中提取的两个交叉特征。
3.1.2 Prediction with Cross Features
利用显式交叉特征,我们利用稀疏线性方法学习各交叉特征的重要性,选择最上面的交叉特征作为预测的解释。Facebook[22]之前的工作已经证明了这种解决方案的有效性,它将 GBDT 的叶节点输入到逻辑回归(logistic regression, LR)模型中。我们把这个解称为 GBDT+LR。虽然 GBDT+LR 能够学习交叉特征的重要性,但它为所有用户- 项目对的预测分配了相同的交叉特征权重,这限制了建模的保真度。在实际应用中,具有相似人口统计特征的用户通常会选择相似的项目,但是它们是由不同的意图或原因驱动的。
例如,设(u, i, x)和(u’, i’, x’)是两个正的实例。假设 x 等于 x’,那么这两个实例将具有与 GBDT 相同的交叉特征。由于每个交叉特征都有一个全局权重,与 LR 中的训练实例无关,预测的(u, i)和(u’, i’)将被视为同一顶交特性,不管实际的可能性原因中 u 选择 i,u 选择 i’是不同的。为了确保可表达性,我们认为对不同的用户- 项目对交叉特征进行不同的评分是很重要的。在交叉特征上个性化权重,而不是使用全局加权机制。
神经推荐模型如 Wide&Deep 和 NFM 的最新进展可以允许交叉特征的重要性变得个性化。这是通过将 user ID、item ID 和交叉特征一起嵌入到共享的嵌入空间中,然后对嵌入向量执行非线性转换(例如,通过完全连接的层)来实现的。非线性隐含层强大的表示能力使得 user ID、item ID 和交叉特征之间的复杂交互能够被捕获。因此,当使用不同的用户- 项目对进行预测时,交叉特性的影响是不同的。然而,由于难以解释的非线性隐含层,这些方法无法解释交叉特征的个性化权重。因此,为了便于解释,我们必须放弃使用完全连接的隐藏层,尽管它们在现有方法中有助于模型的性能。
为了开发一种既有效又可解释的方法,我们介绍了 TEM 中的嵌入和注意力的两个基本成分。具体来说,我们首先将每个交叉特征与一个嵌入向量相关联,这样就可以捕获交叉特征之间的相关性。然后,我们设计了一种注意力机制,明确地对交叉特征上的个性化权重进行建模。最后,将用户 ID、项目 ID 和交叉特征的嵌入集成在一起进行最终预测。虽然 TEM 是一种浅层模型,没有完全连通的隐层,但利用嵌入和注意使其具有很强的表示能力和有效性。接下来,我们将阐述 TEM 的两个关键组成部分。
嵌入
给定由 GBDT 生成的交叉特征 q,我们将每一个交叉特征 j 投影都嵌入项链
,其中 k 是嵌入尺寸。在这个操作之后,我们获得了一个嵌入向量集合
。由于 q 是一个只有少量非零元素的稀疏向量,我们只需要在预测中包含非零特征的嵌入,也就是说
,其中,
。我们使用 Pu 和 qi 来定义用户嵌入和物品嵌入。
与 LR 使用标量对特征进行加权相比,将交叉特征嵌入到向量空间有两个优点。首先,使用嵌入学习可以捕获特性之间的相关性,例如,经常同时出现的特性可能产生类似的嵌入,这可以缓解数据稀疏性问题。其次,它提供了一种将 GBDT 的输出与基于嵌入式的协同过滤无缝集成的方法,这比模型预测的后期融合更灵活(例如,在[49]中使用 FM 来增强 GBDT)。
注意力
受之前工作的启发[9,46],我们通过为每个交叉特征的嵌入分配一个关注的权重,明确地捕获了交叉特征在预测中的不同重要性。在这里,我们考虑两种方法来聚合交叉特征的嵌入,平均池化和最大池化,以获得一个统一的表示 e(u, i,V)的交叉特征:
其中,wuil 是一个可训练的参数,表示第 l 个交叉特征在构成统一表示时的注意力权值,重要的是,它是个性化的,因为它依赖于(u, i)。
虽然上述解决方案似乎是合理的和可解释的,但问题是,对于(u, i)对以前从未同时发生过的情况,无法估计注意力权重。另外,w 的参数空间太大,总共有 UIL 权值(其中 u、I 和 L 分别表示 user 数量、item 数和 q 的大小),这对于实际应用来说是不切实际的。为了解决泛化和可伸缩性问题,我们将建模 wuil 看作一个依赖于 u、i 和 l 的嵌入的函数,而不是从数据中自由地学习 wuil。受最近成功使用多层感知器(MLP)来学习关注权重的启发,我们同样使用 MLP 来参数化 wuil。我们将这个 MLP 叫做注意力网络,被定义为以下形式:
其中,W 是权重矩阵,b 是隐藏层的偏差,a 控制隐藏层的大小。h 将隐含层投射到输出的关注权值中。我们使用 rectifier 作为激活函数,并使用 softmax 对关注权值进行归一化。图 3 说明了我们注意力网络的架构,我们将 a 称为注意力大小。
最终预测
在建立了注意力嵌入后,我们得到了一个用于交叉特征的统一嵌入向量 e(u, i,V)。为了结合 CF 建模,我们将 e(u, i,V)与
连接起来,pu qi 将 MF 重新组合起来,用以对用户 ID 和项目 ID 之间的交互进行建模。然后我们应用线性回归将连接的向量投射到最终的预测中。这就引出了 TEM 的预测模型:
其中,r1 和 r2 是最终线性回归层的权重。
可以看出,我们的 TEM 是一个浅层的可加性模型。为了解释预测,我们可以很容易地评估每个组件的贡献。
3.2 Learning
类似于最近关于神经协同过滤[21]的工作,我们将项目推荐任务作为一个二元分类问题来解决。具体来说,将观察到的用户- 项目交互分配给目标值 1,否则为 0。我们优化 pointwise log loss,这能够迫使预测分数更加接近目标值。
其中σ是激活函数,限制预测在(0,1)。为了清楚起见,这里省略了正则化项(我们在观察到过拟合时调整了 L2 正则化)。注意,优化其他目标函数在技术上也是可行的,比如点态回归损失[20,41,42]和排名损失[9,33,44]。在这项工作中,我们使用 log loss 作为 TEM 的一个演示。
由于 TEM 由两个级联模型组成,所以这两个模型都经过了优化相同的 log 损失的训练。我们首先训练 GBDT,它贪婪地适合于整个训练数据[10]上的可加树。在得到 GBDT 的交叉特征后,我们使用 minibatch Adagrad[16]对基于嵌入的预测模型进行了优化。每个小批包含随机的正实例和随机配对的负实例。与[21]的最优设置一样,我们将一个积极的实例与四个消极的实例进行配对,从经验上显示了良好的性能。