• Learning Intents behind Interactions with Knowledge Graph for Recommendation


    KGIN

    Abstract

    论文中提出目前的GNN-based模型在关系建模上属于粗粒度的建模。在两个方面做得不足:

    (1)没有在细粒度的意图级别上识别用户-项目关系

    (2)未利用关系依赖性来保留远程连接的语义

    于是使用了新的模型——Knowledge Graph-based Intent Network(KGIN),结合KG关系,加强不同用户-项目关系的独立性,以此加强模型的能力和可解释性。

    使用了一种新的信息聚合机制,递归地集成远程连接的关系序列(关系路径)。


    1 INTRODUCTION

    KG能够改进推荐系统,其中富含的关系信息能够更好的建模。不仅能够揭露项目之间的复杂关系,还能更好地解释用户的偏好。

    以前的工作使用KG三元组,并将其视为前置的信息来实现实体表示。后续的一些研究通过丰富用户和项目之间多跳路径,以此更好的表征用户-项目关系。最近,基于GNN的端到端模型变成了一种技术趋势。关键思想是利用信息聚合方案,它可以有效地将多跳邻居集成到表示中。

    文章中认为现在的GNN-based方法有两个不足:

    (1)User Intent

    文章中说目前研究没有考虑更细粒度的意图级别的用户-项目关系。忽略了一个事实:一个用户可能会有多个意图,驱使用户去消费不同的产品。

    (2)Relational Paths

    文章认为目前的信息聚合机制都是基于节点的,中心节点从邻居节点收集信息,但是没有区分这些信息来自于那一条关系路径(Relational Path),因此不能充分第捕获关系中的交互。

    KGIN有两个组成部分来解决上述限制:

    (1)User Intent Modeling

    每个用户-项目交互都包含潜在的意图,并且可以用向量表示,但是难以解释。因此,将每个意图与KG关系的分布相关联,说明关系组合的重要性。技术上说,就是intent的嵌入表示,是关系嵌入表示的组合,其中更重要的关系占比更大。此外,还引入独立性约束,鼓励不同intent的差异性,以此得到更好地可解释性。

    (2)Relational Path-aware Aggregation

    与基于节点的聚合机制不同,文章将关系路径视为信息通道,并将每个通道编成一个向量表示。因为user-intent-item和KG三元组是异构的,需要设置不同的聚合策略,以分别提取用户的行为模式和项目的相关性。


    2 PROBLEM FORMULATION

    Interaction Data

    文章中关注推荐中的隐式反馈(例如:查看,点击,购买)。

    U是users的集合

    I是items的集合

    (O^+ = {(u,i)|u∈U,i∈I})是观察到的反馈集合,(u,i)对表示用户u和项目i历史上有交互行为

    引入一个额外的internet-with来显式呈现用户-项目关系并将(u,i)转换成(u,interact-with,i),以此用户-项目交互可以和KG结合起来

    Knowledge Graph

    KG以异构图存储真实世界中的结构化信息,例如:项目属性、分类、常识等等

    V是真实世界中实体的集合

    R是关系的集合,表示一些规范和反方向的关系,例如director and directed-by

    G = {(h,r,t)|h,t∈V, r∈R}是三元组的集合,(h,r,t)三元组表示从头实体h到尾实体t存在r关系。通过项目和KG实体之间的映射(I ⊂ V),KG能够分析项目并为交互数据提供补充信息。

    Task Description

    给定交互数据 (O^+) 和知识图谱G,我们使用知识感知推荐任务学习一个可以预测用户喜欢某个项目的可能性的函数。


    3 METHODOLOGY

    下面图为KGIN的工作流,有两部分组成:

    (1)user intent modeling
    (2)relational path-aware aggregation

    image.png

    3.1 User Intent Modeling

    假设用户行为受多种intent影响,并将intent定义为用户选择商品的原因,反映了所有用户行为的共性。以电影推荐为例,可能的意图是对电影属性的不同考虑,例如明星和合作伙伴的组合,或者导演和类型的组合。不同的意图抽象出不同的用户行为模式。这可以通过更细粒度的假设来增强广泛使用的协同过滤效果————相似意图驱动的用户对项目有相似的偏好。因此以意图的粒度来对用户-项目关系进行建模。

    P是所有用户共享的意图集合,以此可以将每个(u,i)分解为{(u,p,i)|p∈P}。因此,可以将用户-项目交互数据重组为一个异构图,称为intent graph(IG),这与以往工作中采用的同构协作图不同。

    3.1.1 Representation Learning of Intent

    KTUP提出将每个意图与一个KG关系进行结合,可以更好的解释这些intent的影响。但是这种方案只是孤立地考虑单个关系,没有考虑intent的交互和结合,没有办法提炼出用户意图的高层概念。

    [e_p=sum_{r∈R}alpha(r,p)e_r ]

    (e_r)是关系r的ID embedding,(alpha(r,p))是重要性分配,具体如下:

    [alpha(r,p)=frac{exp(w_{rp})}{sum_{r^{'}∈R}exp(w_{r^{'}p})} ]

    其中(w_{rp})是特定关系r和特定意图(intent)p的可训练权重。而且这些注意力权重是针对所有用户的,而不是针对某个用户的。

    3.1.2 Independence Modeling of Intents

    不同的意图应该包含用户偏好的不同信息。如果一个intent可以从其他intents推断出来,则它可能是多余的,信息量比较少,因此需要更多的彼此不同的intents

    文章引入独立模块来学习独立intent的表示,使用统计度量例如:mutual information、Pearson相关性、距离相关性等来作为正则化。下面是两种实现:

    Mutual information

    将两个不同intent的表示之间的mutual information最小化,以量化它们的独立性。模型如下:

    [L_{IND}=sum_{p∈P}-logfrac{exp(s(e_p,e_p)/ au)}{sum_{p^{'}∈P}exp(s(e_p,e_{p^{'}})/ au)} ]

    其中s(·)是测量任意两个意图表示之间的关联性的函数,文章中使用余弦相似函数,( au)是Softmax函数的超参数

    Distance correlation

    测量两个变量的线性和非线性关联,当且仅当这些变量是独立的,系数为零。最小化用户intent的距离相关性,能够减少不同intent之间的依赖,表达式如下:

    [L_{IND}=sum_{p,p^{'}∈P,p eq p^{'}}dCor(e_p,e_{p^{'}}) ]

    其中dCor(·)是intent p和intent(p^{'})的距离相关性

    [dCor(e_p,e_{p^{'}})=frac{dCov(e_p,e_{p^{'}})}{sqrt{dVar(e_p) cdot dVar(e_{p^{'}})}} ]

    dCov(·)是两个表示的距离协方差
    dVar(·)是每个intent的距离方差

    优化这个Loss可以使不同intent更加独立

    3.2 Relational Path-aware Aggregation

    之前的GNN-based推荐模型已经显示出了邻居节点聚集机制,以一种端到端的方式在聚合多跳邻居的优势。

    文章中之处目前的聚合方式是基于节点的,会限制结构化知识的收益。原因有两个,如下:
    (1)聚合器注重于组合邻域信息,而没有区分它们来自于哪条路径。
    (2)基于当前结点,通过注意力机制来对KG关系进行建模,以控制邻居的传播,会限制KG关系对节点的贡献。并且没有显式地捕捉关系依赖。

    因此目标是设计一种关系路径感知聚合方案来解决这两个限制。

    3.2.1 Aggregation Layer over Intent Graph

    文章先从IG中提炼collaborative information。CF是一个很有效果的方法。由此启发,将个人历史记录视为个人用户的预先存在的特征。此外,在用户intent的粒度级别捕获更细粒度的patterns,并可以假设具有相似意图的用户将对项目表示出类似的偏好。假设u是IG中的一个用户,则使用(N_u={(p,i)|(u,p,i)∈C})来表示意图感知历史和围绕u的一阶连通性。
    技术上,可以继承来自历史项目的意图感知信息,以此创建用户u的表示,如下公式:

    [e_u^{(1)}=f_{IG}({(e_u^{(0)},e_p,e_i^{(0)})|(p,i)∈N_u}) ]

    其中(e_u^{(1)}∈R^d)是用户u的表示,(f_{IG}(cdot))是表征每个一阶连接(u,p,i)的聚合函数,(f_{IG}(cdot))实现如下:

    [e_u^{(1)}=frac{1}{|N_u|}sum_{(p,i)∈N_u}eta(u,p)e_p odot e_i^{(0)} ]

    e_i^{(0)}是项目i的ID embedding,(odot)是element-wise乘积(逐个元素相乘,就是相同位置的元素相乘),将上述公式分为两个部分来理解,(1)对于给定的用户,不同的intent会对其行为产生不同的激励作用。因此引入注意力机制(eta (u,p))来评判不同intent p的重要性:

    [eta (u,p)=frac{exp(e_p^{ op}e_u^{(0)})}{sum_{p^{'}∈P}exp(e_{p^{'}}^{ op},e_u^{(0)})} ]

    (e_u^{(0)}∈R^d)是用户u的ID embedding,以使重要性得分个性化。(2)不同于其他模型使用衰减因子或者正则化项的思想,文章中为了突出意图关系在聚集过程中的作用。因此,通过element-wise乘积 (eta (u,p)e_p odot e_i^{(0)})来构造项目i的信息。因此,能够在用户表示中显式地表达一阶意图的感知信息。

    3.2.2 Aggregation Layer over Knowledge Graph

    这部分介绍KG中的聚合方法,一个实体可以涉及多个KG三元组,因此可以将其他连接的实体作为其属性,这些属性反映了项目之间的内容相似度。使用(N_i={(r,v)|(i,r,v)∈G})来表示项目i的属性和一阶连通性,然后集成来自相连实体的关系感知信息来生成项目i的表示:

    [e_i^{1}=f_{KG}({(e_i^{(0)},e_r,e_v^{(0)})|(r,v)∈N_i}) ]

    其中(e_i^{1}∈R^d)是从一阶连通性收集信息的表示;(f_{KG}(cdot))是从每个连接(i,r,v)中提取和集成信息的聚合函数。文章认为每个KG实体在不同的关系上下文中具有不同的语义和含义。以往的研究只通过注意力机制来模拟衰变因素中的KG关系,比如一个人可能是某个电影的导演,也可能是另一部电影的明星。文章使用的建模为:

    [e_i^{(1)}=frac{1}{|N_i|}sum_{(r,v)∈N_i} e_r odot e_v^{(0)} ]

    其中(e_v^{(0)})是entity v的ID embedding,对于每个三元组(i,r,v),文章中通过将关系r建模为投影或者旋转运算来设计关系信息(e_r odot e_v^{(0)})。因此,关系消息能揭示三元组所承载的不同含义,即便他们是相同的实体。类似,可以获得每个KG实体v∈V的表示(e_v^{(1)})

    3.2.3 Capturing Relational Paths

    通过一阶连通性建模后,进一步堆叠更多的聚合层,可以收集来自更高阶邻居的有影响力的信号,将user和item建模为如下:

    [e_u^{(l)}=f_{IG}({(e_u^{(l-1)},e_p,e_i^{(l-1)})|(p,i)∈N_u}),\ e_i^{l}=f_{KG}({(e_i^{(l-1)},e_r,e_v^{(l-1)})|(r,v)∈N_i}) ]

    其中(e_u^{(l-1)},e_i^{(l-1)},e_v^{(l-1)})分别表示用户u,项目i和实体v的表示,存储了关于其自身(l-1)跳的邻居的关系信号。得益于关系建模,这些表示能够存储多跳路径的整体语义,并突出关系依赖关系。设(s=istackrel{r_1}{longrightarrow}s_1 stackrel{r_2}{longrightarrow} cdots s_{l-1} stackrel{r_l}{longrightarrow} s_l)是以项目i为根的l-hop路径,其中包含了一系列相连的三元组。其关系路径仅表示为关系序列,即((r_1,r_2,cdots,r_l)),于是能够将(e_i^{(l)})重写为如下:

    [e_i^{(l)}=sum_{s in N_i^l}frac{e_{r_1}}{|N_{s_1}|}odot frac{e_{r_2}}{|N_{s_2}|}odot cdots odot frac{e_{r_l}}{|N_{s_l}|}odot e_{s_l}^{(0)} ]

    其中(N_i^l)是所有i的l跳路径的集合。这种表示反映了关系之间的相互作用,并保留了路径的整体语义。这与目前知识型推荐系统采用的聚合机制很不同,后者忽略了KG关系的重要性,无法捕捉关系路径。

    3.3 Model Prediction

    在L层之后,我们得到了用户u和项目i在不同层的表示,之后将它们相加作为最终的表示:

    [e_u^{*}=e_u^{(0)}+cdots +e_u^{(L)},qquad e_i^{*}=e_i^{(0)}+cdots +e_i^{(L)}. ]

    通过这样做,路径的意图感知关系和KG关系依赖被编码在最终表示中。此后,使用用户和项目表示的内积来预测用户采用该项目的可能性:

    [hat{y}_{ui}=e_u^{* op}e_i^{*} ]

    3.4 Model Optimization
    选择pairwise BPR loss来重建历史数据。对于给定的用户u,它的历史项目应该被赋予比未观察到的项目更高的预测分数:

    [L_{BPR}=sum_{(u,i,j)in O}-ln sigma(hat{y}_{ui} -hat{y}_{uj}), ]

    其中(O={(u,i,j)|(u,i)in O^{+},(u,j)in O^{-}})是由观察到的有相互关系(O^{+})和未观察到的对应物组成的训练数据集(O^{-})(sigma(cdot))是Sigmoid函数。通过结合独立性损失和BPR loss,最小化以下目标函数来学习模型参数:

    [L_{KGIN}=L_{BPR}+lambda _1L_{IND}+lambda _2left|Theta ight|_2^2 ]

    其中(Theta={e_u^{(0)},e_v^{(0)},e_r,e_p,w|uin U,vin V,pin P})是建模参数集合,需要注意的是(Isubset V)(lambda_1)(lambda_2)是两个超参数控制独立性损失和正则化项

    3.5 Model Analysis
    3.5.1 Model Size
    近来的研究表明非线性特征转换会使得GNNs难以训练,因此在KGIN中祛除了非线性激活函数和特征转换矩阵。因此,模型参数由以下两部分组成:
    (1)users,KG实体,KG关系的ID embedding

    [{e_u^{(0)},e_v^{(0)},e_r|uin U,vin V} ]

    (2)用户intents的ID embedding({e_p|pin P})和注意力权重(w)

    3.5.2 Time Complexity

    [O(L|C|d+L|G|d+|P|(|P|-1)/2) ]


    4 EXPERIMENTS

    文章中回答三个问题来证明KGIN的有效性,如下:
    (1)和soat知识型推荐系统相比,KGIN表现怎么样
    (2)KGIN的设计(用户intent的数量和独立性,关系路径的深度)对KGIN模型的影响
    (3)KGIN能够提供对用户intent的洞察力,并有更直观的可解释性

    4.1 Experimental Settings

    4.1.1 Dataset Description
    使用三个基准数据集,包括book, music, fashion。
    KGAT发布的Amazon-Book(1)和Last_FM(2)数据集
    使用Alibaba-IFashion(3)数据集来考察商品知识的有效性。
    为了保证数据质量,将丢弃交互少于是个的用户和项目,过滤掉少于是个三元组的KG实体。
    在表一总结了数据集的统计数据,如下:
    image.png

    4.1.2 Evaluation Metrics
    使用Recall@K和ndcg@K,默认K是20,报告测试集中所有用户的平均指标。

    4.1.3 Alternative Baselines
    将KGIN与soat方法进行比较,包括MF,CKE,KGAT,KGNN-LS,CKAN和RGCN。

    4.1.4 Parameter Settings
    使用pytorch框架,ID embedding的维度设为64,优化器为Adam,batch size为1024,在{(10^{-4},10^{-3},10^{-2})}中寻找learning rate。而其他附加约束的参数在({10^{-5},10^{-4},10^{-3},10^{-2},10^{-1}})中寻找(例如:(L_2)正则化,KGIN的独立性模型,CKE和KGAT的TransR,KGNN-LS的标签平滑)。GNN的层数在{1,2,3}中调整,KGNN-LS和CKAN的邻居size为16,batch size为128。对于模型参数的初始化使用Xavier,使用MF的预训练的ID embedding来作为KGAT的初始化。

    KGIN的超参数如下表:
    image.png
    同时观察到Mutual information和Distance correlation具有相似的趋势和表现,因此使用Mutual information。使用KGIN-3表示有3个关系路径聚集层的推荐模型,其他的类似。在没有指定情况下,用户意图数量|p|为4,关系路径聚合层数固定为3。|P|=K,其中在{1,2,4,8}中寻找合适的K,在{1,2,3}中寻找合适的L。

    4.2 Performance Comparison(RQ1)

    从recall@20和ndcg@20来进行比较。
    image.png

    进行分析

    ·KGIN在三个数据集上都实现了显著的改进,总结为如下的原因:
    (1)揭示了用户intent,KGIN能够更好的刻画用户和项目之间的关系,以此得到更强大的用户和项目表示。相反,基线模型忽略了隐藏的用户意图,并将用户项目边建模为收集信息的同质通道;
    (2)得益于我们的关系路径聚合机制。KGIN能够保持路径的整体语义,相比基于GNN的基线模型,能够从KG中收集更多的信息;
    (3)在IG和KG上应用不同的聚合方案,使得KGIN能够把协同信号和实体知识encode成用户和项目表示

    ·分析KGIN在三个数据集上的表现,可以发现Amazon-Book的改进比Alibaba-iFashion更多,原因如下:
    (1)Amazon-Book上的交互数据和KG数据都比Alibaba-iFashion更多,更密集;
    (2)在Alibaba-iFashion数据集中,更多的是三元组的数据,这说明,KGIN在远程连接的方面能力更强;

    ·KG辅助信息是有效果的,体现在CKE使用了KG信息,于是表现得比MF更好;

    ·基于GNN的方法在Amazon-Book和Last-FM上的表现优于CKE,这凸显了KGIN在远程连通性建模的能力。这些改进来自于使用结点的局部结构(邻域结构),来改进表示学习。可是Alibaba-IFashion数据集上,CKE的表现比KGIN更好,原因可能如下:
    (1)基于HNN的方法,设计非线性特征变换,训练繁重,使得性能降低;
    (2)CKE的TransR能够成功地捕获Alibaba-IFashion的一阶连通性的特征;

    ·KGAT,KGNN-LS,CKAN的结果处于用一水平,优于R-GCN。虽然R-GCN利用了KG关系转换邻居信息,而且此方法比衰减因子更好,但R-GCN最初设计的目的并不是推荐系统,因此不能正确地建模用户-项目关系;

    4.3 Relational Modeling of KGIN(RQ2)
    优于关系建模是KGIN的核心,文章进行消融实验,分别考察用户意图和KG关系,关系路径聚合的层数,用户意图的粒度以及用户意图的独立性对模型的影响

    4.3.1 Impact of presence of User Intents & KG Relations
    消融实验,产生了两个变体:(1)去除所有的用户intent和KG关系,称为(KGIN-3_{w/o I&R})(2)去除所有的用户intent,即|P|=0,称为(KGIN-3_{w/o I}),并将结果总结如下表:
    image.png
    根据结果可以看出用户intent和KG关系对模型都是有贡献的

    4.3.2 Impact of Model Depth
    具体结果如下表所示:
    image.png
    ·KGIN-2比KGIN-1表现更好,表明更深的模型可以使得实验结果更好;
    ·KGIN-3在Amazon-Book和Last-FM上的表现更好,表明,高阶连通性与二阶连通性是互补的,可以得到更好的结点表示;
    ·在Alibaba-IFashion上,KGIN-3的表现比KGIN-2的表现差,是因为该数据集上的三元组都是单品的一阶连通性,2层可以很好地捕捉信息;

    4.3.3 Impact of Intent Modeling
    具体结果如下图所示:
    image.png
    进行分析如下:
    ·增加intent数量可以提高性能;
    ·在Amazon-Book数据集中,在|P|=4之后尝试更细粒度会导致性能下降,可能愿意是独立性建模引起了一些意图之间的不相关性,更细的粒度也无法携带有用的信息;
    ·|P|=8的时候,Last-FM取得了更好的效果,这应该是因为数据集的差异。(不过我自己以为是因为听歌的人比看书的人多,所以会有更多和更细粒度的intent存在)

    同样,论文研究了独立性建模的影响,进行消融实验,禁用了独立性的模块,得到变体(KGIN-3_{w/o Ind}),具体结果如下表,尽管KGIN-3和(KGIN-3_{w/o Ind})性能相当,但(KGIN-3_{w/o Ind})需要更大的相关系数,并且用户意图不明确,解释性不强;

    4.4 Explainability of KGIN
    可解释性如图所示:
    image.png

  • 相关阅读:
    2020重新出发,JAVA入门,流程控制
    2020重新出发,JAVA入门,运算符
    2020重新出发,JAVA入门,标识符&修饰符
    2020重新出发,JAVA入门,关键字&保留字
    maven中解决Type javax.servlet.jsp cannot be resolved to a type(转)
    服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题
    完美解决win10家庭版本系统无法远程连接问题(转)
    激活win10系统
    服务器内存线性增长,根据句柄数查找问题进程
    服务器内存占用不断的增加 & 任务管理器(PF使用率)不断的增加:关注句柄数(转)
  • 原文地址:https://www.cnblogs.com/nanjibin/p/15041668.html
Copyright © 2020-2023  润新知