Collaborative Knowledge Base Embedding for Recommender Systems(译)

来源:互联网 发布:大数据时代的利与弊 编辑:程序博客网 时间:2024/06/09 14:20

原文地址

http://www.kdd.org/kdd2016/subtopic/view/collaborative-knowledge-base-embedding-for-recommender-systems

该论文发表于16年KDD,主要贡献为在推荐系统中引入了结构信息,文本数据,图像数据等知识库中的信息来提升推荐系统的质量。其中,结构信息采用TransR来得到实体的向量特征,文本数据与图像数据分别使用栈式降噪自编码(Stacked Denoising Auto-encoders, SDAE)与栈式卷积自编码(Stacked Convolutional Auto-encoders)来提取出向量特征。

Item的向量表示是将最初的向量与来自知识库中的三个特征向量相结合。对于构建出的损失函数可以使用随机梯度下降来进行优化,从而实现基于异构数据的ranking推荐。

动机

目前最常用的矩阵分解方法的性能会因为矩阵过于稀疏而性能下降,同时也存在无法推荐新的item和冷启动等问题。基于内容的推荐无法很好的解决推荐结果的多样性问题。考虑到用户对于item的选择也会受到与item相关的其他信息的影响。因此,混合了协同过滤与其他信息的推荐系统通常可以更好地解决这些问题,从而得到更好的结果。

知识库中通常包含了大量的信息,因此有部分工作将知识库作为其他信息来与协同过滤进行融合。然而,这些工作目前存在以下问题:

1、仅仅使用单一的网络结构信息,没有充分利用其他信息。
2、从知识库中提取特征依赖于传统特征工程。为了解决这些问题,本文提出的CKE(Collaborative Knowledge Base Embedding) 推荐系统框架。

在讲解CKE网络结构之前,首先介绍相关概念:

1、在user-item矩阵中,数值为1则表示存在相关关系,0则表示不存在。

2、知识库中包含的知识可以分为以下三类。

​ 1)结构知识:通过头尾实体与实体之间的关系组成。

​ 2)文本知识:对于一个实体的一段文字性描述。

​ 3)图片知识:与当前实体有关的图片信息。如电影海报或书的封面。

3、当前需要解决的推荐系统的问题是:给定具有结构知识,文本及图片的知识库和用户的隐式反馈,返回每一个用户最有可能感兴趣的item列表。

知识库与user-item矩阵之间的关系如下图所示。

Illustration of a snippet of user implicit feedback data and knowledge base data

网络结构

总览

The flowchart of the proposed Collaborative Knowledge Base Embedding (CKE) framework for recommender systems

模型主要包含两步。1)针对于知识库中的知识进行向量化表示。2)协同联合训练。在进行知识库的embedding阶段,模型分别针对于结构知识(structural knowledge),文本知识(textual knowledge),图片知识(visual knowledge)进行向量化表示。embedding的方式分别为Bayesian TransR, Bayesian SDAE, Bayesian SCAE.

在协同联合训练部分,item的向量由从知识库中提取的三个向量与offset vector组成。训练过程通过优化不同item之间的ranking来学习user的隐向量与item的隐向量。

结构化数据的向量表示

与其他embedding的方式相比,TransR可以通过关系矩阵来链接不同语义空间。如下图所示,实体与关系存在在不同的空间空,而TransR通过矩阵M将实体从实体空间转到关系空间,并在关系空间中进行进行计算。

Illustration of TransR for structural embedding

其中目标函数为

fv(vh,vt)=||vrh+rvrt||22

其中vrh=vhMr , vrr=vrMr, MrRk×d, rRd, vh,vtRk

在本文中,加入贝叶斯先验之后的TransR的生成过程如下所示

请查阅刘知远老师的论文 Learning entity and relation embeddings for knowledge graph completion(AAAI’15) 以获取更多关于TransR的信息

文本的向量表示

与CDL中的模型相似,CKE中采用的SDAE模型如下图所示:

其中左侧为添加噪声之后的文档,经过编码与解码之后使得输出的文档与未添加噪声的文档要尽可能的接近。噪声的添加方式为随机将一些数字置零。以当前图为例,X0至X3之间为编码过程,X3至X6之间为解码过程。而最终X3的输出为文档的向量表示。

加入贝叶斯先验之后的SDAE生成过程如下所示:

图片的向量化表示

与SDAE的结构类似,SCAE中特征的提取(即编码过程)采用卷积操作来进行。而解码过程则使用反卷积操作。因编码的输出为embedding之后的向量,因此向量与前后两层之间的链接为全连接。网络左侧输入的图片为添加噪声之后的图片。噪声添加方式为随机增加高斯噪声。具体网络结构如下图所示:

加入贝叶斯先验之后的SCAE生成过程如下所示:

网络的联合训练

根据以上分析, item隐向量的计算方式为:

ej=ηj+vj+XL22,j+ZLv2,j

其中ηj, vj, XLt2,j, ZLv2,j,分别为item的offset向量以及结构化知识,文本知识,图片知识的向量。对于每一个三元组(i,j,j) ,需要优化的目标为σ(uTiejuTiej)。 三元组满足Rij=1以及Rij=0。 因此对于该目标函数,优化的方向应为最大值方向。

加入其他部分的目标函数以及正则项,最终的目标函数如下所示:

因为SDAE,SCAE以及正则项的目标为最小值而且目标函数要得到最大值,所以这些项前的符号为负号。当前目标函数可以使用随机梯度下降来进行学习过程。

实验

实验部分分别在CKE框架下融入了结构化信息(S),文本信息(T),图片信息(V)以及其他组合与其他方法如LibFM+STV, BPRMF+STV在数据集MovieLens-1m与IntentBook上进行比较,并最终得到CKE+STV信息可以得到最优的性能。

阅读全文
0 0