本发明专利技术公开了一种基于组合编码的协同排序推荐方法,试图在不影响模型性能的前提下,充分利用实值向量的准确性和二进制向量的高效性来表示用户以及物品,以此来提升推荐方法的准确度和效率。为了和推荐系统获得top‑k个推荐结果的最终目标保持一致,CCCR采用了成对的排序损失函数,使得方法在排序指标上有更好的表现。为了比传统的离散坐标下降法获得更快的收敛速度以及更优的收敛结果,CCCR使用了一种新的高效优化方法,采用整体更新二进制向量而不是逐位更新的方式。最后,在公开的数据集上的实验结果表明,CCCR在保持检索和训练的高效性的同时,显著地提高了top‑k推荐任务中结果的准确性。
【技术实现步骤摘要】
一种基于组合编码的协同排序推荐方法
本专利技术属于离散推荐领域,尤其涉及一种基于组合编码的协同排序推荐方法。
技术介绍
近年来,推荐系统在互联网多个领域中得到广泛运用,比如电子商务、社交媒体、新闻流平台等,在这些场景中,推荐系统主要的作用,是根据用户和物品已有的信息,挖掘出用户潜在的感兴趣的物品,推荐给用户,从而提升用户的体验以及平台的流量和广告收入等。为了提升算法在大规模推荐场景下的推荐效率,近年来很多研究工作在这方面做了大量努力。其中一个研究方向是使用哈希方法。区别于传统的使用实数潜在特征向量来表示用户和物品,哈希方法使用二进制向量来表示用户和物品,这样一来,用户和物品的特征向量的内积操作,就可以在海明空间中,通过快速的位运算的方式来实现。然而,与实值向量相比,二进制向量由于其每一位表达能力有限,其精度自然就会比较低,这就阻碍了它对用户和物品之间的复杂关系的建模。为了充分利用实值向量在精度上的优势和二进制向量在效率上的优势,基于组合编码的协同过滤方法(CCCF)被提出。尽管与现有的推荐方法相比,CCCF方法在推荐精度和效率之间有更好的平衡,但是它有两个局限性。首先,该方法的目标函数是平方差逐点损失函数,这与推荐系统的最终目标(即准确推荐用户最喜欢的top-k物品的排序目标)不一致。第二,由于离散约束,该方法采用离散坐标下降的方式进行优化,这种按位更新哈希码的方法会导致方法收敛速度慢,并且容易陷入局部最小值。
技术实现思路
本专利技术的目的在于针对现有技术的局限和不足,提供一种基于组合编码的协同排序推荐方法。本专利技术解决了传统二进制码表达能力不足以及已有的基于组合编码的方法的优化目标与推荐目标不一致的问题,旨在提高推荐的效率和准确度。本专利技术的目的是通过以下技术方案来实现的:一种基于组合编码的协同排序推荐方法,包括训练阶段和在线推荐阶段。在训练阶段,根据由m个用户和n个物品构成的评分矩阵M∈Rm×n,来得到用户和物品的组合编码,组合编码包括G个r维的二进制向量,以及一个G维的实数权重向量。第u个用户的组合编码表示为:其中,bu(k)∈{±1}r为用户u的第k个二进制向量,ηu为用户u实数权重向量,k=1~G,r是实值特征向量的维度。第i个物品的组合编码表示为:其中,为物品i的第k个二进制向量,ξi为物品i实数权重向量。用A={(u,i)|Mui>0}来表示M中每一个评分对应的用户和物品构成的集合对,u=1~m,i=1~n,Mui表示用户u对物品i的评分。用三元组(u,i,j)来代表用户u所评分过的所有物品对i和j使用Ω={(u,i,j)|(u,i),(u,j)∈A}来表示所有的三元组,j=1~n。定义Yu,i,j来表示用户对这两个物品偏好程度的相对关系,具体定义如下:用B=[b1,...,bm]∈{±1}m×r以及D=[d1,...,dn]∈{±1}n×r来分别表示r维的用户和物品的二进制向量。优化的目标函数如下:B(k)∈{±1}m×r,D(k)∈{±1}n×r,k=1,...,G.其中,分别表示用户u对物品i,j的得分估计;B(k)表示第k个局部模型的r维用户二进制向量;D(k)表示第k个局部模型的r维物品二进制向量。在线推荐阶段:根据训练得到的用户和物品的组合编码,对于每一个访问的用户,计算该用户与所有物品的得分,用户u对物品i的得分计算公式如下:再将所有得分从高到低进行排序,选择top-k个物品作为推荐结果返回给用户,完成在线推荐。进一步地,训练阶段具体包括以下步骤:(1)选择锚点。使用协同过滤算法,得到用户和物品的初始实值特征向量,再使用k-means算法,选取G个锚点(u′1,i′1),...,(u′G,i′G)来对应G个局部模型。(2)计算权重。对于每一个用户和物品,根据其与锚点的距离来计算权重,第k个局部模型的用户权重计算公式如下:其中,u0是用户u对应的初始化实值特征向量,u′k是第k个锚点所对应的用户的实值特征向量,h是超参数,用来控制权重的稀疏度。II是指示函数,物品的权重计算公式与用户类似。(3)优化目标函数,以整体闭合解的方式来依次循环更新每个局部模型的二进制向量,直至所有二进制向量都收敛,构建组合编码。进一步地,步骤(1)具体为:对M使用协同过滤算法,得到用户的初始实值特征向量u0和物品的初始实值特征向量i0;再使用k-means聚类算法,选取G个锚点(u′1,i′1),...,(u′G,i′G)来对应G个局部模型;其中,u′k∈Rr是第k个局部模型对应的用户的实值特征向量,i′k∈Rr是第k个局部模型所对应的物品的实值特征向量。进一步地,步骤(3)具体包括以下子步骤:(3.1)初始化G个局部模型中用户和物品的二进制向量;(3.2)基于二进制向量的初始值,通过优化目标函数,以整体闭合解的方式依次更新每个局部模型的用户和物品的二进制向量;重复循环更新所有的局部模型,直至所有二进制向量都收敛,得到最终的用户和物品的二进制向量。(3.3)构建用户和物品的组合编码。进一步地,步骤(3.1)中,初始化G个局部模型中用户和物品的二进制向量,可以采用以下两种方式:(3.3.1)随机初始化二进制向量的初始值。(3.3.2)先将实值特征向量代替二进制向量代入步骤(3.2)构建的目标函数中,优化目标函数得到新的实值特征向量,将新的实值特征向量的符号位作为二进制向量的初始值。本专利技术的有益效果是:本专利技术既利用了组合编码带来的优势,同时又使用了排序损失作为目标函数,相比于使用平方差逐点损失的协同过滤算法,进一步提升了在排序指标上的性能表现。另外,在二进制向量的优化更新方法上,由于传统的bit-by-bit的更新形式收敛速度慢,并且容易陷入局部最优解,本专利技术采用了block-wise的整体更新方法,具有较快的收敛速度,并且可以获得更优解。附图说明图1是本专利技术的训练流程图;图2是本专利技术的在线推荐流程图;图3是权重计算方式示意图;图4是用户和物品的二进制向量的更新方法示意图;图5是本专利技术方法(CCCR)与传统的推荐方法(CCCF、Primal-CR++、DRMF、DCF、PPH)在NDCG指标上的比较结果示意图。具体实施方式下面结合附图详细描述本专利技术,本专利技术的目的和效果将变得更加明显。本专利技术一种基于组合编码的协同排序推荐方法,包括训练阶段和在线推荐阶段。训练流程如图1所示,具体步骤如下:(1)如图3所示,选择锚点。(1.1)m个用户和n个物品构成评分矩阵M∈Rm×n,用A={(u,i)|Mui>0}来表示M中每一个评分对应的用户和物品构成的集合对;其中,u=1~m,i=1~n,Mui表示用户u对物品i的评分;(1.2)对M使用协同过滤算法,得本文档来自技高网...
【技术保护点】
1.一种基于组合编码的协同排序推荐方法,其特征在于,包括训练阶段和在线推荐阶段。/n在训练阶段,根据由m个用户和n个物品构成的评分矩阵M∈R
【技术特征摘要】
1.一种基于组合编码的协同排序推荐方法,其特征在于,包括训练阶段和在线推荐阶段。
在训练阶段,根据由m个用户和n个物品构成的评分矩阵M∈Rm×n,来得到用户和物品的组合编码,组合编码包括G个r维的二进制向量,以及一个G维的实数权重向量。第u个用户的组合编码表示为:
其中,bu(k)∈{±1}r为用户u的第k个二进制向量,ηu为用户u实数权重向量,k=1~G,r是实值特征向量的维度。
第i个物品的组合编码表示为:
其中,为物品i的第k个二进制向量,ξi为物品i实数权重向量。
用A={(u,i)|Mui>0}来表示M中每一个评分对应的用户和物品构成的集合对,u=1~m,i=1~n,Mui表示用户u对物品i的评分。用三元组(u,i,j)来代表用户u所评分过的所有物品对i和j使用Ω={(u,i,j)|(u,i),(u,j)∈A}来表示所有的三元组,j=1~n。定义Yu,i,j来表示用户对这两个物品偏好程度的相对关系,具体定义如下:
用B=[b1,...,bm]∈{±1}m×r以及D=[d1,...,dn]∈{±1}n×r来分别表示r维的用户和物品的二进制向量。优化的目标函数如下:
B(k)∈{±1}m×r,D(k)∈{±1}n×r,k=1,...,G.
其中,分别表示用户u对物品i,j的得分估计;B(k)表示第k个局部模型的r维用户二进制向量;D(k)表示第k个局部模型的r维物品二进制向量。
在线推荐阶段:根据训练得到的用户和物品的组合编码,对于每一个访问的用户,计算该用户与所有物品的得分,用户u对物品i的得分计算公式如下:
再将所有得分从高到低进行排序,选择top-k个物品作为推荐结果返回给用户,完成在线推荐。
2.如权利要求1所述基于组合编码的协同排序推荐方法,其特征在于,训练阶段具体包括以下步骤:
(1)选择锚点。使用协同过滤算法,得到用...
【专利技术属性】
技术研发人员:卢涛,刘成昊,孙建伶,
申请(专利权)人:浙江大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。