[发明专利]一种融合矩阵分解和挖掘用户项目信息的CF推荐方法有效
申请号: | 201910046947.9 | 申请日: | 2019-01-18 |
公开(公告)号: | CN109740064B | 公开(公告)日: | 2021-08-17 |
发明(设计)人: | 靳其兵;宋霞;宋丹;周星 | 申请(专利权)人: | 北京化工大学;北京国控天成科技有限公司 |
主分类号: | G06F16/9535 | 分类号: | G06F16/9535 |
代理公司: | 北京恒和顿知识产权代理有限公司 11014 | 代理人: | 揭玉斌 |
地址: | 100029 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种融合矩阵分解和挖掘用户项目信息的CF(协同过滤)推荐方法,包括以下步骤:读取用户对物品的历史评分数据、项目类型数据信息;基于FunkSVD模型优化分解用户评分矩阵,加入相似度因子计算生成用户评分预测矩阵;通过优化占据不同比重的CF用户和项目信息计算最优相似度,预测用户评分,产生Top‑N推荐列表。本发明的优点:(1)基于FunkSVD模型优化分解用户评分矩阵,加入信任度因子预测用户评分矩阵,缓解传统矩阵分解模型因数据稀疏造成预测准确度不高的问题;(2)基于用户信息和项目信息计算相似度,解决传统推荐算法过度依赖历史数据导致冷启动问题;(3)引入用户之间的信任度关系,提高传统CF推荐算法的推荐精度和可解释性。 | ||
搜索关键词: | 一种 融合 矩阵 分解 挖掘 用户 项目 信息 cf 推荐 方法 | ||
【主权项】:
1.一种融合矩阵分解和挖掘用户项目信息的CF推荐方法,包含矩阵分解模块、构建用户信任度模型模块、修正用户相似度模块、修正项目相似度模块;所述矩阵分解模块,用于将用户一项目评分矩阵降维,以达到实现降低复杂度、保持扩展性等要求;所述构建用户信任度模型模块,用于度量用户之间的直接信任值,以达到提升推荐质量要求;所述修正用户相似度模块,用于精准计算用户相似度,以达到用户最近邻的定位更加准确要求;所述修正项目相似度模块,用于精准计算项目相似度,以达到项目最近邻的定位更加准确要求;对以上四个模块分别进行设计,包括以下步骤:(1)处理用户‑项目评分矩阵,先将用户历史电影评分数据的训练集预处理为m*n的用户电影评分矩阵R;m表示为m个用户,n表示为n部电影;(2)对用户‑项目评分矩阵进行分解,将维数较高的用户‑项目评分矩阵R分解成两个维数较低的矩阵P和Q的乘积;(3)利用原始的评分矩阵Rm*n与重新构建的评分矩阵之间的误差的平方,建立修正的误差函数SSE;(4)通过改进的梯度下降法降低SSE,改进的梯度下降法求解主要分为两步进行,第一步求解SSE的偏导数,第二步为了防止过拟合现象,对误差函数SSE加入正则化进行计算;(5)利用用户‑项目评分矩阵建立用户信任度,融合上述所获得的P和Q矩阵预测未评分电影评分;(6)将用户信息中的年龄、性别加入相似度计算,建立修正的用户相似度;(7)将项目信息中的电影类型加入相似度计算,建立修正的项目相似度;(8)根据用户和项目信息的大小选取占用不同比例的用户相似度和项目相似度,取用户‑项目最优相似度,预测计算未评分电影评分;(9)将前述步骤训练所得用户对未评分项目的预测评分进行均值计算,并取评分较高的前N个物品推荐给用户;所述步骤(1)中的用户‑项目评分矩阵建立如下:将用户历史电影评分行为数据的训练集预处理为m*n的R,其中,m表示为m个用户,n表示为n部电影,rui表示用户u对电影i的评分;所述步骤(2)中将用户‑项目评分矩阵R分解为两个低维的矩阵P和Q,具体计算如下:Rm×n=Pm×kQTn×k其中,R为m*n的用户‑项目评分矩阵,其中m为用户数量,n为项目数量,P为m*k的矩阵,表示m个用户与k个项目的关系,Q为k*n矩阵,表示k个主题和n个项目的关系;假设x代表P中的元素,y代表Q中的元素,则矩阵R的元素值为:
xTm表示P矩阵m行的列矩阵的转置,yn表示第n列的矩阵;步骤(3)中建立误差函数e,利用原始的评分矩阵Rm*n与重新构建的评分矩阵之间的误差的平方,其误差emn计算如下所示:
其修正的误差函数计算如下:
上式中,SSE代表P,Q分解接近R的程度,SSE越小,则表示越接近原始矩阵;步骤(4)中改进的梯度下降法求解目标函数分为两步进行:第一步分别对P和Q矩阵中的点进行梯度求解,![]()
eui指用户u对项目i的评分的误差,得到目标函数在P矩阵和Q矩阵上参数的梯度,假设学习率为η,则可以得到更新后Puk和Qki的值为Puk=Puk‑η(‑2euiQki)=Puk+2ηeuiQkiQki=Qki‑η(‑2euiPuk)=Qki+2ηeuiPuk为了防止过拟合现象,对误差函数SSE加入正则化,则
λ是正则化参数,||·||是范数,这里采用二范式,按偏导求取各个参数的梯度后得出:![]()
同理,我们可以按负梯度方向更新得到Puk和Qki参数的值为:Puk=Puk+2η(euiQki‑λPuk)Qki=Qki+2η(euiPuk‑λQki)步骤(5)中利用用户‑项目评分矩阵建立用户信任度T(u),具体计算公式如下:
预测计算未评分电影的评分P1u,i;其计算公式如下所示:
其中T(u)表示用户间的信任程度,α是一个常量权重参数,用来控制用户间信任度对评分预测的影响;步骤(6)中计算用户之间的相似度,采用修正的余弦相似度,加入用户信息中的年龄、性别等信息,具体计算公式如下所示:
其中,A(u)表示由于用户性别引起的评分标准偏差,目标用户若是男性其计算公式如下所示:AF(u)=1‑Fu(σ)/(Fu(σ)+Mu(σ))目标用户若是女性其计算公式如下:AM(u)=1‑Mu(σ)/(Fu(σ)+Mu(σ))其中Fu(δ)表示男性用户的标准差,Mu(δ)表示女性用户的标准差;Bi(u)表示由于用户年龄引起的评分标准偏差,根据不同实验将年龄划分为0‑18,19‑24,25‑30,31‑40,41‑50,大于50,六个年龄段,再计算其年龄评分标准偏差;若目标用户是0‑18岁,其计算公式如下所示:
以此类推,其中B(δ)表示所有年龄的标准差总和;步骤(7)中计算项目之间的相似度,采用修正的余弦相似度,加入项目信息中的年电影类型等信息,具体计算公式如下所示:
其中C(u)表示由于电影类型引起的评分标准偏差,根据不同电影类型划分为Action(动作片)、Adventure(冒险片)、Comedy(喜剧片)等18类,再计算其评分标准偏差,其计算公式如下所示:
其中C(δ)表示所有电影类型的标准差总和;步骤(8)中根据不同场景选取占用不同比例的用户相似度和项目相似度,用户较少物品较多的场景适用于用户相似度占大比重,用户较多物品较少的场景适用于项目相似度占大比重,取用户‑项目最优相似度,其计算公式如下所示:Sim(u,i)=βSim(u,v)+(1‑β)Sim(i,j)其中,比重参数β∈[0,1],具体需要在测试数据集上反复实验;预测计算未评分电影评分P2a,i;其计算公式如下所示:
其中Sim(u,i)最优用户‑项目相似度,T(u)表示用户间的信任程度,Ru,i表示用户u对项目i的评分,
是用户u对已评价项目的平均评分;步骤(9)中将前述步骤训练所计算用户对未评分的每个物品的预测评分进行均值计算,其计算公式如下所示:Pu,i=1/2(P1u,i+P2u,i)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京化工大学;北京国控天成科技有限公司,未经北京化工大学;北京国控天成科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910046947.9/,转载请声明来源钻瓜专利网。