一种基于协同标签图扩散的长尾推荐方法

文档序号:33540911发布日期:2023-03-22 09:11阅读:22来源:国知局
一种基于协同标签图扩散的长尾推荐方法

1.本发明涉及推荐技术领域,尤其涉及一种基于协同标签图扩散的长尾推荐方法。


背景技术:

2.推荐系统已经应用于生活中的各个领域,例如网上购物、短视频推荐以及各种搜索网站等等。推荐系统的原理是根据用户与物品的历史交互记录探索用户的偏好,以达到给用户推荐其喜欢的物品之目的,因此,交互次数多的物品在推荐模型的训练过程中会有一种隐形的优势,即它们被推荐给用户的概率会高于那些拥有少量交互信息的物品,这就造就了推荐系统中的长尾现象。长尾物品和流行物品在现实生活中有着“二八分布”的说法,即长尾物品大约占所有物品总数的百分之八十,而那些被用户广泛交互的流行物品仅占百分之二十。长尾物品并不意味着被绝大多数用户所讨厌,却由于得不到推荐而无法拥有更多的交互信息,而流行物品因为其丰富的历史交互信息被推荐而拥有更多的交互信息,这就使得长尾物品越来越难以被系统推荐。向用户推荐长尾物品能够增加推荐列表中的偶然性和多样性,可能会让用户感到惊讶和满足,另外,对于企业来说,长尾推荐可以让更多的商品被用户看见和购买,为企业带来更多的利润。
3.现有的长尾推荐方法要么仅考虑在异构图上捕捉物品的特征信息,要么仅在同构图上捕捉物品的特征信息,虽在常规物品长尾推荐上拥有不错的性能,但当物品特征信息稀缺时,长尾推荐的精度会大幅下降。


技术实现要素:

4.本发明为了解决现有技术所存在的上述技术问题,提供一种基于协同标签图扩散的长尾推荐方法。
5.本发明的技术解决方案是:一种基于协同标签图扩散的长尾推荐方法,是按照如下步骤进行:
6.步骤1.统计用户对物品的交互信息和物品的标签信息,构建用户-物品-标签协同标签图;
7.步骤2.将用户-物品-标签协同标签图中的值分别作为用户、物品、标签的初始特征;
8.步骤3.从用户-物品-标签协同标签图中提取用户-物品异构图,初始化物品能量,根据能量扩散原理,物品将能量通过与用户的连接扩散到用户节点,多次扩散后,即可获得用户与物品之间边的权重,加权聚合得到物品邻域中所有用户节点的特征;
9.步骤4.从用户-物品-标签协同标签图中提取标签-物品异构图,初始化物品能量,根据能量扩散原理,物品将能量通过与标签的连接扩散到标签节点,多次扩散后,即可获得标签与物品之间边的权重,加权聚合得到物品邻域中所有标签节点的特征;
10.步骤5.在用户-物品-标签协同标签图中,初始化物品能量,根据能量扩散原理,物品将能量通过用户和标签扩散到其它物品,多次扩散后,即可获得目标物品与其它物品之
间的特征权重,加权聚合得到物品邻域中所有其它物品的特征;
11.步骤6.将步骤3、4、5所得到的三个特征向量与物品的初始特征相加后得到最终物品向量,然后和用户的特征点积,得到预测评分,按照预测评分排序,将目标用户未评分的前n个物品推荐给目标用户。
12.所述步骤1具体如下:
13.令u={u1,u2,
…uu

,um}表示用户的集合,其中m表示用户的总数目,uu表示第u个用户,1≤u≤m;令i={i1,i2,
…ix

,in}表示物品的集合,其中n表示物品的总数目,i
x
表示第x个物品,1≤x≤n,i
ti
表示目标物品,1≤ti≤n;令t={t1,t2,

t
t

,tz}表示标签集合,其中z表示标签的总数目,t
t
表示第t个标签,1≤t≤z;令三元组(uu,i
x
,t
t
)=1表示用户uu对物品i
x
添加了标签t
t
,反之,三元组(uu,i
x
,t
t
)=0表示用户uu对物品i
x
尚未添加标签t
t

14.根据用户的评分信息,将每个用户、每个物品和每个标签分别当作一个节点,构建一个拥有m+n+z个节点的用户-物品-标签协同标签图:如果用户uu评价过物品i
x
,则称它们之间存在一个连接,其在用户-物品邻接矩阵中对应的元素a
u,x
=1,否则设为0;如果物品i
x
与标签t
t
之间存在连接,则其在标签-物品邻接矩阵中对应的元素b
t,x
=1,否则设为0;如果物品i
x
与节点ny之间存在连接,则其在用户-物品-标签邻接矩阵中对应的元素c
y,x
=1,否则设为0,所述节点ny为用户节点或标签节点。
15.所述步骤3具体如下:
16.步骤3.1物品i
ti
初始能量为f(i
ti
),若用户uu对物品有过历史交互,则物品i
ti
将能量传递给交互过它的用户uu,令用户uu获得的能量为h(uu),则用户uu从物品i
ti
获得的能量h(uu)按照公式(1)计算:
[0017][0018]
其中d1(i
ti
)表示目标物品i
ti
的度,即物品i
ti
与用户uu的交互次数;
[0019]
步骤3.2用户uu获得从物品i
ti
扩散的能量后,根据用户与物品的交互,将能量平均地扩散到物品i
x
中,令物品i
x
获得的能量为f(i
x
),则物品i
x
获得的能量f(i
x
)等于从每个用户获得的能量之和,按照公式(2)计算:
[0020][0021]
其中d(uu)表示用户uu的度,即该用户uu交互的物品数量;
[0022]
步骤3.3物品i
x
获得从用户uu扩散的能量后,通过公式(3)将能量传递给用户,记作h

(uu),并按照公式(4)计算用户uu与目标物品i
ti
之间边的权重:
[0023][0024][0025]
步骤3.4利用用户uu与目标物品i
ti
之间边的权重,按照公式(5)加权聚合得到目标物品i
ti
邻域中的用户特征:
[0026][0027]
所述eu为用户的初始特征;
[0028]
所述步骤4具体如下:
[0029]
步骤4.1目标物品i
ti
初始能量为f(i
ti
),若一个标签t
t
与目标物品i
ti
之间有连接,则该标签t
t
将获得该物品部分能量,令标签t
t
获得的能量为h(t
t
),则标签t
t
从物品i
ti
获得的能量h(t
t
)按照公式(6)计算:
[0030][0031]
其中d2(i
ti
)表示目标物品i
ti
的度,即该物品i
ti
与标签t
t
的连接数;
[0032]
步骤4.2标签t
t
获得从目标物品i
ti
扩散的能量后,根据标签与物品之间的连接,将能量平均地扩散到物品中,令物品i
x
获得的能量为f(i
x
),则物品i
x
获得的能量f(i
x
)等于从每个标签t
t
获得的能量之和,按照公式(7)计算:
[0033][0034]
其中d(t
t
)表示标签t
t
的度,即该标签t
t
与物品i
x
的连接数;
[0035]
步骤4.3物品i
x
获得从标签t
t
扩散的能量后,再次通过公式(8)将能量传递给标签t
t
,记作h

(t
t
),并用公式(9)计算标签t
t
与目标物品i
ti
之间边的权重:
[0036][0037][0038]
步骤4.4根据标签t
t
与目标物品i
ti
之间边的权重,加权聚合得到目标物品i
ti
邻域中的标签特征,加权聚合公式(10)如下所示:
[0039][0040]
所述e
t
为标签的初始特征;
[0041]
所述步骤5具体如下:
[0042]
步骤5.1目标物品i
ti
初始能量为f(i
ti
),若某个邻居节点ny与目标物品i
ti
之间有连接,则该邻居节点ny将获得目标物品i
ti
部分能量,邻居节点ny为一个用户或一个标签,令邻居节点ny获得的能量为h(ny),则邻居节点ny从物品i
ti
获得的能量h(ny)按照公式(11)计算:
[0043][0044]
其中d3(i
ti
)表示目标物品i
ti
的度,即物品i
ti
与标签的连接数和物品i
ti
与用户的交互数之和;
[0045]
步骤5.2邻居节点ny获得从目标物品i
ti
扩散的能量后,根据邻居节点与物品之间
的连接,将获得的能量平均地扩散到物品中,令物品i
x
获得的能量为f(i
x
),则物品i
x
获得的能量f(i
x
)等于从每个邻居节点ny获得的能量之和,按照公式(12)计算:
[0046][0047]
其中,前一部分用于计算邻居节点中的所有用户节点向物品i
x
传递的能量,后一部分用于计算邻居节点中的所有标签节点向物品i
x
传递的能量;
[0048]
步骤5.3物品i
x
获得从邻居节点扩散的能量后,通过公式(13)计算物品i
x
与目标物品i
ti
之间的特征权重:
[0049][0050]
步骤5.4利用物品i
x
与目标物品i
ti
之间的特征权重,加权聚合得到目标物品i
ti
邻域中的其他物品i
x
的特征,加权聚合公式(14)如下所示:
[0051][0052]
所述e
x
为物品的初始特征。
[0053]
本发明与现有技术相比,具有如下技术效果:
[0054]
本发明将能量扩散同时应用于用户-物品异构图、标签-物品异构图和协同标签图中,首先并非直接根据能量扩散中物品之间能量转移确定推荐的结果,而是利用目标物品与其它节点之间的能量扩散系数计算两节点之间的边的权重;其次同时考虑了物品在同构图和异构图中的邻域信息,通过用户-物品异构图聚合物品邻域中的用户偏好信息,通过标签-物品异构图聚合物品的标签信息,通过协同标签图聚合其它关联物品的特征信息,有效的弥补长尾物品的特征信息不足的缺陷,缓解推荐中的流行度偏差,实现了高精度的长尾推荐,有效提高了长尾推荐率。
附图说明
[0055]
图1为本发明实施例的流程示意图。
[0056]
图2为本发明实施例协同标签图的三维邻接矩阵示意图。
[0057]
图3为本发明实施例物品在用户-物品异构图上的能量扩散示意图。
[0058]
图4为本发明实施例物品在标签-物品异构图上的能量扩散示意图。
[0059]
图5为本发明实施例物品在协同标签图上的能量扩散示意图。
具体实施方式
[0060]
本发明的一种基于协同标签图扩散的长尾推荐方法如图1所示,按照如下步骤进行:
[0061]
步骤1.统计用户对物品的交互信息和物品的标签信息,构建用户-物品-标签协同标签图:
[0062]
令u={u1,u2,
…uu

,um}表示用户的集合,其中m表示用户的总数目,uu表示第u个用户,1≤u≤m;令i={i1,i2,
…ix

,in}表示物品的集合,其中n表示物品的总数目,i
x
表示
第x个物品,1≤x≤n,i
ti
表示目标物品,1≤ti≤n;令t={t1,t2,

t
t

,tz}表示标签集合,其中z表示标签的总数目,t
t
表示第t个标签,1≤t≤z;令三元组(uu,i
x
,t
t
)=1表示用户uu对物品i
x
添加了标签t
t
,反之,三元组(uu,i
x
,t
t
)=0表示用户uu对物品i
x
尚未添加标签t
t

[0063]
根据用户的评分信息,将每个用户、每个物品和每个标签分别当作一个节点,构建一个拥有m+n+z个节点的用户-物品-标签协同标签图:如果用户uu评价过物品i
x
,则称它们之间存在一个连接,其在用户-物品邻接矩阵中对应的元素a
u,x
=1,否则设为0;如果物品i
x
与标签t
t
之间存在连接,则其在标签-物品邻接矩阵中对应的元素b
t,x
=1,否则设为0;如果物品i
x
与节点ny之间存在连接,则其在用户-物品-标签邻接矩阵中对应的元素c
y,x
=1,否则设为0,所述节点ny为用户节点或标签节点。
[0064]
得到用户-物品交互表和标签-物品交互表,分别如表1和表2所示;
[0065]
表1
[0066] 物品1物品2物品3物品4物品5用户110001用户201001用户311010用户410100
[0067]
表2
[0068] 物品1物品2物品3物品4物品5标签110010标签211111标签310100标签400101
[0069]
步骤2.将用户-物品-标签协同标签图中的值分别作为用户、物品、标签的初始特征;注意:以用户为例,三维矩阵中,用户1对应的是一个矩阵,可以将矩阵中的值横向相加形成一个向量作为用户1的特征向量,用补全方法得到相同特征长度,方便后续计算。
[0070]
本发明实施例构建的用户-物品-标签协同标签图协同标签的三维邻接矩阵示意图如图2所示。
[0071]
步骤3.从用户-物品-标签协同标签图中提取用户-物品异构图,初始化物品能量,如图3所示,根据能量扩散原理,物品将能量通过与用户的连接扩散到用户节点,多次扩散后,即可获得用户与物品之间边的权重,加权聚合得到物品邻域中所有用户节点的特征:
[0072]
步骤3.1物品i
ti
初始能量为f(i
ti
),若用户uu对物品有过历史交互,则物品i
ti
将能量传递给交互过它的用户uu,令用户uu获得的能量为h(uu),则用户uu从物品i
ti
获得的能量h(uu)按照公式(1)计算:
[0073][0074]
其中d1(i
ti
)表示目标物品i
ti
的度,即物品i
ti
与用户uu的交互次数;
[0075]
步骤3.2用户uu获得从物品i
ti
扩散的能量后,根据用户与物品的交互,将能量平均地扩散到物品i
x
中,令物品i
x
获得的能量为f(i
x
),则物品i
x
获得的能量f(i
x
)等于从每个用
户获得的能量之和,按照公式(2)计算:
[0076][0077]
其中d(uu)表示用户uu的度,即该用户uu交互的物品数量;
[0078]
步骤3.3物品i
x
获得从用户uu扩散的能量后,通过公式(3)将能量传递给用户,记作h

(uu),并按照公式(4)计算用户uu与目标物品i
ti
之间边的权重:
[0079][0080][0081]
步骤3.4利用用户uu与目标物品i
ti
之间边的权重,按照公式(5)加权聚合得到目标物品i
ti
邻域中的用户特征:
[0082][0083]
所述eu为用户的初始特征;
[0084]
以物品1作为示例:
[0085]
步骤3.1令物品i1的初始能量为f(i1),为了便于说明与理解,令f(i1)=1,通过表1可以看到,物品1与用户1、用户3和用户4有过交互,能量会通过公式(1)平均扩散给这三个用户,用户1、用户3和用户4获得的能量分别1/3、1/3和1/3;
[0086]
步骤3.2用户获得从物品1扩散的能量后,根据用户与物品的交互,通过公式(2)平均的扩散到其他物品中,用户1扩散给物品1的能量为1/6,用户3扩散给物品1的能量为1/9,用户4扩散给物品1的能量为1/6,因此物品1获得的总能量为4/9,同理物品2、物品3、物品4和物品5获得的总能量分别为:1/9、1/6、1/9和1/6;
[0087]
步骤3.3物品获得从用户扩散的能量后,通过公式(3)将能量传递给用户,最终用户1、用户2、用户3、用户4获得的能量为25/108、15/108、34/108、34/108,由于初始能量被设置为1,则使用公式(4)可以得到物品与用户1、用户2、用户3和用户4之间边的权重分别为25/108、15/108、34/108、34/108;
[0088]
步骤3.4利用公式(5)得到的用户与物品1的权重得到物品1邻域中的用户特征,即:
[0089][0090]
步骤4.从用户-物品-标签协同标签图中提取标签-物品异构图,初始化物品能量,如图4所示根据能量扩散原理,物品将能量通过与标签的连接扩散到标签节点,多次扩散后,即可获得标签与物品之间边的权重,加权聚合得到物品邻域中所有标签节点的特征:
[0091]
步骤4.1目标物品i
ti
初始能量为f(i
ti
),若一个标签t
t
与目标物品i
ti
之间有连接,则该标签t
t
将获得该物品部分能量,令标签t
t
获得的能量为h(t
t
),则标签t
t
从物品i
ti
获得的能量h(t
t
)按照公式(6)计算:
[0092][0093]
其中d2(i
ti
)表示目标物品i
ti
的度,即该物品i
ti
与标签t
t
的连接数;
[0094]
步骤4.2标签t
t
获得从目标物品i
ti
扩散的能量后,根据标签与物品之间的连接,将能量平均地扩散到物品中,令物品i
x
获得的能量为f(i
x
),则物品i
x
获得的能量f(i
x
)等于从每个标签t
t
获得的能量之和,按照公式(7)计算:
[0095][0096]
其中d(t
t
)表示标签t
t
的度,即该标签t
t
与物品i
x
的连接数;
[0097]
步骤4.3物品i
x
获得从标签t
t
扩散的能量后,再次通过公式(8)将能量传递给标签t
t
,记作h

(t
t
),并用公式(9)计算标签t
t
与目标物品i
ti
之间边的权重:
[0098][0099][0100]
步骤4.4根据标签t
t
与目标物品i
ti
之间边的权重,加权聚合得到目标物品i
ti
邻域中的标签特征,加权聚合公式(10)如下所示:
[0101][0102]
所述e
t
为标签的初始特征;
[0103]
以物品1作为示例:
[0104]
步骤4.1令物品i1的初始能量为f(i1),为了便于说明与理解,令f(i1)=1,通过表2可以看到,物品1与标签1、标签2和标签3存在连接,能量会通过公式(6)平均扩散给这三个标签,标签1、标签2和标签3获得的能量分别为1/3、1/3和1/3;
[0105]
步骤4.2标签节点获得从物品1扩散的能量后,根据标签与物品的连接,通过公式(7)平均的扩散到其他物品中,标签1扩散给物品1的能量为1/6,标签2扩散给物品1的能量为1/15,标签3扩散给物品1的能量为1/6,因此物品1获得的总能量为12/30,同理物品2、物品3、物品4和物品5获得的总能量分别为:2/30、7/30、7/30和2/30;
[0106]
步骤4.3、物品获得从标签扩散的能量后,再通过公式(8)将能量传递给标签,最终标签1、标签2、标签3、标签4获得的能量为45/180、77/180、38/180、20/180,由于初始能量被设置为1,则使用公式(9)可以得到物品与标签1、标签2、标签3和标签4之间边的权重分别为45/180、77/180、38/180、20/180。
[0107]
步骤4.4、利用公式(10)加权聚合物品1邻域中的标签特征,即:
[0108][0109]
步骤5.在用户-物品-标签协同标签图中,初始化物品能量,如图5所示,根据能量扩散原理,物品将能量通过用户和标签扩散到其它物品,多次扩散后,即可获得目标物品与
其它物品之间的特征权重,加权聚合得到物品邻域中所有其它物品的特征;
[0110]
步骤5.1目标物品i
ti
初始能量为f(i
ti
),若某个邻居节点ny与目标物品i
ti
之间有连接,则该邻居节点ny将获得目标物品i
ti
部分能量,邻居节点ny为一个用户或一个标签,令邻居节点ny获得的能量为h(ny),则邻居节点ny从物品i
ti
获得的能量h(ny)按照公式(11)计算:
[0111][0112]
其中d3(i
ti
)表示目标物品i
ti
的度,即物品i
ti
与标签的连接数和物品i
ti
与用户的交互数之和;
[0113]
步骤5.2邻居节点ny获得从目标物品i
ti
扩散的能量后,根据邻居节点与物品之间的连接,将获得的能量平均地扩散到物品中,令物品i
x
获得的能量为f(i
x
),则物品i
x
获得的能量f(i
x
)等于从每个邻居节点ny获得的能量之和,按照公式(12)计算:
[0114][0115]
其中,前一部分用于计算邻居节点中的所有用户节点向物品i
x
传递的能量,后一部分用于计算邻居节点中的所有标签节点向物品i
x
传递的能量;
[0116]
步骤5.3物品i
x
获得从邻居节点扩散的能量后,通过公式(13)计算物品i
x
与目标物品i
ti
之间的特征权重:
[0117][0118]
步骤5.4利用物品i
x
与目标物品i
ti
之间的特征权重,加权聚合得到目标物品i
ti
邻域中的其他物品i
x
的特征,加权聚合公式(14)如下所示:
[0119][0120]
所述e
x
为物品的初始特征;
[0121]
以物品1作为示例:
[0122]
步骤5.1令物品i1的初始能量为f(i1),为了便于说明与理解,令f(i1)=1,通过表1和表二可以看到物品1的邻居节点有{用户1、用户3、用户4、标签1、标签2、标签3},能量会通过公式(11)平均扩散给这6个节点,它们获得的能量分别为1/6、1/6、1/6、1/6、1/6、1/6;
[0123]
步骤5.2这些邻居节点获得从物品1扩散的能量后,根据它们与物品的交互,通过公式(12)平均扩散到其他物品中,物品1、物品2、物品3、物品4和物品5获得的能量分别为76/180、31/180、21/180、31/180、21/180,由于初始能量被设置为1则使用公式(13)可以得到物品1与物品1、物品2、物品3、物品4和物品5之间的权重为76/180、31/180、21/180、31/180、21/180,需要注意的是,目标物品与其本身也存在一个权重;
[0124]
步骤5.3利用公式(14)加权聚合物品1在协同标签图中的物品邻居信息,即:
[0125][0126]
步骤6.将步骤3、4、5所得到的三个特征向量与物品的初始特征相加后得到最终物
品向量,然后和用户的特征点积,得到预测评分,按照预测评分排序,将目标用户未评分的前n个物品推荐给目标用户:
[0127]
物品1(目标物品)的最终嵌入为:
[0128][0129]
使用点积预测推荐评分:
[0130]
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1