(十四)【RecSys 2016】Personalized Recommendations using Knowledge Graphs: A Probabilistic【看不懂】

本文探讨了一种新颖的推荐系统方法,利用ProPPR进行概率推理,结合实体链接和类型信息,解决了冷启动和数据稀疏问题。研究了EntitySim、TypeSim和GraphLF三种模型,实验对比了在Yelp和MovieLens-100K数据集上的性能。关键创新包括元路径优化和知识图谱的融入。
摘要由CSDN通过智能技术生成

题目: Personalized Recommendations using Knowledge Graphs: A Probabilistic Logic Programming Approach(一种概率逻辑编程方法)
论文链接:
代码:

想法

(1)推荐系统就是求出user和item的特征表示,最后通过一个公式来解决预测问题!
(2) wikifier or an entity linker
(3)真的很难理解,后面基本都是原地翻译的!看不下去,未来再回来看吧

创新点

  • 元路径的数目首先是不需要定的,超参数优化!
  • 将外部知识用到ProPPR是首次。
  • 这里通过ProPPR根据历史数据来得到seedset! 之后才用于推荐!!!

ABSTRACT

难点

content-based 和 CF结合是趋势,最近已经有工作集中到用外在的KGs来补充content-based推荐系统

我们

我们使用多用途的概率逻辑系统(ProPPR)的三种方法来制作基于KG的推荐系统。 模型最简单EntitySim,仅仅使用了图的连接; 之后扩展该模型到TypeSim,也用了实体的类型来增强它的泛化能力; 之后,开发一个基于潜在因素模型的图表,GraphLF

同时我们也证明了,在解决冷启动和数据稀疏问题时,KG有很大的优势,但是有更多的数据时,KG graph反而变的冗余。

数据集: Yelp、MovieLens-100K

Keywords:基于知识图的推荐; 概率逻辑编程; 基于图的矩阵分解

1. 介绍

社交方法最适合解决用户多而项目相对较少的问题,基于内容的最适合解决冷启动和长尾的设定。 而一个重要的方向就是如何利用外在的知识来提高基于内容的推荐系统。

与基于元路径来推断用户对item的方法不同, 我们的方法将问题表述为一个概率推理和学习任务,提出了三种建议的方法。 而且在其中,许多像特定的元路径或者是元路径的长度的工程问题被消除,这样可以使得系统能够发现元路径方法的更多变体

EntitySim,最简单的方法,方法是学习用户在内容上的偏爱,并利用KG的连接结构来做出预测。

TypeSim,在某些情况下,还可以获得关于内容的类型信息。因此本方法基于EntitySim但是额外的建立了Type流行度和Type相似性模型。 与【27】中相似,【27】也使用类型优化路径选择

GraphLF:最复杂的模型提出,是一个潜在的因子分解模型知识图,和类型无关, 即它不需要键入类型KG

除此之外,本论文中用实验证明,随着密度的变化,图连接结构就足够了,类型图反而是冗余的。 更大的数据密度下,甚至KG本身就是冗余的。 简单的方法反而效果很好。

2. Related Work

HeteRec_p提出了KGs来增强推荐系统,从而实现很好的效果。

HyPER系统:最近另一个使用多种信息源的是HyPER系统,里面作者展示了如何推荐使用概率软逻辑框架。他们创建了规则来模拟CF风格推荐,比如user-based CF中, 梅开三度: 第一度: 使用公式 S i m i l a r U s e r s ( u 1 , u 2 ) ∧ R a t i n g ( u i , i ) ⇒ R a t i n g ( u 2 , i ) SimilarUsers(u_1, u_2)\wedge Rating(u_i, i)\Rightarrow Rating(u_2,i) SimilarUsers(u1,u2)Rating(ui,i)Rating(u2,i)来推断,其中$ S i m i l a r U s e r s ( u 1 , u 2 ) SimilarUsers(u_1, u_2) SimilarUsers(u1,u2)表示的是 u 1 u_1 u1 u 2 u_2 u2 k k k-nearest 邻居算法离线计算下两人是相似的; 第二度: 如果朋友网络是可用的,可以利用 F r i e n d s ( u 1 , u 2 ) ∧ R a t i n g ( u i , i ) ⇒ R a t i n g ( u 2 , i ) Friends(u_1, u_2)\wedge Rating(u_i, i)\Rightarrow Rating(u_2,i) Friends(u1,u2)Rating(ui,i)Rating(u2,i);梅开三度:如果其它的评分预测算法比如矩阵分解(MF)可用,然后,他们利用这些规则归纳出一个集成推荐程序 R a t i n g M F ( u , i ) ⇒ R a t i n g ( u , i ) Rating_{MF}(u, i)\Rightarrow Rating(u,i) RatingMF(u,i)Rating(u,i) ⇁ R a t i n g M F ( u , i ) ⇒ ⇁ R a t i n g ( u , i ) \rightharpoondown Rating_{MF}(u, i)\Rightarrow \rightharpoondown Rating(u,i) RatingMF(u,i)Rating(u,i)。 最后,在训练阶段,他们使用PSL框架学习每个规则的权重,该权重随后用于预测测试集中的评分。

和HyPER系统类似,提出了一个 Markov Logic Networks,在该网络中,使用贝叶斯网络来创建一个hybrid推荐器。 而我们则是使用了外部知识后通用概率推理系统。

而在基于KG的方法中,都是添加各种特殊目的或者是特定领域的知识图, 或者是添加社交网络,计算最相近的邻居。 使用他人的评级来推荐自己的。

2.1 HeteRec_p

目的是使用metapaths来找到用户对没有评级的items的亲和度。首先定义什么是元路径:
Meta-path:

A是node types,R是关系集合。 之后给定一个meta-path P, 我们使用PathSim的变体—User Preference Diffusion来计算user i和item j在P上的相似度。 所以当给定L条原路径后,可以生成作者定义的L个user-item矩阵 R ~ ( 1 ) , R ~ ( 2 ) … R ~ ( L ) \tilde{R}^{\left ( 1 \right ) } ,\tilde{R}^{\left ( 2 \right ) } \dots \tilde{R}^{\left ( L \right ) } R~(1),R~(2)R~(L)! 每一个 R ~ ( q ) \tilde{R}^{\left ( q \right ) } R~(q)都可以使用使用低秩矩阵逼近技术被近似分解为 U ~ ( q ) ⋅ V ~ ( q ) \tilde{U}^{(q)}·\tilde{V}^{(q)} U~(q)V~(q)。 之后整体模型被表示为 r ( u i , v j ) = ∑ q ∈ L θ q U ^ i ( q ) ⋅ V ^ j ( q ) r\left(u_{i}, v_{j}\right)=\sum_{q \in L} \theta_{q} \hat{U}_{i}{ }^{(q)} \cdot \hat{V}_{j}^{(q)} r(ui,vj)=qLθqU^i(q)V^j(q) ,其中前面的参数是path q的学习权重。

为了个性化推荐,他们会根据用户的兴趣对其进行聚类,之后推荐函数会定义为:
在这里插入图片描述在这里插入图片描述
其中, C C C表示用户的聚类, s i m ( C k , u i ) sim(C_k, u_i) sim(Ck,ui)给出一个相似度评分在user i和 k t h k^{th} kth聚类之间, 同样的,前面的参数是学习的权重。

虽然很好,但是它需要很多超参数设定,比如元路径的数目、cluster的数量还有一个包含了实体和连接类型的丰富KG。

3. PROPOSED METHOD

3.1 Preliminaries

Entity是一个可以映射到知识库和本体的通用的词来表示句子或者短语。 如果要使用Wikipedia等通用知识库,需要使用wikifiler和entity linker。

HIN是异构信息网络,和KGs的区别是有实体和链接的类型映射函数。
Heterogeneous Information

V和E是实体和链接; 而A和R是实体类型和链接类型
这其中需要注意的是: 有两个函数 ϕ \phi ϕ ψ \psi ψ可以映射出实体和关系的类型!但是并未在图中展示

本文中使用的是宽松版的HIN,也就是有些点没有类型映射。 如果类型丢失,则只有EntitySim和GraphMF可用。

同样使用binary user feedback。 如果评分矩阵entry R i , j R_{i,j} Ri,j为1就是有行为,否则无行为。

3.2 Running Example

下面我们根据三个Users来理解知识库的作用。
在这里插入图片描述
(必须得知道这个,后面会用到)从历史记录来看,Alice看过了Saving Private Ryan and The Terminal,两个都使得Steven Spielberg as the Director and Tom Hanks as an Actor。根据知识库的设定 。 而且知识库也提供了国家和发行时间得信息。 同样的,我们也知道Bob和Kumar也看了这两个电影。 除了看之外,我们还可以包括用户的动作,比如“回顾”或“喜欢”,如果有的话。鉴于用户过去的观看历史,我们可能想要知道他们观看新电影Bridge of Spies的可能性。 除此之外,movies之间也是有联系的,比如两者可能是续集关系。

3.3 Recommendation as Personalized PageRank

随机游走策略就是让某点按照一定的概率顺着各条路径行走(包括回到自己),在多次游走稳定后,这种游走会产生许多没有意义信息。 比如我们只想要产生user-movie的,而不想产生movie的director-genre-actors。
在上述方法中,没有控制行走。行走的最终结果仅由链路结构和起始节点决定。然而最近方法在学着如何在图上行走。 通过学习一个权重向量 w w w,这个给了一个特征向量 ϕ u v \phi_{uv} ϕuv在图 u − > v u->v u>v中的一个边,计算边的力量为 f ( w , ϕ u v ) f(w,\phi_{uv} ) f(w,ϕuv)
在训练阶段,学习 w w w被认为是一个带有约束的优化问题。PageRank正示例节点的计算值大于负示例节点的计算值。而在我们的例子中,积极的例子你用户看过的电影,消极的例子则是用户没看过或者是差评的电影。

3.4 Learning to Recommend using ProPPR

ProPPR代表了Programming with Personalized PageRank,是一个一阶概率逻辑系统,接受一个在结构和语义上与逻辑程序和许多facts相似的program,输出一个entities的排序列表,这些实体根据facts answer program。ProPPR根据查询证明图(下文解释)中的个性化PageRank过程对查询的可能答案进行评分。下面将解释如何进行推荐。

首先我们会根据用户的历史数据得到用户感兴趣的一组,我们把它称为seedset。 接下来我们将会将seedset作为该用户随机游走的种子传入到ProPPR程序中。如上图展示的, ProPPR程序有三条规则。 第一规则表明了如果U已经评价了MM和实体X连接,XE是相关的,那么实体E属于用户U的seedset规则二,如果两个实体是一样的,那么两个实体被定义为相关的; 规则三,如果X和另一个实体Z连接,而Z和E相关,那么X和E也是相关的。 最后一条规则是递归的,也就是说可以无限延长。 **Link**和*Type*(isEntity, isItem and isUser)消息形成了我们实例中的知识图谱。 从知识图谱中取样的ProPPR的格式在图3中。 为了找到属于Alice的seedset,我们将发出查询 Q = s e e d s e t ( A l i c e , E ) Q = seedset(Alice, E) Q=seedset(Alice,E)给ProPPR。 (这里需要注意的是,种子集不是开始的节点,而是经过查询用户历史数据后得到的感兴趣的一组nodes)

找用户的seedset

ProPPR以图搜索的方式执行推理。给定像图2的LP程序和一个查询集Q,ProPPR开始创建图像 G G G,叫做proof graph。每个图中的节点代表一个有待验证的条件列表。 根节点 v 0 v_0 v0就是 Q Q Q,然后它递归地给 G G G添加节点和边: 让 u u u成为表单[ R 1 , R 2 , . . . , R k R_1, R_2,...,R_k R1,R2,...,Rk]的结点,其中 R ∗ R_* R是它的谓词。 如果ProPPR能在数据库中找到与 R 1 R_1 R1匹配的fact,然后相应的变量就有了界限, R 1 R_1 R1就会被从列表中移除。 否则,ProPPR在表单 S ⟵ S 1 , S 2 , . . . , S l S\longleftarrow S_1,S_2,...,S_l SS1,S2,...,Slde LP中寻找规则,其中 S S S匹配 R 1 R_1 R1,如果它发现了这样一个规则,它将创建一个新节点,其中R1替换为S的主体, v = [ S 1 , S 2 , . . . , S l , R 2 , . . . R k ] v=[S_1,S_2,...,S_l,R_2,...R_k] v=[S1,S2,...,Sl,R2,...Rk],并且连接 u u u v v v
在这里插入图片描述

在实际运行中, v 0 v_0 v0是seedset(Alice, E),然后连接到经过Rule 1得到的v1=[reviewed(Alice,M), link(M,X), related(X,E), isEntity(E)]; 之后,ProPPR将使用训练(历史)数据为 reviewed 创建两个节点v2和v3 [link(Saving Private Ryan,X), related(X,E), isEntity(E)]and[ link(The Terminal,X), related(X,E), isEntity(E)]来代替Saving Private RyanThe Terminal , 并称为 M。 ProPPR将使用规则等等从知识图中替换X和**related(X,E)**直到它到达一个谓词都被替换的节点。这些节点是应答节点,因为它们表示原始查询的完整证明。用于到达这些节点的变量绑定可用于回答查询。例如:
在这里插入图片描述
注意,这样的图构造可能是无限的。因此,ProPPR使用近似接地机制及时构建近似图,在时间 O ( 1 α ∈ ) O(\frac{1}{\alpha _ {\in} }) O(α1),其中 ∈ \in 是一个大约的错误, α \alpha α是重置参数。一旦构建了这样一个图,ProPPR将运行一个个性化的PageRank算法,起始节点为 v 0 v_0 v0,并根据其PageRank得分对答案节点进行排序

图2程序的输出是用户U的实体的排序列表,其中前K个将会被存储到U的种子集。 请注意,个性化PageRank评分将那些可以从用户评价了电影出发 ,有多条短路径可以到达的实体排名靠前,相反,相对较远的或者是并没有太多的路径可以到达的实体排名靠后。

在这里插入图片描述

预测

在生成每个user的种子集后,我们下一步骤就是训练模型来预测。 一种方法我们使用图4中的PRoPPR程序, 它表明如果一个实体E属于U的种子集,那么用户U可能喜欢一个电影M,U喜欢E,并且E和另一个实体X相关,这出现在电影M中(Rule 4)。 谓词isApplicable为每个用户控制训练和测试信息。在训练期间,它列出了积极和消极的训练例子,在测试阶段,为每个用户的测试。谓词related的定义与前面一样是递归的。对于谓词likesEntity的定义,请注意术语**{l(U,E)}。这对应于用于标注使用该规则的边的特性。举个例子,如果规则是调用U = AliceE = Tom Hanks**,那么这个特征就是l(Alice, Tom Hanks),在训练阶段,ProPPR从训练数据中学习该特征的权重。在预测阶段,ProPPR使用特征习得的权值作为边缘的权值。注意,每个user-item pair的这些学习权值与从图2的种子集生成程序中获得的排名无关,因为这些权值是特定于预测函数的。

训练阶段,ProPPR使方案的基础类似于前面讨论过的种子集代。EntitySim的一个例子 grounding在图5中描述,其中Bridge Of SpiesCaptain PhillipsAlice的测试例子的集合中,我们可能还有其他测试Alice的例子,但如果它们不能用规则证明(或超过一定的近似误差),它们将不会出现在 grounding。ProPPR遵循类似于Backstrom等人在[3]中提出的程序来训练随机步行者。通过学习一个权重向量 w w w,这个给了一个在图 u − > v u->v u>v中的一个边的特征向量 ϕ u v \phi_{uv} ϕuv,计算边的力量为 f ( w , ϕ u v ) f(w,\phi_{uv} ) f(w,ϕuv)。权值和特征向量的函数。也就是穿过边的概率 P ( v ∣ u ) ∝ f ( w , Φ u v ) P(v \mid u) \propto f\left(\mathbf{w}, \mathbf{\Phi}_{u v}\right) P(vu)f(w,Φuv). 我们的方法使用 f ( w , Φ u v ) = e w ⋅ Φ u v f\left(\mathbf{w}, \mathbf{\Phi}_{u v}\right)=e^{w· \mathbf{\Phi}_{u v}} f(w,Φuv)=ewΦuv.
在训练阶段,学习 w w w被认为是一个带有约束的优化问题。PageRank正示例节点的计算值大于负示例节点的计算值。
在这里插入图片描述
其中,是用w得到的边权计算得到的PageRank向量p。ProPPR所使用的公式6的优化函数是标准的正负对数损失函数,而不是[3]中使用的成对损失函数。为了学习w,我们使用AdaGrad[8]来代替[3]中使用的准牛顿方法和[26]中使用的SGD。将AdaGrad使用的初始学习率和正则化参数µ设为1。关于ProPPR的详细描述,请读者参阅[26]和[25]。

3.5 Approach 2: TypeSim

EntitySim方法只使用知识图链接来了解用户的偏好,然而,回想一下,我们实际上使用的是一个异构信息网络,除了链接信息之外,我们还知道实体的“类型”。例如,我们知道New
York City的类型是City,Tom Hanksis的类型是Actor。为了利用这些额外的类型信息,我们将EntitySim方法扩展为typesim方法,如图6所示。

TypeSim模型通过使用p(T)来学习实体类型提供的总体可预测性,从而对规则10中每个节点类型的普遍流行程度进行建模。例如,类型actor的节点可能比类型Country的节点更深入地了解用户的偏好。注意,学习权重不是针对用户的,因此它的权重是由所有用户共享的。与规则10类似,在规则9中,模型学习实体本身提供的整体可预测性,独立于使用p(E)的用户。例如,史蒂文·斯皮尔伯格导演的电影可能比其他不太知名的导演的电影更受欢迎。Type-Sim也使用规则11和12建模两种类型之间的一般遍历概率。例如,与country→Movie相比,Actor→Movie在图表上的遍历更具预测性。这些权重被纳入到规则7所示的entitysimas的预测规则中。

3.6 Approach 3: GraphLF

协作过滤(CF)最成功的类型之一是潜在因子(LF)模型[15]。他们试图发现描述每个对象的隐藏维度,从而将用户和项目映射到相同的特性空间,以提高推荐性能。Koren等人在[15]中指出,对于电影来说,潜在因素可能衡量明显的维度,如喜剧与戏剧,动作的数量,或儿童取向,以及定义不太明确的维度,如角色发展的深度,或古怪,甚至无法解释的维度。对于用户来说,每个因素衡量的是用户对在相应因素中得分较高的电影的喜爱程度。奇异值分解(Singular Value Decomposition, SVD)是生成推荐LF模型的常用方法之一。SVD方法在每个隐藏维度上为用户和项目分配值,同时在预测和实际评级矩阵上最小化损失函数。
协同过滤方法的主要吸引力在于,它们不需要任何关于用户或物品的知识,只根据评级矩阵进行预测。类似地,基于潜在因素的CF模型的主要吸引力在于,它们基于评分数据开发用户和项目的一般表示,这些评分数据更一般化,通常在原始数据中无法识别。

在这里插入图片描述
鉴于我们可以访问通过不同实体连接条目的KG,我们在本文中提出的第三种方法,GraphLF,集成了潜在因子分解和基于图的推荐。图7定义了整个规则集。其主要规则是潜因子相似性SIMLF规则(17)和(18)的定义。本质上,两个输入实体X和Y的SIMLF是通过首先选择一个维度,然后测量x和y 伴随着 d的值来测量的。如果两个X和Y的值都很高,那么它们的相似度评分也会很高。一个实体X和维度的值,val(X,D)在训练阶段从数据中学习,如规则(18)中定义的那样。
注意,规则(16)中两个相关实体
related(X,Y)相关性的递归定义现在如何改变,以解释它们之间除了存在联系之外的潜在因素相似性。此外,原来的预测规则在rule(13)中已经更改,以使用用户和实体之间的新关联评分。本质上,规则(14)中related(U,E)的定义用用户和属于其种子集的实体之间的潜在因子相似性simlf (U,E)替换了先前的谓词LikesEntity (U,E)
。因此,模型不再学习每个user-entity对的权重,而是沿着每个维度分别学习用户和实体的权重。
同样需要注意的是,与type sim 和 heterec_p不同,GraphLF是类型无关的。类型并不总是可用的,特别是在像Wikipedia图这样的通用图的情况下。因此,类型不可知是一个理想的属性,可以提高其对广泛数据域的适用性。

3.7 Model Complexity

让n是用户的数量和m是items的。即不同实体的数量和类型。那么,本文提出的每种方法所学习的参数个数表征的模型复杂性如下所示:

  • EntitySim-O(n):在这种方法中,我们每个用户-实体对学习一个参数。然而,通过这些规则,我们限制从该用户的种子集中选择实体,该种子集的大小是常数。
  • TypeSim-O(n+e+ t 2 t^2 t2):除了学习EntitySim的这些参数外,它还学习每个实体和类型的+t权重。此外,它还学习导致附加参数的类型对之间的类型关联。
  • GraphLF-O(n+m+e):对于每个用户、实体和项目,我们学习与潜在维度相对应的固定数量的权重
    在典型领域中,我们期望 t ≪ m t\ll m tm,因此,从参数的数量来看,EntitySimis本文提出的模型中最简单的,graphlfi是本文提出的模型中较为复杂的

4. EXPERIMENTS AND RESULTS

4.1 Datasets

在这里插入图片描述

4.3 Performance Comparison on Yelp and IM100K

在这里插入图片描述

4.5 Effect of Dataset Density on Performance

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值