基于以列表为单位的用户推荐列表生成方法及系统
技术领域
本发明涉及服务信息推送技术领域,特别涉及基于以列表为单位的用户推荐列表生成方法及系统。
背景技术
当前,网络服务商为用户提供了诸如新闻、商品、图片、视频、音频、文档等(以下统一简称为物品)的在线服务。为了更好的为用户提供服务,服务商会记录用户的历史行为,例如记录用户购买(使用)过哪些物品、对物品的评价等。用户对物品的评分是分析用户偏好的重要信息。用户对物品的评分一般为1~k的整数,1表示最不喜欢,k表示最喜欢。1~k之间的评分表示的喜欢程度依次递增。由于每一个用户消费的物品数量有限,如何根据有限的评分数据挖掘用户偏好,进而据此为用户提供推荐是推荐领域面临的重要问题。所谓推荐即是预测用户可能喜欢的物品、按照可能的喜欢程度排序,并把这个物品列表推荐给用户。在基于评分的推荐系统中,推荐结果通常采用两种方式评价,其一是度量对单个物品的评分估计的准确程度,称为以单个物品为单位的方法;其二是计算物品两两比较的偏好顺序差异,称为以比较对为单位的方法。
但是以上两种方法都不能保证最终的推荐列表与用户的真实偏好顺序一致。
发明内容
为了解决现有的商品或者服务推荐及评估方法生成商品或服务推荐列表与用户的真实偏好顺序存在较大差异的缺陷,本发明提供一种基于以列表为单位的用户推荐列表生成方法及系统。
一种基于以列表为单位的用户推荐列表生成方法,其包括如下步骤:
S1、从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j作出评 分时,Ii,j=1;对用户评价过的物品,按照评分的大小顺序排序,得到用户的偏好顺序πi,其中第j个元素πi,j表示排在第j位的物品编号;
S2、根据用户的偏好顺序πi,通过梯度下降法学习用户偏好U及物品特征V;
S3、根据所学习的用户偏好U及物品特征V,对每一个用户i,获取该用户对所有没有评分的物品j的评分预测值
计算公式为:
其中ui,vj均为行向量,ui表示用户i的偏好和物品j特征,vj表示物品j特征,并对
按照从大到小进行排序,得到对用户i推荐列表。
一种基于以列表为单位的用户推荐列表生成系统,其包括如下模块:
历史偏好顺序获取模块,用于从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j作出评分时,Ii,j=1;对用户评价过的物品,按照评分的大小顺序排序,得到用户的偏好顺序πi,其中第j个元素πi,j表示排在第j位的物品编号;
学习模块,用于根据用户的偏好顺序πi,通过梯度下降法学习用户偏好U及物品特征V;
推荐列表生成模块,用于根据所学习的用户偏好U及物品特征V,对每一个用户i,获取该用户对所有没有评分的物品j的评分预测值
计算公式为:
其中ui,vj均为行向量,ui表示用户i的偏好和物品j特征,vj表示物品j特征,并对
按照从大到小进行排序,得到对用户i推荐列表。
本发明提供的基于以列表为单位的用户推荐列表生成方法及系统,通过先从用户的选择历史记录中获取用户的历史偏好顺序,然后基于用于的偏好顺序对用户偏好和物品特征进行学习,学习的方法采用梯度下降法,然后基于学习得到的用户偏好以及物品特征对用户未选中的物品的评分值进行预测,最后对该评分预测值排序,获得了对用户推荐列表。通过实施本发明方法能够使推荐结果尽可能接近用户的真实偏好顺序。
附图说明
图1是本发明实施的基于以列表为单位的用户推荐列表生成方法流程图;
图2是本发明实施的基于以列表为单位的用户推荐列表生成系统的结构框图;
图3是图2中学习模块的结构框图。
具体实施方式
如图1所示,一种基于以列表为单位的用户推荐列表生成方法,其包括如下步骤:
S1、从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j作出评分时,Ii,j=1;对用户评价过的物品,按照评分的大小顺序排序,得到用户的偏好顺序πi,其中第j个元素πi,j表示排在第j位的物品编号。
其中,可选地,评分为1~k的正整数,1表示最不喜欢,k表示最喜欢。1~k之间的评分表示的喜欢程度依次递增。
S2、根据用户的偏好顺序πi,通过梯度下降法学习用户偏好U及物品特征V。
可选地,所述步骤S2包括如下子步骤:
S21、初始化所预测的用户偏好以及所预测的物品特征,包括随机生成用户偏好矩阵U以及物品特征矩阵V中的每一个元素;
S22、检查收敛条件,在迭代次数达到预设值或者目标函数的值不再减少时,跳转到步骤S3;在迭代次数小于预设值并且目标函数的值减少时,跳转到步骤S23。可选地,迭代的次数可以为100次,或者其他次数。
可选地,度量标准的目标函数为:
min{αΣi=1N12ln(Σj=1MIi,jφ(r^i,j))-ln(Σj=1MIi,jφ(ri,j)φ(r^i,j))+(1-α)Σi=1NΣk=1|πi|(lnΣk=1|πi|φ(r^i,πi,k)-lnφ(r^i,πi,j))+reg}]]>
其中,reg为正规化项,其具体形式根据
计算方法的不同而不同。
S23、通过梯度下降法更新所述预测的用户偏好ui及所预测的物品特征值vj,跳转到步骤S22;
更新方法如下:
ui←ui-ηΔui
vj←vj-ηΔvj,其中η为梯度下降法的学习率,用于控制梯度下降的收敛速度,及学习结果的性能。
可选地,梯度下降法的学习率η的值为0.1。
可选地,所述步骤S23中梯度的计算方法为:
Δui=α(Σj=1MIi,jφ(r^i,j)φ'(r^i,j)vjΣj=1MIi,jφ2(r^i,j)+Σj=1MIi,jφ(ri,j)φ'(r^i,j)vjΣj=1MIi,jφ(r^i,j)φ'(r^i,j))+(1-α)Σj=1|πi|(Σk=j|πi|φ'(r^i,πi,k)vπi,kΣk=j|πi|φ(r^i,πi,k)-φ'(r^i,πi,k)vπi,kφ(r^i,πi,k))+2λuui;]]>
Δvj=αΣi=1NIij(φ(r^i,j)φ'(r^i,j)uiΣk=1Mφ2(r^i,j)-φ(ri,j)φ'(r^i,j)uiΣk=1Mφ(ri,k)φ(r^i,k))+(1-α)Σi=1NIi,j(Σl=jπi,j=jφ'(r^i,j)uiΣk=l|πi|φ(r^i,πi,k)-φ'(r^i,πi,k)uiφ(r^i,πi,k))+2λvvj]]>
在以上两个公式中,α∈[0,1],表示基于余弦函数相似度的权重;
是对πi中物品评分的预测;I为指示矩阵。
可选地,基于余弦函数相似度的权重α=0.4。
S3、根据所学习的用户偏好U及物品特征V,对每一个用户i,获取该用户对所有没有评分的物品j的评分预测值
计算公式为:
其中ui,vj均为行向量,ui表示用户i的偏好和物品j特征,vj表示物品j特征,并对
按 照从大到小进行排序,得到对用户i推荐列表。注意,本发明提供的方法不依赖
的具体计算方法。
可选地,本发明实施例提供的基于以列表为单位的用户推荐列表生成方法还包括如下步骤:
S4、在步骤S3之后,对用户i,对生成的用户推荐列表进行度量确定推荐列表中的推荐结果与其真实偏好的相似程度,度量的公式如下:
p(πi|R^i)=αpcos(πi|R^i)+(1-α)PP-L(πi|R^i),]]>其中
是基于余弦函数的相似度度量,
是基于Plackett-Luce模型的相似度度量。Plackett-Luce模型常用于度量两个序列之间的相似度,是排序学习(Learning to rank)领域常用的度量标准。
可选地,
是基于余弦函数的相似度度量,计算方法为:
pcos(πi|R^i)=Σj=1MIi,jφ(ri,j)φ(r^i,j)Σj=1MIi,j(φ(ri,j))2Σj=1MIi,j(φ(r^i,j))2,]]>其中,φ(x)=11+e-x.]]>
可选地,
是基于Plackett-Luce模型的相似度度量,计算公式为:
pP-L(πi|R^i)=Πj=1|πi|φ(r^i,πi,j)Σk=j|πi|φ(r^i,πi,j).]]>
本发明将生成的推荐列表看作一个整体,定义一个新的相似度函数,来度量整个推荐列表与用户真实偏好顺序的相似程度。本发明提供的推荐方法在真实数据集Epinions和MovieLen上进行了验证。Epinions和MovieLen是业内常用的检验推荐结果性能的数据集。以NDCG(Normalized Discounted Cumulative Gain)和ERR(Expected Reciprocal Rank)为检验标准,本发明提供的方法取得了更好的结果。其中,在MovieLen上推荐结果的NDCG指标和ERR指标比其它方法(如概率矩阵分解(PMF)、贝叶斯个性化排序(BPR))提高了15%。在Epinions上推荐结果的NDCG指标和ERR指标比其它方法提高了10%。
如图2所示,本发明实施例还提供一种基于以列表为单位的用户推荐列 表生成系统,其包括如下模块:
历史偏好顺序获取模块,用于从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j作出评分时,Ii,j=1;对用户评价过的物品,按照评分的大小顺序排序,得到用户的偏好顺序πi,其中第j个元素πi,j表示排在第j位的物品编号;
学习模块,用于根据用户的偏好顺序..,通过梯度下降法学习用户偏好U及物品特征V;
推荐列表生成模块,用于根据所学习的用户偏好U及物品特征V,对每一个用户i,获取该用户对所有没有评分的物品j的评分预测值
计算公式为:
其中ui,vj均为行向量,ui表示用户i的偏好和物品j特征,vj表示物品j特征,并对
按照从大到小进行排序,得到对用户i推荐列表。
可选地,如图3所示,所述学习模块包括如下单元:
初始化单元,用于初始化所预测的用户偏好以及所预测的物品特征,包括随机生成用户偏好矩阵U以及物品特征矩阵V中的每一个元素;
迭代单元,用于检查收敛条件,在迭代次数达到预设值或者目标函数的值不再减少时,启动列表生成模块的功能;在迭代次数小于预设值并且目标函数的值减少时,启动学习单元的功能;
学习单元,用于通过梯度下降法更新所述预测的用户偏好ui及所预测的物品特征值vj,启动迭代单元的功能;
更新方法如下:
ui←ui-ηΔui
vj←vj-ηΔvj,其中η为梯度下降法的学习率。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储 介质中。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。