一种融合矩阵分解和挖掘用户项目信息的CF推荐方法技术

技术编号:21089954 阅读:25 留言:0更新日期:2019-05-11 10:06
本发明专利技术提供一种融合矩阵分解和挖掘用户项目信息的CF(协同过滤)推荐方法,包括以下步骤:读取用户对物品的历史评分数据、项目类型数据信息;基于FunkSVD模型优化分解用户评分矩阵,加入相似度因子计算生成用户评分预测矩阵;通过优化占据不同比重的CF用户和项目信息计算最优相似度,预测用户评分,产生Top‑N推荐列表。本发明专利技术的优点:(1)基于FunkSVD模型优化分解用户评分矩阵,加入信任度因子预测用户评分矩阵,缓解传统矩阵分解模型因数据稀疏造成预测准确度不高的问题;(2)基于用户信息和项目信息计算相似度,解决传统推荐算法过度依赖历史数据导致冷启动问题;(3)引入用户之间的信任度关系,提高传统CF推荐算法的推荐精度和可解释性。

A CF Recommendation Method Fusing Matrix Decomposition and Mining User Project Information

【技术实现步骤摘要】
一种融合矩阵分解和挖掘用户项目信息的CF推荐方法
本专利技术属于电影推荐
,涉及一种融合矩阵分解和挖掘用户项目信息的CF电影推荐方法。
技术介绍
在大数据智能时代,个性化推荐系统,通过研究用户的喜好,实现从海量数据资源中为用户推荐其感兴趣的内容,通过学习、收集用户的信息,为用户提供比较精准的信息推荐服务,能让用户花更少的代价获取自己想要的信息,用于帮助客户从Internet大量数据信息中获得符合其兴趣偏好和需求的资源。在电影推荐领域,协同过滤推荐技术是目前推荐系统中最成功的技术之一,分为基于用户的协同过滤和基于项目的协同过滤两大类。基于用户的协同过滤是基于相似的用户具有相似的兴趣爱好,相似的用户对一些项目的评分也比较相似。传统的协同过滤推荐技术,主要是通过寻找与目标用户兴趣爱好相似的用户,并根据其喜爱的项目,对目标用户喜爱的项目进行预测,产生推荐。基于项目的协同过滤将每个被目标用户评分的项目与所有其他未评分的项目进行比较,找到最相似的邻居项目,然后对相似度高的邻居项目进行评分预测,按照从高到低排序并将评分最高的前N个相似物品推荐给目标用户。虽然协同过滤推荐算法在信息过滤方面呈现出了极大的优势,但随着电子商务和社交网络的快速发展和相互间的不断融合,该算法在不同领域中的应用也出现一些问题,尤其是冷启动问题和数据稀疏性问题更加凸显。针对这些问题,提出基于用户信任度的FunkSVD算法优势解决数据稀疏问题,基于修正用户和项目相似度的CF推荐算法解决冷启动问题,以此来提高推荐算法的精度。
技术实现思路
本专利技术目的是提供一种融合矩阵分解和挖掘用户项目信息的CF电影推荐方法,该算法以用户信息、项目信息和用户—项目评分信息为输入数据,通过训练模型来预测项目的评分。向不同的用户个性化地推荐其可能感兴趣的电影,克服了传统算法中的数据稀疏、冷启动和可扩展性弱等问题,同时提高推荐算法的精度实现定制化推荐。为实现上述目的,本专利技术采用的技术方案如图1融合矩阵分解和挖掘用户项目信息的CF推荐方法流程图;包含矩阵分解模块、构建用户信任度模型模块、修正用户相似度模块、修正项目相似度模块,对以上四个模块分别进行设计。所述矩阵分解模块,用于将用户一项目评分矩阵降维,以达到实现降低复杂度、保持扩展性等要求。所述构建用户信任度模型模块,用于度量用户之间的直接信任值,以达到提升推荐质量要求。所述修正用户相似度模块,用于精准计算用户相似度,以达到用户最近邻的定位更加准确要求。所述修正项目相似度模块,用于精准计算项目相似度,以达到项目最近邻的定位更加准确要求。一种融合矩阵分解和挖掘用户项目信息的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)中根据不同场景选取占用不同比例的用户相似度和项目相似度,用户较少物品较多的场景适用于用户相似度占大比重,用户较多物品较少的场景适用于项目相似度占大比重,取用户-本文档来自技高网...

【技术保护点】
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×kQ...

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:靳其兵宋霞宋丹周星
申请(专利权)人:北京化工大学北京国控天成科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1