TEM: Tree-enhanced Embedding Model for Explainable Recommendation
欢迎关注个人微信公众号:大大大碗面,不定期论文解读与开发技术分享

1. 作者介绍
本篇文章发表在WWW 2018上,第一作者是一名新加坡国立大学(NUS)的在读博士,第二作者何向南则是他的导师,同样毕业于新加坡国立大学,曾是新加坡国立大学媒体搜索实验室的博士后研究员,主要研究方法:推荐系统、信息检索、多媒体和自然语言处理。他在SIGIR、WWW、CIKM、IJCAI和AAAI等以及包括TKDE等在内的顶级期刊上发表了超过20篇出版物。如今,他已加入中国科学技术大学(USTC)并担任教授。
2. 前言
在真实的推荐场景中,用户信息(用户画像)往往由一个身份标识(ID:识别哪个特定用户)和一些辅助信息组成(年龄、性别、收入水平等);类似地,一个项目信息(项目画像)也通常包含一个标识(ID:标识哪个特定的项目)和一些属性(类别、标签、价格)。
协同过滤(CF)是建立个性化推荐系统最普遍的技术,它是利用用户对项目的交互矩阵(购买记录、评论、打分)来进行建模,给用户推荐潜在喜欢的项目。可以看出CF仅仅使用了身份信息作用身份信息即用户ID和项目ID,而放弃了其他的辅助信息。因此,可以看出使用CF可以作为推荐的通用的框架,并且这并不需要任何领域的知识。但是它也有缺点它缺乏对推荐的必要推理或者解释(推荐结果的可解释性)。协同过滤的解释机制仅仅因为要么因为您的朋友也喜欢它(即基于用户的CF)或者该项目与你以前喜欢的项目相似(基于项目的CF),这种机制过于粗略,没有充分的说服性(解释性)。
在文章中作者希望能够得到更具体的解释机制,而不是仅仅通过相似性。举个例子:在模型输出的推荐结果中,有我们向某个用户推荐了苹果7玫瑰金版,这是因为我们发现月收入超过5000美元的20-25岁女性通常更喜欢粉色的苹果产品。
为了能够达到上面的效果,我们所使用的推荐模型就需要达到以下两点效果:
- 推荐模型能够从用户和项目的丰富辅助信息中发现有效的交叉特征(提升推荐性能);
- 推荐模型能够可以以可解释的方式估计用户-项目匹配分数(提升推荐的解释性);
但是,现有的推荐方法都不能同时满足以上两个条件。
我们之前的论文解读中经常提到的矩阵分解模型(MF),它是推荐系统中最流行的CF方法,它具有很好的性能;而取得良好的性能的原因是:它使用了嵌入的方法(构建了用户和项目的隐空间特征向量),这样在从稀疏的用户-项目关系中进行推广时具有很强大的能力。同时,现在也出现了许多的变体来结合辅助信息。例如:因子分解机(Factorization Machine)、NFM、Wide&Deep,Deep Crossing。这些模型拥有很好的性能,同时可以通过优化方法加速训练,所以在工业中具有广泛的应用。但是作者认为在这些模型中交叉特征只是在学习的过程中以相当隐藏方法被捕获(in a rather implicit
way );更重要的是,这样的交叉特征不能被明确地呈现出来。
所以,作者希望提出这样的一个模型,它既有很高的准确性又有可解释性。具体来说,作者的目标有两个:
- Accurate: achieve the same level or comparable performance as embeddingbased methods
- Explainable: be transparent in generating a recommendation & can identify the key rules for a prediction
翻译成中文:
- 期望所提出的方法与现有的基于嵌入的方法有相同的性能水平;
- 通过解释,希望所提出的方法在生成推荐时是透明的,并且能够识别预测的关键交叉特征;
在论文中,作者提出了一种新的解决方法,称之为树增强嵌入方法,它将基于嵌入的方法和基于决策树的方法相结合。首先,在用户和项目的side information
上建立一个梯度提升决策树,用来获取有效的交叉特征。然后将交叉特征输入进一个基于嵌入的模型。这是一个Attention网络,它根据当前的预测对交叉特征进行加权。也正是因为GBDT提取的显性交叉特征和易于解释的注意网络,整个预测过程是完全透明和可自我解释的。特别是,为了产生推荐的理由,我们只需要根据他们的注意力分数选择最具预测性的交叉特征。
3. Embedding-based Model
- 矩阵分解
基于嵌入的模型是表示学习的典型例子,它的目的就是从原始的数据中学习特征表示并用于预测。矩阵分解就是一个简单高效的非神经网络的基于嵌入的协同过滤模型,它的预测函数可以表示为:
y ^ M F ( u , i ) = b 0 + b u + b i + p u ⊤ q i \hat{y}_{M F}(u, i)=b_{0}+b_{u}+b_{i}+\mathbf{p}_{u}^{\top} \mathrm{q}_{i} y^MF(u,i)=b0+bu+bi+pu⊤qi
- 因子分解机
除了ID之外,用户和项目中蕴含丰富的的辅助信息,这些辅助信息可能包含用户对项目偏好的相关信号。特别地对于其中的分类变量,通常的做法是通过one-hot编码。用 x u x_u xu和 x i x_i xi分别表示用户 u u u和项目 i i i的特征向量。为了预测 y u i y_{ui} yui,典型的解决方法是连接 x u x_u xu和 x i x_i xi,即 x = [ x u , x i ] ∈ R n x=[x_u, x_i] \in \mathrm{R^n} x=[xu,xi]∈Rn,然后输入进预测模型。
y ^ F M ( x ) = w 0 + ∑ t = 1 n w t x t + ∑ t = 1 n ∑ j = t + 1 n v t ⊤ v j ⋅ x t x j \hat{y}_{F M}(\mathbf{x})=w_{0}+\sum_{t=1}^{n} w_{t} x_{t}+\sum_{t=1}^{n} \sum_{j=t+1}^{n} \mathbf{v}_{t}^{\top} \mathbf{v}_{j} \cdot x_{t} x_{j} y^FM(x)=w0+∑t=1nwtxt+∑t=1n∑j=t+1nvt⊤vj⋅x