基于二次函数表示用户偏好的推荐方法及系统转让专利

申请号 : CN201510348728.8

文献号 : CN104965896B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘俊涛孙立杰邓德位王军伟黄友澎

申请人 : 中国船舶重工集团公司第七0九研究所

摘要 :

一种基于二次函数表示用户偏好的推荐方法,其包括如下步骤:S1、从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j做出评分时,Ii,j=1;S2、通过随机梯度下降法优化目标函数学习用户条件偏好;S3、根据步骤S2中学习的用户条件偏好通过二次函数生成物品推荐列表。本发明还提供一种基于二次函数表示用户偏好的推荐系统。

权利要求 :

1.一种基于二次函数表示用户偏好的推荐方法,其特征在于,其包括如下步骤:S1、从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j做出评分时,Ii,j=1;

S2、通过随机梯度下降法优化目标函数学习用户条件偏好;

S21、初始化用户条件偏好及物品特征:对每一个用户i随机生成用户条件偏好Ui、ui和Bi中的每一个元素;对每一个物品j随机生成物品特征vj和bj中的每一个元素;

S22、检查收敛条件,当迭代次数达到预设次数或目标函数的值不再减小时跳转到步骤S23,否则跳转到步骤S3;

优化目标函数如下:

其中 表示预测的用户评分;||·||F

为F-范数;函数 连续可导,用于度量用户真实评分和预测评分之间的差异,λU、λu、λB、λv、λb为正规化参数;

S23、随机选择观察到的评分:在观察到的评分矩阵R中随机选择一个非空的元素ri,j;

S24、计算梯度:通过优化目标函数,对每一个用户i计算用户条件偏好Ui、ui和Bi的梯度,计算方法如下:通过优化目标函数,对每一个物品j计算物品特征vj和bj的梯度,计算方法如下:S25、更新用户条件偏好和物品特征:对每一个用户i更新用户条件偏好Ui、ui和Bi,更新方法如下:Ui←Ui-ηΔUi

ui←ui-ηΔui

Bi←Bi-ηΔBi

对每一个物品j,更新物品特征vj和bj,更新方法如下:vj←vj-ηΔvj

bj←bj-ηΔbj

其中,η为学习率;

跳转到步骤S22;

S3、根据步骤S2中学习的用户条件偏好通过二次函数生成物品推荐列表,对每一个用户i,计算该用户对所有没有评分的物品j的评分预测值,计算方法为:对 排序,得到对用户i的推荐列表,其中Ui为D×D的实对称矩阵,D为特征维数,ui是1×D的行向量,Bi是一个实数;Ui、ui和Bi表示了用户的条件偏好;vj是1×D的行向量,bj是一个实数,vj和bj表示了物品j的特征。

2.如权利要求1所述的基于二次函数表示用户偏好的推荐方法,其特征在于,学习率η为0.08。

3.如权利要求1所述的基于二次函数表示用户偏好的推荐方法,其特征在于,正规化参数λU、λu、λB、λv、λb的取值均为0.0002。

4.如权利要求1所述的基于二次函数表示用户偏好的推荐方法,其特征在于,特征维数D的取值为16或32。

5.一种基于二次函数表示用户偏好的推荐系统,其特征在于,其包括如下模块:信息收集模块,用于从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j作出评分时,Ii,j=1;

学习模块,用于通过随机梯度下降法优化目标函数学习用户条件偏好;

初始化单元,用于初始化用户条件偏好及物品特征:对每一个用户i随机生成用户条件偏好Ui、ui和Bi中的每一个元素;对每一个物品j随机生成物品特征vj和bj中的每一个元素;

判断单元,用于检查收敛条件,当迭代次数达到预设次数且目标函数的值不再减小时启动计算单元的功能,否则启动列表生成模块的功能;

优化目标函数如下:

其中 表示预测的用户评分;||·||F

为F-范数;函数 连续可导,用于度量用户真实评分和预测评分之间的差异,λU、λu、λB、λv、λb为正规化参数;

选择单元,用于随机选择观察到的评分:在观察到的评分矩阵R中随机选择一个非空的元素ri,j;

计算单元,用于计算梯度:通过优化目标函数,对每一个用户i计算用户条件偏好Ui、ui和Bi的梯度,计算方法如下:通过优化目标函数,对每一个物品j计算物品特征vj和bj的梯度,计算方法如下:更新单元,用于更新用户条件偏好和物品特征:对每一个用户i更新用户条件偏好Ui、ui和Bi,更新方法如下:Ui←Ui-ηΔUi

ui←ui-ηΔui

Bi←Bi-ηΔBi

对每一个物品j,更新物品特征vj和bj,更新方法如下:vj←vj-ηΔvj

bj←bj-ηΔbj

其中,η为学习率;

启动判断单元的功能;

列表生成模块,用于根据学习模块中学习的用户条件偏好通过二次函数生成物品推荐列表。

说明书 :

基于二次函数表示用户偏好的推荐方法及系统

技术领域

[0001] 本发明涉及服务信息推送技术领域,特别涉及一种基于二次函数表示用户偏好的推荐方法及系统。

背景技术

[0002] 当前,网络服务商为用户提供了诸如新闻、商品、图片、视频、音频、文档等(以下统一简称为物品)的在线服务。为了更好的为用户提供服务,服务商会记录用户的历史行为,例如记录用户购买(使用)过哪些物品、对物品的评价等。用户对物品的评分是分析用户偏好的重要信息。用户对物品的评分一般为1~k的整数,1表示最不喜欢,k表示最喜欢。1~k之间的评分表示的喜欢程度依次递增。由于每一个用户消费的物品数量有限,如何根据有限的评分数据挖掘用户偏好,进而据此为用户提供推荐是推荐领域面临的重要问题。所谓推荐即是预测用户可能喜欢的物品、按照可能的喜欢程度排序,并把这个物品列表推荐给用户。
[0003] 在基于评分的推荐系统中,用户的偏好通常表示为一种线性函数。然而,由于用户与用户之间的差异非常大,简单的线性函数难以准确的表示各种用户偏好,特别是用户表现出来的条件偏好,难以用线性函数表示。所谓条件偏好指的是用户在不同条件下表现出来的不同偏好。例如,天气寒冷时喜欢热的饮料,而在夏天则偏爱冷饮。研究表明,条件偏好是一种非线性的关系。传统的推荐方法忽略了用户偏好的条件性,造成了一定程度的推荐错误。

发明内容

[0004] 为了解决现有的商品或者服务推荐方法忽略了用户偏好的条件性,容易造成推荐错误的缺陷,本发明提供一种基于二次函数表示用户偏好的推荐方法及系统。
[0005] 一种基于二次函数表示用户偏好的推荐方法,其包括如下步骤:
[0006] S1、从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j做出评分时,Ii,j=1;
[0007] S2、通过随机梯度下降法优化目标函数学习用户条件偏好;
[0008] S3、根据步骤S2中学习的用户条件偏好通过二次函数生成物品推荐列表。
[0009] 一种基于二次函数表示用户偏好的推荐系统,其包括如下模块:
[0010] 信息收集模块,用于从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j做出评分时,Ii,j=1;
[0011] 学习模块,用于通过随机梯度下降法优化目标函数学习用户条件偏好;
[0012] 列表生成模块,用于根据学习模块中学习的用户条件偏好通过二次函数生成物品推荐列表。
[0013] 本发明提供的基于二次函数表示用户偏好的推荐方法及系统,通过假设用户的偏好为条件偏好,并用二次函数表示这种条件偏好。根据历史观察数据,采用随机梯度下降方法挖掘用户条件偏好及物品特征,进而根据得到的用户条件偏好及物品特征预测用户对未评分的物品的喜好程度,得到推荐列表。本发明提供的推荐方法及系统能够得到更准确的推荐结果。

附图说明

[0014] 图1是本发明实施的基于二次函数表示用户偏好的推荐方法流程图;
[0015] 图2是本发明实施的基于二次函数表示用户偏好的推荐系统的结构框图;
[0016] 图3是图2中学习模块的结构框图。

具体实施方式

[0017] 如图1所示,一种基于二次函数表示用户偏好的推荐方法,其包括如下步骤:
[0018] S1、从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j做出评分时,Ii,j=1。
[0019] S2、通过随机梯度下降法优化目标函数学习用户条件偏好。
[0020] S3、根据步骤S2中学习的用户条件偏好通过二次函数生成物品推荐列表。
[0021] 可选地,所述步骤S2包括如下子步骤:
[0022] S21、初始化用户条件偏好及物品特征:对每一个用户i随机生成用户条件偏好Ui、ui和Bi中的每一个元素;对每一个物品j随机生成物品特征vj和bj中的每一个元素。
[0023] S22、检查收敛条件,当迭代次数达到预设次数或目标函数的值不再减小时跳转到步骤S23,否则跳转到步骤S3。
[0024] 优化目标函数如下:
[0025] 其中 表示预测的用户评分;||·||F为F-范数;函数 连续可导,但其具体形式可不限,用于度量用户真实评分和预测评分之间的差异,λU、λu、λB、λv、λb为正规化参数。
[0026] S23、随机选择观察到的评分:在观察到的评分矩阵R中随机选择一个非空的元素ri,j。
[0027] S24、计算梯度:通过优化目标函数,对每一个用户i计算用户条件偏好Ui、ui和Bi的梯度,计算方法如下:
[0028]
[0029]
[0030]
[0031] 通过优化目标函数,对每一个物品j计算物品特征vj和bj的梯度,计算方法如下:
[0032]
[0033]
[0034] S25、更新用户条件偏好和物品特征:对每一个用户i更新用户条件偏好Ui、ui和Bi,更新方法如下:
[0035] Ui←Ui-ηΔUi
[0036] ui←ui-ηΔui
[0037] Bi←Bi-ηΔBi
[0038] 对每一个物品j,更新物品特征vj和bj,更新方法如下:
[0039] vj←vj-ηΔvj
[0040] bj←bj-ηΔbj
[0041] 其中,η为学习率;
[0042] 跳转到步骤S22。
[0043] 可选地,学习率η用于控制学习过程的收敛速度,其值可以为0.08。
[0044] 可选地,正规化参数λU、λu、λB、λv、λb的取值均为0.0002。
[0045] 可选地,所述步骤S3包括:
[0046] 对每一个用户i,计算该用户对所有没有评分的物品j的评分预测值,计算方法为:对 排序,得到对用户i的推荐列表,其中Ui为D×D的实对称矩
阵,D为特征维数,ui是1×D的行向量,Bi是一个实数;Ui、ui和Bi表示了用户的条件偏好;vj是
1×D的行向量,bj是一个实数,vj和bj表示了物品j的特征。
[0047] 可选地,特征维数D的取值为16或32。
[0048] 研究表明,二次函数能够近似的表示非线性的条件偏好,比线性函数有更好的表达能力。在推荐系统中用二次函数表示用户偏好能够得到更令人满意的结果。同时,二次函数学习和计算的复杂度不高,特别适用于数据量巨大的推荐系统。
[0049] 本发明提供的推荐方法在真实数据集Epinions和MovieLen上进行了验证。Epinions和MovieLen是业内常用的检验推荐结果性能的数据集。以NDCG(Normalized Discounted Cumulative Gain)和ERR(Expected Reciprocal Rank)为检验标准,本发明提供的方法取得了更好的结果。其中,在MovieLen上推荐结果的NDCG指标和ERR指标比其它方法(如概率矩阵分解(PMF)、贝叶斯个性化排序(BPR))提高了13%。在Epinions上推荐结果的NDCG指标和ERR指标比其它方法提高了9%。
[0050] 如图2所示,本发明实施例还提供一种基于二次函数表示用户偏好的推荐系统,其包括如下模块:
[0051] 信息收集模块10,用于从在线服务商处获取用户对物品的评分记录,其中评分记录为评分矩阵R,在评分矩阵R中的每一个元素ri,j表示用户i对物品j的评分;在用户i没有对物品j评分时,指示矩阵I中的元素Ii,j=0,在用户i对物品j做出评分时,Ii,j=1。
[0052] 学习模块20,用于通过随机梯度下降法优化目标函数学习用户条件偏好;
[0053] 列表生成模块30,用于根据学习模块20中学习的用户条件偏好通过二次函数生成物品推荐列表。
[0054] 可选地,如图2所示,所述学习模块20包括如下单元:
[0055] 初始化单元21,用于初始化用户条件偏好及物品特征:对每一个用户i随机生成用户条件偏好Ui、ui和Bi中的每一个元素;对每一个物品j随机生成物品特征vj和bj中的每一个元素。
[0056] 判断单元22,用于检查收敛条件,当迭代次数达到预设次数且目标函数的值不再减小时启动计算单元24的功能,否则启动列表生成模块30的功能。
[0057] 优化目标函数如下:
[0058] 其中 表示预测的用户评分;||·||F为F-范数;函数 连续可导,用于度量用户真实评分和预测评分之间的差异,λU、λu、λB、λv、λb为正规化参数。
[0059] 选择单元23,用于随机选择观察到的评分:在观察到的评分矩阵R中随机选择一个非空的元素ri,j。
[0060] 计算单元24,用于计算梯度:通过优化目标函数,对每一个用户i计算用户条件偏好Ui、ui和Bi的梯度,计算方法如下:
[0061]
[0062]
[0063]
[0064] 通过优化目标函数,对每一个物品j计算物品特征vj和bj的梯度,计算方法如下:
[0065]
[0066]
[0067] 更新单元25,用于更新用户条件偏好和物品特征:对每一个用户i更新用户条件偏好Ui、ui和Bi,更新方法如下:
[0068] Ui←Ui-ηΔUi
[0069] ui←ui-ηΔui
[0070] Bi←Bi-ηΔBi
[0071] 对每一个物品j,更新物品特征vj和bj,更新方法如下:
[0072] vj←vj-ηΔvj
[0073] bj←bj-ηΔbj
[0074] 其中,η为学习率;
[0075] 启动判断单元22的功能。
[0076] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
[0077] 可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。