1.本发明涉及跨域推荐和社交推荐领域,具体地说是一种基于自监督学习的跨域社交推荐方法。
背景技术:2.社交推荐有效缓解了数据稀疏性问题、系统冷启动等问题。根据社交同质性理论,用户更倾向于购买其朋友推荐的产品,而朋友间往往具有更相似的兴趣偏好。因此,相对于传统的协同过滤推荐算法,社交推荐方法拥有更多的信息以便更有效地对用户的兴趣偏好建模,提高推荐系统的推荐性能。然而目前的社交推荐方法均有一个严格的约束,那就是用户必须是在有历史产品交互记录的基础上,同时具有社交关系,这样才能学习用户潜在的兴趣偏好,而这与真实应用场景不符。在真实场景中,绝大多数用户往往只具备社交关系而无历史产品交互记录,我们将这一人群定义为社交冷启动用户。因此,如何向大量的社交冷启动用户进行产品推荐成为目前亟需解决的难题。
3.一个可行的方法是利用跨域推荐的思想解决向大量社交冷启动用户进行产品推荐的问题。跨域推荐的主要思想是利用信息量更为丰富的源域作为辅助域,向目标域传递有价值的信息,以提高目标域上推荐系统的性能。然而,目前的跨域推荐方法均不适用于所提出的跨域社交推荐的场景,因为这些方法很大程度上都依赖于桥梁用户的数量,这会导致当桥梁用户数量较少时,模型变得脆弱,在社交冷启动用户上的推荐效果精度不佳。因此,如何从非常有限的桥梁用户中捕获更多的信息是本发明关注的重点。
技术实现要素:4.本发明为克服现有技术的不足之处,提出一种基于自监督学习的跨域社交推荐方法,以期能够充分挖掘整个异构图的全局信息、减少模型对桥梁用户数量的依赖、学习更好的桥梁用户表征,从而提高在社交冷启动用户上的产品推荐性能。
5.本发明为解决技术问题采用如下技术方案:
6.本发明一种基于自监督学习的跨域社交产品推荐方法的特点是按如下步骤进行:
7.步骤1、构造异构数据,包括:用户对产品的评分矩阵r、用户与用户之间的社交关系矩阵s:
8.令ui表示信息域上的用户集,且其中,表示信息域中第a个用户,表示信息域中第b个用户,m表示信息域上的用户总数,1≤a,b≤m;
9.令v表示信息域上的产品集,且v={v1,
…
vi,
…
vj,
…vl
},其中,vi表示信息域中第i个产品,vj表示信息域中第j个产品,l表示信息域上的产品总数;
10.令r
ai
表示第a个用户对第i个产品vi的评分值,则信息域上用户对产品的评分矩阵为r={r
ai
}m×
l
;
11.令us表示社交域上的用户集,其中,表示社交域中第c
个用户,表示社交域中第d个用户,n表示社交域上的用户总数,1≤c,d≤n;
12.令s
cd
表示第c个用户对第d个用户的社交连接值,若两用户间有连接,则令s
cd
=1,反之,令s
cd
=0,则社交域上的用户与用户之间的社交关系矩阵为s={s
cd
}n×n;
13.步骤2、利用共同存在于信息域和社交域中的桥梁用户集ub=ui∩us,构建一个异构图网络g=gi∪gs,其中,gi表示由信息域上所有用户集ui和产品集v组成的图网络结构,gs表示由社交域上所有用户集us组成的图网络结构,令桥梁用户集ub中的用户总数为t;
14.步骤3、通过独热编码得到节点协同矩阵,包括:用户协同矩阵、产品协同矩阵:
15.步骤3.1、对于异构图网络g中的所有用户通过独热编码方式构造用户协同矩阵p={p1,
…
,pa,
…
,p
m-t
,
…
,pb,
…
,pc,
…
,pm,
…
,pd,
…
,p
m+n-t
},且p∈r
(m+n-t)
×d,其中,pa表示用户协同矩阵p中第a个用户的d维协同向量,且第a个用户属于信息域上的非桥梁用户;pb表示用户协同矩阵p中第b个用户的d维协同向量,且第b个用户属于桥梁用户,pd表示用户协同矩阵p中第d个用户的d维协同向量,且第d个用户属于社交域上的非桥梁用户;
16.步骤3.2、对于异构图网络g中的所有产品通过独热编码方式构造产品协同矩阵q={q1,
…
,qi,
…ql
},且q∈r
l
×d,其中,qi表示第i个产品的d维协同向量;
17.步骤4、通过图卷积层进行特征传播:
18.步骤4.1、令图卷积层共有k个卷积层,并初始化当前卷积层数k=0;
19.步骤4.2、根据式(1)、式(2)和式(3)分别得到信息域中第a个非桥梁用户的d维协同向量pa,第b个桥梁用户的d维协同向量pb,社交域中第d个非桥梁用户的d维协同向量pd在经过第k+1个图卷积层后得到相应的用户特征向量根据式(4)得到第i个产品的d维协同向量qi在经过第k+1个图卷积层后得到的产品特征向量
[0020][0021][0022][0023][0024]
式(1)中,ra代表第a个非桥梁用户交互过的产品集合,是信息域中第a个非桥梁用户的d维协同向量pa在第k层卷积层输出的用户特征向量,当k=0,令为随机初始化的用户特征向量;
[0025]
式(2)中,rb代表第b个桥梁用户交互过的产品集合,sb表示第b个桥梁用户有社交连接的用户集合,是第b个桥梁用户的d维协同向量pb在第k层卷积层输出的用户特征向量,当k=0,为随机初始化的用户特征向量;
[0026]
式(3)中,sd表示第d个非桥梁用户有社交连接的用户集合,是社交域中第d个非桥梁用户在第k层卷积层输出的用户特征向量,当k=0,为随机初始化的用户特征向量;
[0027]
式(4)中,ri表示与第i个产品有过交互的用户集合,是第i个产品的d维协同向
量qi在第k层卷积层输出的产品特征向量,当k=0,为随机初始化的产品特征向量;
[0028]
步骤4.3、将k+1赋值给k后,判断k》k是否成立,若成立,则执行步骤5;否则返回步骤4.2顺序执行;
[0029]
步骤5、构造节点特征聚合层:
[0030]
根据式(5)对k层用户特征向量和产品特征向量进行特征聚合,得到异构图网络g中任意一个用户u的特征向量pu和第i个产品的特征向量qi:
[0031][0032]
式(5)中,avg表示平均池化操作,表示第k层卷积层输出的用户u的特征向量,表示第k层卷积层输出的第i个产品qi的特征向量;
[0033]
步骤6、构造节点预测层进行产品推荐:
[0034]
步骤6.1、根据式(6)计算用户u对第i个产品的预测评分值从而得到用户对产品的预测评分矩阵
[0035][0036]
式(6)中,《,》表示向量内积操作;
[0037]
步骤6.2、根据式(7)建立监督损失函数lr:
[0038][0039]
式(7)中,σ(z)是非线性激活函数,θ=[p,q]是待优化的参数,ψ为正则项系数,di={(u,i,j)|u∈ui,i∈ru,j∈(v-ru)}是信息域上所有用户的训练数据;ru表示代表第u个用户交互过的产品集合;表示第u个用户对第j个产品的预测评分值;
[0040]
步骤7、构建自监督学习层对节点局部特征和全局特征进行互信息最大化学习:
[0041]
步骤7.1、根据式(8)和式(9)构建社交域中第d个用户的局部特征hd和信息域中第a个用户的局部特征h
ai
:
[0042]
hd=σ(pd)
ꢀꢀꢀ
(8)
[0043]hai
=[σ(pa),σ(qi)]
ꢀꢀꢀ
(9)
[0044]
式(8)中,σ为sigmoid非线性激活函数;
[0045]
式(9)中,[,]为向量的拼接操作;
[0046]
步骤7.2、根据式(10)和式(11)构建社交域中所有用户的全局特征gs和信息域中所有用户的全局特征gi:
[0047][0048][0049]
步骤7.3、根据式(12)和式(13)构建社交域上的判别器ds和信息域上的判别器di:
[0050]
[0051][0052]
式(12)中,hs表示为社交域上用户的局部特征;ws∈rd×d是一个可训练的权重矩阵,(hs,gs)为社交域上的正样本对;
[0053]
式(13)中,hi表示为信息域上用户的局部特征;wi∈r
2d
×
2d
为可训练的权重矩阵,(hi,gi)为信息域上的正样本对;
[0054]
步骤7.4、对异构图网络g进行随机增加和删除同样数量的边,从而构成扰动图并按照步骤4,步骤5和步骤7.1的过程得到虚构的社交域上的局部特征和虚构的信息域上的局部特征从而构成社交域上的负样本对和信息域上的负样本对
[0055]
步骤7.5、根据式(14)和式(15)构造社交域自监督损失函数ls和信息域自监督损失函数li:
[0056][0057][0058]
步骤7.5、根据式(16)构建总损失函数l:
[0059]
l=lr+αls+λliꢀꢀꢀ
(16)
[0060]
式(16)中,α和λ是用于平衡两种自监督损失函数的超参数;
[0061]
步骤7.6、利用梯度下降法对所述全部损失函数l进行求解,使l收敛至最小值,从而得到最优参数θ
*
=[p
*
,q
*
],进而得到最优用户预测评分矩阵并根据最优用户预测评分矩阵对社交域上的非桥梁用户进行产品推荐。
[0062]
与已有技术相比,本发明有益效果体现在:
[0063]
1、本发明针对社交冷启动用户,提出了一种基于自监督的跨域社交推荐方法,利用桥梁用户构建信息域和社交域的异构图网络,通过图卷积操作学习社交冷启动用户和产品间的潜在协同信息,并利用自监督学习方法,构建异构图中节点的监督信号,充分挖掘异构图的全局特征,有效提高了用户和产品的表征精度,提升了在社交冷启动用户上的推荐精确度。
[0064]
2、本发明通过独热编码的方式处理用户集和产品集,可以有效地扩增数据维度,便于快速的进行矩阵操作。
[0065]
3、本发明利用桥梁用户构建信息域和社交域上的异构图网络,为社交冷启动用户和产品构建联系,从而缓解了社交冷启动问题。
[0066]
4、本发明采用自监督优化方法,通过异构图中用户节点局部特征和全局特征互信息最大化的方式,捕获更多的异构图全局信息,提高了节点表征精度。
附图说明
[0067]
图1为本发明基于自监督学习的跨域社交推荐方法的流程图。
具体实施方式
[0068]
本实施例中,一种基于自监督学习的跨域社交推荐方法,考虑了跨域推荐中过度依赖桥梁用户数量的问题,通过构建异构图网络,构建社交冷启动用户和产品间的联系,并通过自监督优化方法实现异构图节点的局部特征和全局特征互信息最大化,捕获更多异构图全局特征,以实现更精准的社交冷启动用户的产品推荐。具体的说,如图1所示,是按如下步骤进行:
[0069]
步骤1、构造异构数据,包括:用户对产品的评分矩阵r、用户与用户之间的社交关系矩阵s:
[0070]
令ui表示信息域上的用户集,且其中,表示信息域中第a个用户,表示信息域中第b个用户,m表示信息域上的用户总数,1≤a,b≤m;
[0071]
令v表示信息域上的产品集,且v={v1,
…
vi,
…
vj,
…vl
},其中,vi表示信息域中第i个产品,vj表示信息域中第j个产品,l表示信息域上的产品总数;
[0072]
令r
ai
表示第a个用户对第i个产品vi的评分值,则信息域上用户对产品的评分矩阵为r={r
ai
}m×
l
;
[0073]
令us表示社交域上的用户集,其中,表示社交域中第c个用户,表示社交域中第d个用户,n表示社交域上的用户总数,1≤c,d≤n;
[0074]
令s
cd
表示第c个用户对第d个用户的社交连接值,若两用户间有连接,则令s
cd
=1,反之,令s
cd
=0,则社交域上的用户与用户之间的社交关系矩阵为s={s
cd
}n×n;
[0075]
步骤2、利用共同存在于信息域和社交域中的桥梁用户集ub=ui∩us,构建一个异构图网络g=gi∪gs,其中,gi表示由信息域上所有用户集ui和产品集v组成的图网络结构,gs表示由社交域上所有用户集us组成的图网络结构,令桥梁用户集ub中的用户总数为t;
[0076]
步骤3、通过独热编码得到节点协同矩阵,包括:用户协同矩阵、产品协同矩阵:
[0077]
步骤3.1、对于异构图网络g中的所有用户通过独热编码方式构造用户协同矩阵p={p1,
…
,pa,
…
,p
m-t
,
…
,pb,
…
,pc,
…
,pm,
…
,pd,
…
,p
m+n-t
},且p∈r
(m+n-t)
×d,其中,pa表示用户协同矩阵p中第a个用户的d维协同向量且该用户属于信息域上的非桥梁用户;pb表示用户协同矩阵p中第b个用户的d维协同向量且该用户属于桥梁用户,pd表示用户协同矩阵p中第d个用户的d维协同向量且该用户属于社交域上的非桥梁用户;
[0078]
步骤3.2、对于异构图网络g中的所有产品通过独热编码方式构造产品协同矩阵q={q1,
…
,qi,
…ql
},且q∈r
l
×d,其中,qi表示第i个产品的d维协同向量;
[0079]
步骤4、通过图卷积层进行特征传播:
[0080]
步骤4.1、令图卷积层共有k个卷积层,并初始化当前卷积层数k=0;
[0081]
步骤4.2、根据式(1)、式(2)和式(3)分别得到信息域中第a个非桥梁用户的d维协同向量pa,第b个桥梁用户的d维协同向量pb,社交域中第d个非桥梁用户的d维协同向量pd在经过第k+1个图卷积层后得到相应的用户特征向量根据式(4)得到第i个产品的d维协同向量qi在经过第k+1个图卷积层后得到的产品特征向量
[0082]
[0083][0084][0085][0086]
式(1)中,ra代表第a个非桥梁用户交互过的产品集合,是信息域中第a个非桥梁用户的d维协同向量pa在第k层卷积层输出的用户特征向量,当k=0,令为随机初始化的用户特征向量;
[0087]
式(2)中,rb代表第b个桥梁用户交互过的产品集合,sb表示第b个桥梁用户有社交连接的用户集合,是第b个桥梁用户的d维协同向量pb在第k层卷积层输出的用户特征向量,当k=0,为随机初始化的用户特征向量;
[0088]
式(3)中,sd表示第d个非桥梁用户有社交连接的用户集合,是社交域中第d个非桥梁用户在第k层卷积层输出的用户特征向量,当k=0,为随机初始化的用户特征向量;
[0089]
式(4)中,ri表示与第i个产品有过交互的用户集合,是第i个产品的d维协同向量qi在第k层卷积层输出的产品特征向量,当k=0,为随机初始化的产品特征向量;
[0090]
步骤4.3、将k+1赋值给k后,判断k》k是否成立,若成立,则执行步骤5;否则返回步骤4.2顺序执行;
[0091]
步骤5、构造节点特征聚合层:
[0092]
根据式(5)对k层用户特征向量和产品特征向量进行特征聚合,得到异构图网络g中任意一个用户u的特征向量pu和第i个产品的特征向量qi:
[0093][0094]
式(5)中,avg表示平均池化操作,表示第k层卷积层输出的用户u的特征向量,表示第k层卷积层输出的第i个产品qi的特征向量;
[0095]
步骤6、构造节点预测层进行产品推荐:
[0096]
步骤6.1、根据式(6)计算用户u对第i个产品的预测评分值从而得到用户对产品的预测评分矩阵
[0097][0098]
式(6)中,《,》表示向量内积操作;
[0099]
步骤6.2、根据式(7)建立监督损失函数lr:
[0100][0101]
式(7)中,σ(z)是非线性激活函数,θ=[p,q]是待优化的参数,ψ为正则项系数,di={(u,i,j)|u∈ui,i∈ru,j∈(v-ru)}是信息域上所有用户的训练数据;ru表示代表第u个用户交互过的产品集合;表示第u个用户对第j个产品的预测评分值;
[0102]
步骤7、构建自监督学习层对节点局部特征和全局特征进行互信息最大化学习:
[0103]
步骤7.1、根据式(8)和式(9)构建社交域中第d个用户的局部特征hd和信息域中第a个用户的局部特征h
ai
:
[0104]
hd=σ(pd)
ꢀꢀꢀ
(8)
[0105]hai
=[σ(pa),σ(qi)]
ꢀꢀꢀ
(9)
[0106]
式(8)中,σ为sigmoid非线性激活函数;
[0107]
式(9)中,[,]为向量的拼接操作;
[0108]
步骤7.2、根据式(10)和式(11)构建社交域中所有用户的全局特征gs和信息域中所有用户的全局特征gi:
[0109][0110][0111]
步骤7.3、根据式(12)和式(13)构建社交域上的判别器ds和信息域上的判别器di:
[0112][0113][0114]
式(12)中,hs表示为社交域上用户的局部特征;ws∈rd×d是一个可训练的权重矩阵,(hs,gs)为社交域上的正样本对;
[0115]
式(13)中,hi表示为信息域上用户的局部特征;wi∈r
2d
×
2d
为可训练的权重矩阵,(hi,gi)为信息域上的正样本对;
[0116]
步骤7.4、对异构图网络g进行随机增加和删除同样数量的边,从而构成扰动图并按照步骤4,步骤5和步骤7.1的过程得到虚构的社交域上的局部特征和虚构的信息域上的局部特征从而构成社交域上的负样本对和信息域上的负样本对
[0117]
步骤7.5、根据式(14)和式(15)构造社交域自监督损失函数ls和信息域自监督损失函数li:
[0118][0119][0120]
步骤7.5、根据式(16)构建总损失函数l:
[0121]
l=lr+αls+λliꢀꢀꢀ
(16)
[0122]
式(16)中,α和λ是用于平衡两种自监督损失函数的超参数;
[0123]
步骤7.6、利用梯度下降法对全部损失函数l进行求解,使l收敛至最小值,从而得到最优参数θ
*
=[p
*
,q
*
],进而得到最优用户预测评分矩阵并根据最优用户预测评分矩阵对社交域上的非桥梁用户进行产品推荐。该方法在非常有限的桥梁用户中挖掘跨域间的协同信息,并通过自监督学习的方式对模型进行优化,充分挖掘异构图的全局特征,从而实
现更精准的社交冷启动用户的产品推荐。
[0124]
实施例:
[0125]
为了验证本方法的有效性,本发明对两个公开数据集进行数据处理:epinions、dianping,使其符合本发明的实验条件。
[0126]
对于产品推荐任务,本发明采用hit ratio(hr)和normalized discounted cumulative gain(ndcg)作为评价标准。本发明选用了3种方法进行效果对比,分别是emcdr、nscr、bitgcf。
[0127]
表1本发明方法与对比方法在epinions数据集上的社交冷启动用户产品推荐结果
[0128][0129]
表2本发明方法与对比方法在dianping数据集上的社交冷启动用户产品推荐结果
[0130][0131]
具体地说,表1、表2分别显示在epinions和dianping数据集上的实验结果,可以看出在两个数据集上,本发明提出的方法在社交冷启动用户上的hr和ndcg两个指标上都优于对比的3种方法。