【kg推荐->精读】Learning Intents behind Interactions with Knowledge Graph for Recommendation

news/2024/5/19 22:37:05 标签: 知识图谱, 人工智能, 推荐算法

KGIN

Learning Intents behind Interactions with Knowledge Graph for Recommendation

Abstract

基于GNN的端到端模型。

现有的基于GNN的模型是粗粒度的,不能

  1. 在intents(意图)的细粒度级别识别user-item关系。
  2. 利用 关系依赖(relation dependencies) 来 保持长连接的语义(preserve the semantics of long-range connectivity)

本研究中,使用auxiliary item knowledge(辅助item知识)探索user-item交互背后的意图(intents)。提出了模型- Knowledge Graph-based Intent Network(KGIN)。

  • 作者将每个intent建模为kg relations的attentive combination,鼓励不同intent的独立性。
  • 此外,设计了新的GNN信息聚合方法,recursively integrates the relation sequences of long-range connectivity (relational paths)。该方案允许我们提取有关用户意图的有用信息,并将它们编码到user和item的表示中。

Keywords

  • Recommendation
  • Knowledge Graph
  • Graph Neural Networks

1 Introduction

knowledge-aware recommendation的目标:学习user和item的高质量表示。

  • Earlier works先前工作[1,4,51],从kg三元组生成embedding,作为item表示的补充。
  • Some follow-on studies接下来的工作[15,44,49]增加了 多跳路径 的概念。
    • 但是存在各种问题
      • 需要大量特征工程[44]
      • 难以用到其他领域[15,17]
      • 性能不稳定[49]
  • More recently最近,基于GNN的端到端模型[38,39,41,47]。关键思想是利用信息聚合,用多跳邻居。

它很好,但是有不足:

  1. User Intents。To the best of our knowledge(据我们所知),它们没有从intent层面考虑user-item relation。一个用户通常有多个intent,驱使用户消费不同的物品。图1可以帮助理解(intent p1认为看i1与i5是因为关注r1和r2,intent p2认为看i1和i2是因为关注r2和r3)。

在这里插入图片描述

  1. Relational Paths。没有保存relation dependencies and sequencies carried by paths。因此,这种基于节点的方案不足以捕获关系之间的交互。过去的方法是Node-based Neighborhood Aggregation,不区分路径,通常用衰减因子[38,41]中建模,例如1跳,2跳,3跳。

因此本文提出了KGIN,它解决了:

  1. User Intent Modeling。每次的交互都有潜在的intents,intent向量可以作为KG关系的一种分布,intent embedding可以视为relation embeddings的attentive combination,重要的relations会被赋予更大的attribution scores;引入独立的constraint->用于鼓励intent之间的差异。
  2. Relational Path-aware Aggregation。每个relational path作为information channel,再向量化。user-intent-item triplets和KG triplets用两种aggregation策略,以便分别提取用户的行为模式和item的相关性。简而言之,这种关系建模允许我们识别有影响的intents,并将 关系依赖和路径语义 编码到表示中。

KGIN比KGAT[41],KGNN-LS[38],CKAN[47]好。

KGIN的贡献:

  1. 揭示了用户背后的intent
  2. 提出了KGIN,它在GNN范式下以更细粒度的意图和关系路径的长期语义考虑用户-项关系

2 Problem Formulation

引入了user-item interactions和kg概念,然后formulate our task。

3 Methodology

模型的工作流程:

  1. user intent modeling
  2. relational path-aware aggregation

在这里插入图片描述

3.1 User Intent Modeling

解释了intent存在的意义:与之前假设用户和item之间没有交互或只有一个交互,我们旨在捕捉用户行为受多种intent影响的直觉。在这里,我们将Intent定义为用户选择item的原因,这反映了所有用户行为的共性。以电影推荐为例,可能的intent是对电影属性的不同考虑,例如明星和合作伙伴的结合,或导演和类型的结合。不同的意图抽象出用户不同的行为模式。这可以通过更细粒度的假设来增强广泛使用的协作过滤[26]效果——由相似intent驱动的用户会对item有相似的偏好。这种直觉促使我们以intent的粒度对用户-item关系进行建模。

转化为intent graph(IG):假设P是所有用户共享的intent集,我们可以将统一的用户-项目关系分割为|P|个intents,并将每个(u,i)对分解为{(u,p,i) | p∈ P} 。与以往的homogeneous collaborative graph不同。

3.1.1 Representation Learning of Intents

尽管我们可以用潜在的向量来表达这些意图,但很难明确地识别每个意图的语义。一个简单的解决方案是将每个intent与KTUP[4]提出的一个KG关系相结合。然而,该解决方案仅单独考虑单个关系,而没有考虑关系的交互和组合,因此无法细化用户意图的高级概念。例如,关系r1和r2的组合对意图p1有影响,而关系r3和r4对意图p2的影响更大。因此,每个p在KG relations的分布——运用注意力策略创建intent embedding:
e p = ∑ r ∈ R α ( r , p ) e r (1) \mathbf{e}_{p}=\sum_{r \in \mathcal{R}} \alpha(r, p) \mathbf{e}_{r} \tag{1} ep=rRα(r,p)er(1)
e r是relation r的id embedding, α \alpha α是attention score,具体公式为
α ( r , p ) = exp ⁡ ( w r p ) ∑ r ′ ∈ R exp ⁡ ( w r ′ p ) (2) \alpha(r, p)=\frac{\exp \left(w_{r p}\right)}{\sum_{r^{\prime} \in \mathcal{R}} \exp \left(w_{r^{\prime} p}\right)} \tag{2} α(r,p)=rRexp(wrp)exp(wrp)(2)
w rp是relation r和intent p的训练权重。这里,为了简单起见,我们使用权重,并在未来的工作中对复杂注意力模块进行进一步探索。

注意⚠:这些attention分数是针对所有user的。

3.1.2 Independence Modeling of Intents

不同intent应该包含不同用户偏好的信息[23,24]。如果一个意图可以被其他意图推断出来,那么描述用户-项目关系可能是多余的,信息量较少;相反,具有独特信息的意图将为描述用户的行为模式提供一个有用的角度。因此,为了更好的模型容量和可解释性,我们鼓励意图的表示彼此不同。

因此引入了independence modeling,用于指导independent intents的表示。简单的方法有互信息[2]、皮尔逊相关系数[33],距离相关性[32,33,43]作为正则化。这里提供两种实现:

  • Mutual information(互信息)。最小化互信息,用对比学习[7,12]。

在这里插入图片描述

  • Distance correlation(距离相关性)。它测量任何两个变量的线性和非线性关联,当且仅当这些变量独立时,其系数为零。最小化用户意图的距离相关性使我们能够减少不同意图的依赖性,其公式如下:

在这里插入图片描述
在这里插入图片描述

上面两种方法都是用于最小化相关程度,增加intents的独立性。

3.2 Relational Path-aware Aggregation

文章先介绍了以往GNN-based recommender models[38,39,41]的neighborhood aggregation方法——结点的表示向量是通过 递归aggregating和transforming其多跳邻居 来计算的。

但node-based aggregation有两个局限性:

  1. aggregate通常不考虑邻居的来源(相同的结点,可能来自不同路径,但是模型只通过衰减因子来表示)
  2. 当前基于节点的聚合器通常通过注意网络对衰减因子中的KG关系建模[38,41,47],以控制从邻居传播多少信息。这限制了KG relations对节点表示的贡献。

因此,文章提出了relational path-aware aggregation scheme。

3.2.1 Aggregation Layer over Intent Graph

我们首先从IG中提炼协作信息。如前所述,CF effect[26]通过假设行为相似的用户会对物品有相似的偏好,从而有力地表征了用户模式。这激励我们将个人历史(即用户以前采用过的项目)视为个人用户的预先存在的特征。此外,在我们的IG中,我们可以通过假设具有相似意图的用户会对item表现出相似的偏好,从而在用户意图的粒度级别捕获更细粒度的模式。

在IG图中,用N u表示intent-aware的历史和u周围的一阶连通性。从技术上讲,我们可以集成来自历史item的intent-aware information来创建用户的表示:

在这里插入图片描述

e u 1是用户u的表示;f IG是描述每个first-order connection(u, p, i)的aggregator函数,文章对f IG的实现是:

在这里插入图片描述

e i 0是item i的id embedding;⊙表示element-wise product。

我们用两种见解:

  1. 给定user,不同的intents有不同的contributions to motivate their behaviors。因此,使用 β \beta β表示不同intent p的重要程度。

在这里插入图片描述

e u 0是user u的id embedding,为了使importance score个性化。

  1. 与以往研究中使用衰减因子[38,41,47]或正则化术语[41]的想法不同,我们强调了intent relations在 aggregation过程中的作用。因此,我们通过element-wise product β(u,p)*ep⊙ei 0来构造item i的信息。

因此,我们能够显式地在user representations中表达first-order intent-aware information

3.2.2 Aggregation Layer over Knowledge Graph

然后,我们将重点放在KG的aggregation方案上。由于一个实体可以涉及多个KG三元组,因此它可以将其他连接的实体作为其属性,这反映了项目之间的内容相似性。

N i表示关于item i的属性和first-order connectivity。integrate来自连接entities的relation-aware information,生成对item i的表示:(和 e u ( 1 ) e^{(1)}_u eu(1)很像吧?)

在这里插入图片描述

e i 1是收集一阶连接信息后的表示。f KG是提取和整合连接(i,r,v)信息的聚合函数。

由于每个KG实体在不同的关系上下文中具有不同的语义和含义。比如Quentin是一个Django Unchained的导演,但是也是Django Unchained的演员。先前的研究[38,41,47]仅通过注意机制对衰变因子中的KG关系进行建模,以控制Quentin对Django Unchained的表示的贡献,而作者将relational context聚合器建模为:

在这里插入图片描述

e v 0是entity v的id embedding。对每个(i,r,v),用投影projection或旋转retation的操作建模relation[30],我们设计了关系信息er⊙ e v (0)。因此,关系信息能够揭示由三元组所携带的不同含义,即使它们[e v (0)]是相同的实体。同理,我们可以得到每个KG实体v的表示 e v ( 1 ) e_v^{(1)} ev(1)

3.2.3 Capturing Relational Paths

之后,堆叠更多aggregation layers,收集高阶邻居的信息。技术上来讲,是递归地,在l层后user u和item i的表示为:

在这里插入图片描述

得益于我们的关系建模,这些表示能够存储多跳路径的整体语义,并突出关系依赖性。

假设有一条item i的l跳路径, s = i − > s 1 − > s 2 − > . . . − > s l s = i -> s1 -> s2 -> ... -> sl s=i>s1>s2>...>sl。它包含一系列连接的三元组。其关系路径仅表示为关系序列。在l跳后,item i在l层的表示可以重写为:(可以对照公式10)

在这里插入图片描述

N i l是item i的所有l跳路径。显然,这种表示反映了relations之间的相互作用,并保留了路径的整体语义。这与目前knowledge-aware recommenders采用的aggregation机制有很大的不同,后者忽略了KG关系的重要性,因此无法捕获关系路径。

3.3 Model Prediction

在L层后,我们得到useru和itemiat不同层的表示,然后将它们相加作为最终表示:

在这里插入图片描述

通过这样做,路径的intent-aware关系和KG关系dependencies被encoded到最终表示中。

然后,我们对用户和项表示使用内积来预测用户采用该item的可能性:

在这里插入图片描述

3.4 Model Optimization

使用BPR loss[26]。具体而言,它认为,对于给定用户,他的历史项目应该被分配比未观察到的项目更高的预测分数:

在这里插入图片描述

通过结合独立性损失和BPR损失,我们将下面的目标函数最小化来学习模型参数:

在这里插入图片描述

λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2分别是控制independence loss和L2 regularization的超参数。

3.5 Model Analysis

4 Experiments

4.1.3 Alternative Baselines

  • MF[26]
  • CKE[51],简单地将KG嵌入到MF中
  • KGNN-LS[38]
  • KGAT[41]
  • CKAN[47]
  • R-GCN[27]

5 Related Work

基于KG推荐大致有4组:

  • Embedding-based Methods[1,4KTUP,16,35CKE,37,51]
  • Path-based Methods[5,15,25,31 recurrent neural network,36 RippleNet-memory network,44 recurrent neural network]
  • Policy-based Methods[40,45,49PGPR,52,53]
  • GNN-based Methods[17NIRec,38,39,41KGAT,47CKAN] KGIN属于它

6 Conclusions And Future Work

KGIN = relational modeling of knowledge-aware recommendation, in GNN-based methods.

在relational modeling上2点:

  1. 在intents里堵上解释user-item关系,并与kg关系耦合 以形成可解释的语义
  2. relational path-aware aggregation,聚合来自多条路径的信息。
  • 目前的工作通常将kg推荐视为 有监督任务。未来将探索 自监督,通过自我监督任务生成辅助监督,揭示数据实例之间的内在关系。
  • 此外,我们希望在知识感知推荐中引入因果概念,如因果效应推理、反事实推理和反解构,以发现和放大偏见[6]。

http://www.niftyadmin.cn/n/1363680.html

相关文章

Font English Code

中文名英文名UnicodeUnicode 2Mac OS华文细黑STHeiti Light [STXihei]/534E/6587/7EC6/9ED1华文细黑华文黑体STHeiti/534E/6587/9ED1/4F53华文黑体华文楷体STKaiti/534E/6587/6977/4F53&…

Maximum Depth of Binary Tree

Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 仍然可以应用之前学到的 Binary Tree leverl order traverse 哈哈 public int maxDepth(TreeNode root)…

Spark学习笔记:(一)入门 glance

参考:  http://spark.apache.org/docs/latest/quick-start.html其它资料: http://mojijs.com/2015/04/190845/index.htmlhttp://taoistwar.gitbooks.io/spark-developer-guide/content/index.htmlhttp://rdc.taobao.org/?p2024#转换http://blog.csd…

Catalan数及其应用

1. 定义 卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁查理卡塔兰 (1814–1894)命名,其前几项为 : 1, 2, 5, 14, 42, 132... 递推式:令h(0)1,h(1)1, (1)…

[Link]Hive资料整理

Hive SQL的编译过程 Hive学习分享 IBM Hive 转载于:https://www.cnblogs.com/Athrun/p/4571042.html

[ZZ] C++ stack/queue

STL--stack/queue的使用方法2010-01-05 17:36stack(栈)和queue(队列)也是在程序设计中经常会用到的数据容器,STL为我们提供了方便的stack(栈)的queue(队列)的实现。准确地说,STL中的stack和queue不同于vector、list等容器,而是对这些容器的重…

C#中一道关于多线程的基础练习题——模拟仓库存销过程

题目:模拟生产、入库、销售(50分) 假设某企业自产、自存、自销,需要将工厂生产的各类产品不定时的运到仓库,与此同时,需要将仓库中的货物运往超市和商场中进行销售,请编写一个程序模拟此过程&am…

Unity + iBatis + Asp.net Mvc 系统搭建

之前用EntityFramework Code First做了一些小项目,很是方便;后来在一个 Java 项目中接触了myBatis之后,深深的喜欢上了这种最直接最原始最灵活的数据库操作,所以最终决定改造之前的项目,使用IBatis访问数据库&#xff…