作者:一元,炼丹笔记小编
Multi-Task Feature Learning for Knowledge Graph Enhanced Recommendation(WWW2019)
背景
协同过滤在真实推荐场景中经常会受到稀疏性和冷启动问题的影响,为了缓解此类问题,我们使用附带信息(side infomation)来处理。本文,作者使用知识图谱作为附带信息并采用多任务学习的方式来处理该问题。
问题定义模型介绍
我们有一个个用户的集合以及个商品的集合, 以及用户和商品的交互集合, 如果用户和商品有交叉,例如点击,观看,购买等,那么,反之则为0.
除此之外,我们还有知识图谱, 它由实体关系实体(entity-relation-entity)的三元组组成,其中分别表示head,relation,和tail. 例如(Quentin Tarantino, film.director.film, Pulp Fiction)就表示Quentin Tarantino监制了电影Pulp Fiction。而在推荐场景中, 一个商品可能和中的一个或者多个实体关联。例如在电影推荐中, Pulp Fiction可能和它一个同名的关联,但是在新闻推荐中,标题名字为”Trump pledges aid to Silicon Valley during tech meeting”在知识图谱中就和实体"Donald Trump"以及"Silicon Valley"相关联。
给定用户和商品的交互矩阵以及知识图谱,我们希望预测用户对于之前从未有交互的商品是否存在潜在的兴趣?所以我们的目标就是:
其中为用户和商品交互的概率,为函数的参数,
本文的整体模型框架如下:
MKR由三个模块组成:
为了建模商品和实体的特征交叉,我们设计了一个cross&compress单元。对于商品以及它所关联的实体,我们先构建影藏特征以及的个成对交叉。
是在第层的特征交叉矩阵, 是隐藏层的维度。
然后我们通过交叉特征矩阵将下一层的商品和实体特征向量映射到它们的潜在表示空间。
其中, 是训练的权重和偏差向量。这个称为操作,因为我们将投影到上。通过上面的操作,我们从水平和垂直方向进行了压缩。
通过该操作,MKR可以自适应地调整知识迁移的权重并且学习两个任务的相关性。
注意:交叉压缩单元应该只存在于MKR的底层。在深层结构中,特征通常沿网络从广义(general)到特定(special)的转换,并且随着任务的不同性的增加,特征在更高层次的移植性会显著下降。因此,共享高层的信息有可能导致负迁移,特别是对于MKR中的异构任务。在MKR的高层中,商品的特征与用户特征混合,实体特征与关系特征混合。混合特征不适合共享,因为它们没有明确的关联。
MKR中的推荐模块由两个原始输入特征向量和组成, 给定用户的原始特征向量,我们使用层的MLP对其深层的语义信息进行抽取。
其中是全连接网络层, 对于商品,我们使用 个 的单元抽取它的特征:
其中是商品的相关实体集合。
在获得用户的潜在特征以及商品的潜在特征之后,我们使用下面的方式对其进行预估:
知识图谱embedding将实体以及关系embed到某个连续的向量空间中,和推荐模块类似, 对于给定的知识三元组,我们首先使用多个 的单元以及非线性层来处理head以及关系的原始特征向量,最终它们的潜在向量被concatenate到一起, 之后再接上上K层的MLP预测,
其中是和实体相关的商品集合, 是尾部的预测向量,最终,三元组通过得分函数计算得到:
我们使用正则化的内积作为得分函数。
MKR的最终Loss为:
上面式子中, 是交叉熵函数, 用来计算推荐模块的损失; 第二项计算KGE模块的损失, 其中我们希望增加所有正的三元组的分数同时减少所有负的三元组的分数。最后一项是正则项。
的单元有足够的多项式近似的能力。证明略。
实验
小结
提出了一种多任务学习的知识图增强推荐方法MKR。MKR是一个端到端的深度模型框架,由两部分组成:推荐模块和KGE模块。两个模块都采用多个非线性层来提取输入的潜在特征,以适应用户商品和头部关系对之间复杂的交互作用。由于这两个任务不是独立的,而是通过商品和实体联系在一起的,因此我们在MKR中设计了一个交叉压缩单元来关联这两个任务,它可以自动学习项目和实体特征的高阶交互,并在两个任务之间传递知识。在四个推荐场景中进行了大量的实验。结果表明MKR比强基线有显著的优越性和KG的使用效果。
参考文献