DKN推荐

DKN-基于知识图谱的推荐系统

知识图谱特征学习(Knowledge Graph Embedding)是最常见的与推荐系统结合的方式,知识图谱特征学习为知识图谱中的每个实体和关系学习到的一个低维向量,同时保持图中原有的结构或语义信息,最常见的得到低维向量的方式主要有基于距离的翻译模型和基于语义的匹配模型。
知识图谱技术与应用指南
知识图谱特征学习在推荐系统中的应用步骤大致有以下三种方式:


依次训练:首先使用知识图谱特征学习得到实体向量和关系向量,然后将这些低维向量引入推荐系统,学习得到用户向量和物品向量,方法主要有Deep Knowledge-aware Network(DKN)
联合训练:将知识图谱特征学习和推荐算法的目标函数结合,使用端到端(end-to-end)的方法进行联合学习,方法主要有Ripple Network
交替训练:将知识图谱特征学习和推荐算法视为两个分离但又相关的任务,使用多任务学习(multi-task learning)的框架进行交替学习。主要方法有Multi-task Learning for KG enhanced Recommendation (MKR)

DKN原理

1、背景

新闻推荐领域有三个待解决的问题:

  • 新闻文章具有高度的时间敏感性,它们的相关性很快就会在短时间内失效。过时的新闻经常被较新的新闻所取代。 导致传统的基于ID的协同过滤算法失效。
  • 用户在阅读新闻的时候是带有明显的倾向性的,一般一个用户阅读过的文章会属于某些特定的主题,如何利用用户的阅读历史记录去预测其对于候选文章的兴趣是新闻推荐系统的关键 。
  • 新闻文本的特点是语言高度浓缩,并且包含有很多知识实体与常识。但是以往的模型却较少考虑新闻包含的外部知识,仅仅从语义层面(semantic level)进行表示学习,没有充分挖掘新闻文本在知识层面(knowledge level)的联系。

因此,本文提出了DKN模型。首先使用一种融合了知识的卷积神经网络KCNN,将新闻的语义表示与知识表示融合起来形成新的embedding表示,再建立从用户的新闻点击历史到候选新闻的attention机制,选出得分较高的新闻推荐给用户,来给用户更精确地推荐可能感兴趣的新闻。

2、基础概念

2.1、知识图谱特征学习(Knowledge Graph Embedding)

知识图谱特征学习(Knowledge Graph Embedding)为知识图谱中的每个实体和关系学习得到一个低维向量,同时保持图中原有的结构或语义信息。一般而言,知识图谱特征学习的模型分类两类:基于距离的翻译模型和基于语义的匹配模型。

基于距离的翻译模型(distance-based translational models)

这类模型使用基于距离的评分函数评估三元组的概率,将尾节点视为头结点和关系翻译得到的结果。这类方法的代表有TransETransHTransR等;

上面三个方法的基本思想都是一样的,以TransE为例来介绍一下这些方法的核心思想。在空间中,三元组的头节点h、关系r、尾节点t都有对应的向量,我们希望的是h + r = t,如果h + r的结果和t越接近,则认为这些向量能够很好的表示知识图谱中的实体和关系。

基于语义的匹配模型(semantic-based matching models)

类模型使用基于相似度的评分函数评估三元组的概率,将实体和关系映射到隐语义空间中进行相似度度量。这类方法的代表有SME、NTN、MLP、NAM等。

上述方法的核心是构造一个二分类模型,将h、r和t输入到网络中,如果(h,r,t)在知识图谱中真实存在,则应该得到接近1的概率,如果不存在,应该得到接近0的概率。

2.2、基于CNN的句子特征提取

DKN中提取句子特征的CNN源自于Kim CNN,用句子所包含词的词向量组成的二维矩阵,经过一层卷积操作之后再做一次max-over-time的pooling操作得到句子向量,如下图所示:

3、问题定义

新闻标题和正文中通常存在大量的实体,实体间的语义关系可以有效地扩展用户兴趣。然而这种语义关系难以被传统方法(话题模型、词向量)发掘。

对于一个给定的用户user_i,他的点击历史记为\left\{ t_1,...t_ N \right\}是该用户过去一段时间内曾点击过的新闻的标题,N代表用户点击过的新闻的总数。每个标题都是一个词序列t=\left\{w_1,w_2,....,w_n\right\},标题中的单词有的对应知识图谱中的一个实体。举例来说,标题《Trump praises Las Vegas medical team》其中Trump与知识图谱中的实体“Donald Trump”对应,Las和Vegas与实体Las Vegas对应。本文要解决的问题就是给定用户的点击历史,以及标题单词和知识图谱中实体的关联,要预测的是:一个用户i是否会点击一个特定的新闻t_j

4、模型框架

DKN模型整体框架如下:

可以看到,DKN的网络输入有两个:候选新闻集合,用户点击过的新闻标题序列。输入数据通过KCNN来提取特征,之上是一个attention层,计算候选新闻向量与用户点击历史向量之间的attention权重,在顶层拼接两部分向量之后,用DNN计算用户点击此新闻的概率。

4.1 知识提取(Knowledge Distillation)

知识提取过程有三方面:一是得到标题中每个单词的embedding;二是得到标题中每个单词对应的实体的embedding;三是得到每个单词的上下文embedding。每个单词对应的embedding可以通过word2vec预训练的模型得到。这里主要介绍后两部分:

实体embedding

实体特征即标题中每个单词对应的实体的特征表示,通过以下四个步骤得到:
1、识别出标题中的实体并利用实体链接技术消除歧义;
2、根据已有知识图谱,得到与标题中涉及的实体链接在一个step之内的所有实体所形成的的子图;
3、构建好知识子图以后,利用基于距离的翻译模型得到子图中每个实体embedding;
4、得到标题中每个单词对应的实体embedding。

过程图示如下:
上下文embedding

尽管目前现有的知识图谱特征学习方法得到的向量保存了绝大多数的结构信息,但还有一定的信息损失,为了更准确地刻画实体,文中额外地使用一个实体的上下文实体特征(contextual entity embeddings)。一个实体e的上下文实体是e的所有一跳邻居节点,e的上下文实体特征为e的所有上下文实体特征的平均值:

下图的绿色椭圆框内即为“Fight Club”的上下文实体:

4.2 新闻特征提取KCNN(Knowledge-aware CNN)

在知识抽取部分,得到了三部分的embedding,一种最简单的使用方式就是直接将其拼接:W=[w_1,w_2,...w_n ,e_{t1},e_{t2},...]但此做法存在几方面的限制:
1、连接策略打破了单词和相关实体之间的联系,并且不知道它们的对齐方式;
2、单词的embedding和对应实体的embedding是通过不同的方法学习的,这意味着它们不适合在单个向量空间中将它们一起进行卷积操作;
3、连接策略需要单词的embedding和实体的embedding具有相同的维度,这在实际设置中可能不是最优的,因为词和实体embedding的最佳维度可能彼此不同。

因此本文使用的是multi-channel和word-entity-aligned KCNN。具体做法是先把实体的embedding和实体上下文embedding映射到一个空间里,映射的方式可以选择线性方式g(e) = Me,也可以选择非线性方式g(e) = tanh(Me + b),这样就可以拼接三部分多通道输入矩阵:
W=[[w_1g(e_1)g( \bar e_1)][w_2g(e_2)g( \bar e_2)]...[w_ng(e_n)g( \bar e_n)]]\in R^{d\times n\times 3}
通过卷积神经网络,经过卷积层和池化层进行学习,最终得到输入新闻标题t的重表示e(t)c^h_i=f(h*W_{i:i+l-1}+b) \tilde{c}^h=\max{\{c^h_1,c^h_2,\cdots,c^h_{n-l+1}\}} e(t)=[\tilde{c}^{h_1}\tilde{c}^{h_2}\cdots \tilde{c}^{h_m}]

4.3 基于注意力机制的用户兴趣预测

给定用户的点击历史\{t^i_1,t^i_2,\cdots,t^i_{N_i}\},被点击的新闻embeddings可以表示为\{e(t^i_1),e(t^i_2),\cdots,e(t^i_{N_i}) \} 。用户i当前候选新闻t_j,可以简单表示为:
e(i)=\frac{1}{N_i}\sum_{k=1}^{N_i}e(t^i_k)在判断用户对当前新闻的兴趣时,使用注意力网络(attention network)给用户历史记录分配不同的权重。通过softmax函数得到归一化的权重:s_{t^i_k,t_j}=softmax(\mathcal{H}*(e(t^i_k),e(t_j)))=\frac{exp(\mathcal{H}*(e(t^i_k),e(t_j)))}{\sum^{N_i}_{k=1}exp(\mathcal{H}*(e(t^i_k),e(t_j)))}用户i的embedding:e(i)=\sum_{k=1}^{N_i}s_{t^i_k,t_j}e(t^i_k)通过另一个DNN得到用户i点击新闻t_j的概率:p_{i,t_j}=\mathcal{G}(e(i),e(t_j))

通过注意力权重的可视化结果看出,注意力机制的引入对模型的最后输出产生了积极的影响。由于注意力机制的引入,DKN可以更好地将同类别的新闻联系起来,从而提高了最终的正确预测的数量。

依次学习的优势在于知识图谱特征学习模块和推荐系统模块相互独立。在真实场景中,特别是知识图谱很大的情况下,进行一次知识图谱特征学习的时间开销会很大,而一般而言,知识图谱远没有推荐模块更新地快。因此可以先通过一次训练得到实体和关系向量,以后每次推荐系统模块需要更新时都可以直接使用这些向量作为输入,而无需重新训练。

依次学习的缺点也正在于此:因为两个模块相互独立,所以无法做到端到端的训练。通常来说,知识图谱特征学习得到的向量会更适合于知识图谱内的任务,比如连接预测、实体分类等,并非完全适合特定的推荐任务。在缺乏推荐模块的监督信号的情况下,学习得到的实体向量是否真的对推荐任务有帮助,还需要通过进一步的实验来推断。

知识图谱与推荐系统结合之DKN模型原理及实现
如何将知识图谱特征学习应用到推荐系统
推荐算法不够精准?让知识图谱来解决

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352

推荐阅读更多精彩内容