HOTLINE
0898-08980898发布时间:2024-10-29 19:13:01 点击量:230
本文为将门技术社群线上直播第188期的文字内容整理共享嘉宾:斯坦福大学博士后王鸿伟感激整理人:Datafun秋林津渡简介互联网产业蓬勃发展的今天,个性化引荐系统是所有面向用户的互联网平台的关键技术。科学知识图谱作为一种新的科学知识载体,为引荐系统获取了额外的辅助信息来源,并有助提高引荐结果的多样性和可解释性。本次共享的主题即为科学知识图谱辅助的个性化引荐系统。本次主题将从下面4个方面进行:引荐系统的基础知识科学知识图谱辅助的引荐方法讲解基于embedding的科学知识图谱引荐方法混合型科学知识图谱引荐方法引荐系统的基础知识1、什么是引荐系统在当前互联网时代,引荐系统是所有面向用户的互联网产品的核心技术,只要产品是面向用户的,那么就有引荐系统的市场需求。
引荐系统是解决问题信息发生爆炸问题,给用户引荐一个用户感兴趣的小规模子集。用户在大量商品中,不告诉如何自由选择,引荐系统是替用户做到这个自由选择,猜中用户的兴趣,然后给用户引荐一个小规模的商品子集,这样用户就会艾米在大量商品中。荐几个引荐系统的例子。
如下图是imdb系统中的电影引荐,imdb不会引荐用户有可能更加感兴趣的电影。如下图是亚马逊系统中的图书引荐,给用户引荐和用户更加涉及,用户更加感兴趣的书籍。如下图是booking.com系统中旅游景点的引荐,给用户引荐更加感兴趣景点。
如下图是我们更加熟知的引荐系统的例子,知乎,响音,头条等系统,都有引荐功能。2、引荐系统的构建方法引荐系统主要有2个任务,一个是评分预测(RatingPrediction)。
如下图左边是评分预测的例子,横坐标是物品,纵坐标是用户。表格是用户对物品的评分,这个评分可以表明的反应用户对物品的爱好层度,1回应很不讨厌,5回应很讨厌。引荐系统就是预测表格中回答益处的缺陷值,这就叫评分,这个评分叫表明对系统(Explicitfeedback)。另一个是页面预测(CTRPrediction)。
右边是页面预测的例子,表格中只有0和1,0回应用户没页面过,1回应用户页面过,这类数据叫隐式对系统(Implicitfeedback),页面预测不能体现用户的十分很弱的偏爱层度,用户页面了不一定解释用户讨厌,比如摆摊淘宝,用户只是页面了某个物品就解散了,所以页面物品并无法代表用户的现实感觉。引荐系统有一个十分经典的方法叫协同过滤器(CollaborativeFiltering,CF),CF的核心是假设相近的用户有相近的偏爱。
如下图为4个用户对4个物品的评分情况,来预测用户u4对物品i1的评分。通过这4个用户在其他3个商品(i2,i3,i4)的评分,计算出来出有其他3个用户和u4用户的相近度,分别是0.7,0.1,0.2,然后用相近度加权平均其他3个用户在i1物品的评分,这样就获得了u4对i1的评分为2.1。协同过滤器CF是根据历史物品评分记录,计算出来出有用户相近度,从而预测分数。
CF是一种少见的方法,但不存在以下2类问题。第一类是稠密性问题(Sparsity),一般情况下评分产于是非常稠密的,比如一个用户一辈子有可能只不会看几百部电影,但电影总数约百万量级,所以在计算出来相近度的时候不会有艰难。
第二类更进一步,冷启动问题(Coldstart),当来了一个新的用户,这个新的用户没历史记录,所以不了计算出来相似性,就不了做到引荐。当登记新的app时,比如读书类的app,系统一开始不会回答你对哪些主题感兴趣,因为系统没你的历史记录,刚开始不了给你引荐。科学知识图谱辅助的引荐方法讲解针对引荐系统经常出现的问题,我们的思路是既然用户和物品交互很较少,甚至没,那可以引进其他的一些信息,这些引进的信息叫辅助信息(SideInformation)。如下图是4类十分少见的辅助信息:社交网络;用户或商品属性特征;多媒体信息,比如电影的海报,文本信息,视频音频信息等;上下文信息,假设一个用户出售了一个商品,出售记录的一些信息,比如时间、地点、当前用户购物车的其他物品信息等。
1、什么是科学知识图谱科学知识图谱(KnowledgeGraphs,KG)也是一种辅助信息。KG是一个有向异构图(heterogeneousgraph),图中节点回应实体(entity),边回应关系(relation)。
一个KG一般来说包括很多对三元组triple(head,relation,tail),其中head和tail是2个实体(entity),relation就是边。如下图,引荐系统的item是电影,所以ForrestGump是引荐系统的item,同时也是KG中的实体,KG中其他的实体并不是引荐系统的item,ForrestGump这部电影的主演是TomHanks,虽然TomHanks是KG的实体(entity),但并不是item。
把图中左边这些三元组(triples)人组一起,就变为了右边的一个相当大的KG。2、为什么要在引荐系统中用于KG如下图,假设一个用户(最左边)看完3部电影(item),CastAway,BacktotheFuture,TheGreenMile,在KG中,可以将这3部电影相连到其他的一些事情上,比如CastAway这部电影的类别(genre)是冒险形(Adventure),BacktotheFuture的编剧(directed)是RobertZemeckis等,可以相连到很多其他non-item实体上,再行从这些non-item实体又相连到item电影实体上,比如最右边的Interstellar,ForrestGump,RaidersoftheLostArk。
KG创建一个从用户早已看完的电影到没有看完的电影的相连,而这些相连不是由用户的观赏记录来作的。在CF里,实质上是把中间这块替换成了其他用户,用其他用户历史观赏记录获得这些相连。KG获取了另外一种关于物品相连的信息来源的方法。
如上图是一个新闻引荐的例子,假设某个用户看完一条新闻,这个新闻的内容是:BorisJohnsonHasWarnedDonaldTrumpToStickToTheIranNuclearDeal。从这条新闻中萃取了4个实体,在KG中,可以对这些实体做到更进一步的拓展,做到2次,做到3次拓展,又不会找到这些实体都指向另外一条新闻:NorthKoreanEMPAttackWouldCauseMassU.S.Starvation,SaysCongressionalReport。这2条新闻在字面上没任何相近度,新闻的单词都不一样,但他们是很涉及的,这个相关性反映在KG上,他们在低层是涉及的,但这种相关性不了从字面意义上获得,这也是为什么能用KG,KG获取了一种item相近度的计算出来方式。3、KG能给引荐系统带给什么第1个提升引荐系统的精度(Precision),更加精确的找到item之间的相似性,如下图2部电影,能通过TomHanks做到个相连。
第2个提升引荐系统的多样性(Diversity),可以通过主演拓展,可以通过电影类别拓展,也可以通过编剧拓展,总有一款是用户十分讨厌的。第3个是可解释性(Explainability),可以用KG的path来说明系统为什么不会引荐这部电影,如下图某个用户讨厌CastAway这部电影,系统不会引荐TheTerminal这部电影,因为他们有完全相同的主演。
4、科学知识图谱处置方法KG的处置方法中有一类方法叫KnowledgeGraphEmbedding,KGE。KGE主要是对KG的每个实体(entity)和每个关系(relation)自学一个低维的特征。在KGE中有一个基于翻译成的距离模型,Translationaldistancemodels。如上公式为TransE算法模型,对KG中的每一个tuple(h,r,t),自学到的entityembedding,relationembedding,使h+r相当于t,这的r相等于翻译成起到,把h翻译成t,f函数对每个tuple的现实分值越小越好。
如图(a)是TransE模型,假设head对应的embedding再加relation对应的embedding相等tail对应的embedding。基于TransE有很多拓展模型,比如TransH,TransR。
TransH解决问题的是一对多的问题,某一个head和relation可能会对应多个tail,如图(b),把head和tail都投影到一个平面上,然后让它们在比较不应的平面上做到切换。TransR是把head和tail都投影到另外一个空间中,在新的空间里让h+r=t。KG-awareRecommenderSystems月方法大约可以分成3类。
第一类是Embedding-basedmethods,基于embedding的方法,embedding是前面讲解的KGembedding,关于这类方法,右图列出了5篇论文,今天将不会讲解第2篇和第5篇。第二类是Path-basedmethods,基于KG计算出来路径的引荐方法,今天会牵涉到这类方法。第三类是Hybridmethods,融合embedding和path的方法,今天将讲解一下第1、3、4篇,第3、4是较为统一的方法。
5、科学知识图谱辅助的引荐系统问题定义未知一个用户的子集Users,一个物品的子集Items,用户和物品之间的交互(relations,yuv),一个还包括很多non-item实体的KG。图中yuv回应用户u对物品v的一个隐式对系统,即用户是不是页面过这个物品,目标是等价一个新的u-v对,预测点击率yuv。公式定义如上图。用户子集U={u1,u2,...},物品子集V={v1,v2,...},交互矩阵(隐式对系统)Y矩阵Y={yuv?{0,1}|u?U,v?V},KG还包括实体(entity)和关系(relation),由很多三元组构成。
每个物品v在KG中有可能对应一个或多个实体。物品是实体的一个子集。
目的是自学一个预测函数F,等价一对u,v,可以输入一个预测分值?uv,θ是目前的一个参数。基于embedding的科学知识图谱引荐方法1、DKN方法DKN:Deepknowledge-awarenetworkfornewsrecommendation,归属于基于embedding的科学知识图谱引荐方法,是2018年公开发表的论文,这篇论文是关于新闻引荐。如上图,得出一段新闻,萃取新闻中的实体,根据这些实体,建构一个科学知识图谱的子图,对科学知识图谱做到embedding同构,获得每个实体的embedding,最后就获得每个实体的特征向量。如上图,对于某个实体FightClub,只有其对应的embedding还过于,在KG中每个实体,相连着好多其他的实体,那这些邻近实体就是该实体的上下文,将这些上下文中的每个实体的embedding相乘平均值,就获得该实体的上下文embedding。
如上图公式中ē就是实体ei的上下文embedding。在NLP中有一个模型叫KimCNN,主要是等价一个sentence,回到一个特征向量。
如上图等价一个n个单词的sentence(图中n为7),对每个单词做到embedding同构,embedding的长度为d(图中d为5),获得一个d*n的wordembedding矩阵。用7个卷积核做到卷积展开featuremaps,获得7个1维向量,对每个向量做池化(Maxpooling),获得该sentence的wordembedding。前面讲解中有数3种特征向量,分别是实体embeddings,上下文embeddings,wordembedings,我们的方法是把这3种embeddings做到一个相加,卷积,池化,最后获得这个sentence的embeddings,这种方法叫KCNN。
接下来讲解基于KCNN做到引荐的方法。如上图假设某个用户早已页面过了3条新闻,来了一个候选新闻,预测该用户对候选新闻的点击率。对这4条新闻做到KCNN的embedding同构,获得4个特征向量。
因为用户看完的新闻的重要性对候选新闻是不一样的,用AttentionNet计算出来用户看完的每一条新闻和候选新闻的决策分值。用获得的分值权重观赏记录,获得Userembedding。
将userembedding和candidatenewsembedding拼凑,输入一个预测的页面概率,这个就是做到预测的DKN模型。2、MKR方法MKR:Multi-TaskFeatureLearningforKnowledgeGraphEnhancedRecommendation,归属于基于embedding的科学知识图谱引荐方法,是2019年公开发表在WWW的论文,是一个多任务的模型。如上图为MKR框架,还包括3个模块,一个是引荐模块,一个是knowledgegraphembedding,KGE模块,还有一个是以上2个模块的桥梁,cross&compressunits,交叉传输单元,下面将分别阐释这3个模块。
引荐系统模块,输出是user,item,输入是用户对物品的点击率。模块分2块,一个是low-level的部分,一个是high-level的部分。在low-lever部分,用了一个MLP(multi-layerperceptron)来处置用户的特征UL,item是cross&compressunits做到的处置,回到一个物品的特征VL,把UL和VL拼凑一起,用一个recommendationsystem函数fRS,输入一个页面预测值。KGE模块,也分为low-lever和high-level部分,输出head,用cross&compressunites来做到特征处置,relation用MLP做到特征处置,把这2个处理结果拼凑一起,经过一个K层的MLP,获得一个predictedtail,预测的tail和现实的tail用一个函数fKG算数一个分值,这样就可以优化这个score值。
这个多任务之所以能做到一起,主要是引荐系统模块的物品(item)和KGE模块的实体(entity)是对应的,很多item可以在KGE中寻找对应的entity,item和entity是对同一个物品的叙述,他们的embedding在某种层度上是相近的,是可以被相连的。中间的cross&compressunits就是这个相连融合,这个模块是在每一层都有,在l层,输出是item的embeddingvl和entity的embeddingel,输入是下一层的embedding。这个模块计算出来分2步,第一步是cross,第二步是compress。cross操作者是将vl,el做到一个cross,vl是一个d*1的向量,elT是1*d的向量,矩阵相加后获得一个d*d的矩阵Cl。
compress是将交叉后的矩阵Cl新的传输返embeddingspace,这块细节部分可以参照论文。通过参数wl传输输入vl+1,el+1。自学算法中loss的计算公式如上图。LRS是引荐系统的loss,预测user-item的分值uv和现实分值yuv的差距。
LKG是KG的loss,对于现实tuple(h,r,t),预测分值score越大就越好,而对于随机更换tuple(h’,r,t’)(胜样本),预测的分值越小越好。LREG是正则项。
算法构建第1块是引荐系统的任务,第2块是KGE任务,交错训练2者。在每次循环里面,做到t次的RS的任务训练,做到1次的KGE任务训练,做到t次RS训练是因为更加注目RS任务,这个t是可以调整的,这就是MKR模型。混合型科学知识图谱引荐方法1、RippleNet方法RippleNet:PropagatingUserPreferencesontheKnowledgeGraphforRecommenderSystems,归属于混合型科学知识图谱引荐方法,是2018公开发表在CIKM的一篇论文。Ripple从名字上解读是水波的意思,水波是一层一层的,那这个算法是所指在KG中某个实体,和该实体连接的其他实体也有一跳跃,二跳跃,三跳跃的关系,如上图所列了ForrestGump这部电影对应的3跳跃的邻近实体。
如上图是RippleNet框架,输出是一对user-item,输入是用户对物品的页面预测值。对输出用户u,提供用户的页面记录Vu,在KG中寻找对应的Vu,比如图中有2个对应实体,提供这些实体对应的tuple,把实体一跳跃的子集拿出来。对输出物品v做到embedding同构。
如上公式,将itemembeddingv和这些headhi在R空间中做到一个softmax,获得v相对于每个head的分值pi。如上图公式,用pi加权平均对应的tailembeddingti,获得输入ou1,即当前用户u的一跳跃的特征,对应图中绿色竖条,可以看作该用户对当前物品的一阶号召(User's1-orderresponse)。之后拿ou1特征反复之前的操作者,拿ou1和物品二跳跃的tuple算数一个p值,权重对应的tailembedding,获得ou2。
反复做到下去,获得很多跳跃的响应值oui,把这些响应值特一起,获得用户最后的embedding。用这个用户embedding和物品最初的embedding做到内积,再行用一个sigmoid函数得出结论页面预测值。
自学算法如上图,在未知KG和RippleNet系统情况下,自学参数,最大化后验概率。通过贝叶斯定理,可以把该公式分开3个值。第1项是参数的先验产于,用上面这个公式来刻画这个先验概率产于p(θ),这项对应的是正则项loss。
第2项等价参数θ,KG的概率,这项对应的是KG的embedding部分。当(h,r,t)是于是以样本,Ih,r,t相似1,反之为0,期望hTRt能相似现实的tuple值。
第3项未知参数θ和KG,用户和物品交互的似然函数。这个似然函数是一个伯努利产于,关于用户和物品内积的伯希望产于。
把这3项用负log做到处置,获得loss函数,优化这个模型。2、KGCN和KGCN-LS方法KGCN:KnowledgeGraphConvolutionalNetworksforRecommenderSystems,是公开发表在2019年WWW上的一篇论文。
KGNN-LS:Knowledge-awareGraphNeuralNetworkswithLabelSmoothnessRegularizationforRecommenderSystems,是公开发表在2019年KDD上的一篇论文,这篇是基于第1篇的拓展,这2篇论文一块介绍。核心思想是基于KG辅助的引荐,但引进了一个新的模型GCN(图神经网络),方法是基于GCN对KG拓展一个模型。在KG中的边没表明权值,只是一个关系类型。
引进一个relationscoringfunctionsu(r),对每个relation评分,从而把KG转换成weightedgraph。函数su(r)的输出是user和relation,输入一个分值。核心思想是辨识用户注目的类型,比如有些用户偏爱同种类的电影,有些用户偏爱某个主演的电影。
su(r)用来刻画有所不同用户对有所不同relation的偏爱层度,将userembeding和relationembedding内积,算数出有适当的分值。把异构KG转换成weightedgraph,这样一个graph对应邻接矩阵Au,上标为u是因为每个用户对应的邻接矩阵是不一样的,su(r)是各不相同用户。把KG中实体信息通过GNN做到一个融合,如上图公式是一个标准的GNN的公式,Au是用户对应的邻接矩阵。
Du是Au的三角平面矩阵diagonaldegreematrix。Wl就是训练传输参数矩阵。
Hl,Hl+1是entity对应的embedding矩阵。σ是一个非线性函数。这个式子本质是在KG上做到了一个多跳跃的messagepassing,把实体周围的那些邻近点的特征向中间挤满,最后一层教给的特征是融合了多跳跃的邻近点的特征。当获得最后一层embeddingHl后,就可以做到页面预测。
上图公式中u对应的是Userembedding。vu是根据前面KGNN计算出来得出结论的关于用户的entityembedding。通过f函数获得预测值,f函数可以所取内积,或MLP等。
到这是第1篇论文的KGCN模型。如上公式,在传统GNN模型中,Au是相同的,只必须训练Wl。
但在我们的模型中,Au和Wl都必须训练,Au是通过relationscoringfunction计算出来,图的结构必须训练,造成模型参数很多,更容易过数值。为了避免过数值的问题,引进一个正则项,给模型一个约束。用label做到约束,userengagementlabels,所指的是用户对物品的打分值,yuv是用户对某个物品的评分,这个评分是一个未知值,所以可以在KG中对这些点打一个标签。用户看完某部电影,对应的标签是1,没有看完的电影对应的标签是0,对non-item实体没标签。
下一步是预测某个点的label,有一类算法叫标签传播算法(labelpropagationalgorithm,LPA),这个算法是优化下面这个函数。迭代所有的边,Au是边的权值。如果i,j节点有边,解释这2个节点联系较为强劲,那这2个节点的label不会较为相似。
这2个节点的边权值越大,那这2个节点的label越大完全一致。这是算法LPA的一个假设,标签过度是光滑的。预测一个无标签的节点,将其周围节点的label加权平均,反复该操作者直到发散,这就是labelpropagation。
利用labelpropagation做到正则项,对于一个节点v,其现实lable是yuv(图中为0)。利用LPA算法预测这个v的label,获得预测值?uv,算数出有预测值和现实值之间的损失J。
在做到labelpropagation时,标签传播是各不相同边权值,所以最后预测值是关于边权值的函数,损失J也是一个关于边权值的函数。损失函数R(A)是一个关于A的函数,所以可以把梯度往这个损失函数中传播,起着一个正则项的起到。如上图,总结一下整个模型,把完整异构KG转换成weightedgraph,自学边的权值,获得一个邻接矩阵,用GNN获得entityembedding,用这个entityembedding和userembedding来做到这个预测,获得预测值?uv,用?和现实值y获得一个loss,偏移传播,将误差梯度向前传播,改版Au和参数W。
下面部分是正则项,邻接矩阵为参数,做到一个labelpropagation,获得预测值?uv,用?和y获得一个loss,偏移传播,改版Au。总结一下,本文主要讲解了3个部分的内容,第1部分讲解了科学知识图谱是引荐系统的一种新的辅助信息。另外2个部分讲解了两类科学知识图谱引荐方法,一类是基于embedding的科学知识图谱引荐方法,还包括DKN和MKR,一类是混合型科学知识图谱引荐方法,还包括RippleNet、KGCN和KGNN-LS。
本文来源:Welcome永盈彩票-www.gurukoola.com