一种基于内容与协同过滤相结合的个性化推荐方法与流程

文档序号:15047447发布日期:2018-07-27 23:00阅读:165来源:国知局

本发明涉及大数据的个性化推荐技术领域,尤其涉及一种基于内容和协同过滤相结合的个性化推荐方法。



背景技术:

信息时代,信息也成为了一种资源。信息时代的迅猛发展加快了整个世界的进步,加快了人们生活的节奏,时间利用的有效性成为了关键。而与此相违背的爆炸性的数据量又是一个亟待解决的问题。在此背景下,推荐系统的产生和发展的合理性也就众所周知。为用户在较短时间内选择到针对他的喜好物品是推荐系统的目标。

已有的基于内容和协同过滤的推荐算法都存在着各自的缺陷,特别是协同过滤的冷启动问题以及基于内容的推荐单一性问题都不能使这两种推荐系统达到预想的推荐效果。



技术实现要素:

本发明所要解决的技术问题是针对背景技术中所涉及到的缺陷,提供一种基于内容和协同过滤相结合的个性化推荐方法,使用基于内容的方式解决冷启动问题,又用协同过滤来提高推荐的精确度和推荐物品的多样性,从而改善了系统推荐的效果。

本发明为解决上述技术问题采用以下技术方案:

一种基于内容和协同过滤相结合的个性化推荐方法。具体的技术方案,包括训练和个性化推荐两个阶段:

步骤1:训练:

步骤1-1:平台采集已有用户的用户数据,所述用户数据包括用户的个人信息及其历史行为特征、以及用户对物品的评分数据,形成用户评分矩阵rm×n,其中,m表示已有用户的数量,n表示平台中已有物品的数量;

步骤1-2:根据采集的用户数据对用户进行聚类,使用聚类算法将用户划分为m个聚类,并设定和所述m个聚类一一对应的m个虚拟用户;

步骤1-3:在每个聚类中,根据用户的历史行为特征分析已有用户对已有物品特征属性的喜好程度,喜欢以1表示、不喜欢以-1表示、不关心以0表示,形成已有用户-物品特征属性矩阵dc×k,并针对每一个特征属性取所有用户喜好程度的平均值以此作为该聚类的虚拟用户对该特征属性的喜好程度,形成虚拟用户-物品特征属性矩阵pm×k,其中,c为一个聚类中已有用户的个数,k为已有物品的所有特征属性的数量;

步骤1-4:根据提取的已有物品的所有特征属性,对每个新物品进行判断,新物品具备的特征属性以1表示,新物品不具备的特征属性以0表示,得到新物品-物品特征属性矩阵qn×k,其中,n为新物品的数量;

步骤1-5:将矩阵pm×k与矩阵qn×k的转置做内积运算,得到虚拟用户-新物品预推荐矩阵fm×n,矩阵中每一元素即代表虚拟用户对于相应新物品的预评分;

步骤1-6:筛选出矩阵fm×n每列向量的最高预评分对应的虚拟用户,对以这些虚拟用户为代表的用户进行预推荐;

步骤1-7:根据用户对新物品的反馈,采集评分,更新用户评分矩阵rm×n;

步骤1-8:将更新的用户评分矩阵rm×n进行矩阵分解,获得用户评分矩阵rm×n中物品未得到的用户评分;

步骤2:个性化推荐:

步骤2-1:采集新用户个人信息,进行数据预处理;

步骤2-2:将采集的新用户数据量化,由相似性公式分别计算新用户与m个聚类的相似性,选取相似度最高的聚类为新用户的所属聚类,且新用户能够用其所属聚类对应的虚拟用户表示;

步骤2-3:根据新用户所属聚类对应的虚拟用户及虚拟用户-新物品预推荐矩阵fm×n,向新用户进行新物品推荐;

步骤2-4:新用户在得到物品推荐、产生历史行为特征、更新用户评分矩阵后,通过对用户评分矩阵rm×n进行矩阵分解以预测用户对其未评分物品的评价,通过预测的评分高低将高评分的物品推荐给用户,使用户获得更多物品推荐。

进一步,步骤1-1中个人信息指的是能够用于用户相似性聚类的用户信息,一般为性别,年龄,职业等,用户行为特征一般是对某件物品浏览的次数,驻留时间,加入关注,购买等行为。然后将抽取的特征并量化,比如用户信息可以量化为向量u=[gender,age1…age10,profession1,profession2…,professionn],若性别为男,gender为1,反之为0;若0<age<=10,age1=1,反之为0;若10<age<=20,age2=1,反之为0;若age>90,age10=1,反之为0;用户属于某个职业professioni,professioni=1,反之为0;得到向量u后可直接用于计算用户相似性或者用户相似性聚类.比如考虑用户浏览物品的驻留时间和频率,用户行为特征可以量化为,b1=[freq1,freq2,…,freqn],freqj=(用户浏览物品j的次数)/(用户对所有商品浏览的总次数);b2=[t1,t2,…,tn],tj=(在一次会话中浏览物品j的时间)/(在一次会话中浏览物品的总时间);b=b1+b2,b[j]的值越大,代表用户越喜欢该物品j,向量可直接用于计算用户相似性或者用户相似性聚类;比如用户评价信息可以这样量化:5星评价对应1-5分,形成用户评分矩阵rm×n:

m表示用户的数量,n表示物品的数量,rij表示用户i对物品j的评价。r[i]代表用户i对所有商品的评价(评价矩阵的第i行)。

进一步,步骤1-2中根据用户的个人信息,行为特征,对用户相似性聚类,其中,提取用户自身的个人信息,通常为性别,年龄,职业等,并量化为用户特征属性向量u=[u1,u2,…,ul],l为用户属性维度;提取用户的行为特征,通常为浏览物品,购买物品等行为,并量化为用户行为特征向量b=[b1,b2,…,bs],s为用户行为特征维度;提取用户i对物品的评价向量r[i]=[ri1,ri2,…,rin],n为物品数量;一般主要以u,b,r[i]向量作为用户相似性度量进行聚类。若用户usera的特征属性向量分别为ua,ba,r[a],用户userb的特征属性向量分别为ub,bb,r[b],用户usera,userb之间的相似性sim(usera,userb)=αsim(ua,ub)+βsim(ba,bb)+γsim(r[a],r[b]),其中,α+β+γ=1,相似性度量sim()值的获取可采用余弦相似性度量、调整余弦相似性度量、peason相关系数度量三种度量方法中的一种;由用户相似性度量sim(usera,userb)作为相似距离,根据聚类算法将用户聚类,得到m个用户聚类u1,u2,…,um,聚类算法可以采用kmeans.sim(usera,userb)的计算方法影响聚类结果,继而影响基于用户聚类的预测模型对未评价物品的预测精度,训练阶段调节α,β,γ使得预测误差最小。

进一步,步骤1-3中在每个聚类中,根据用户的历史行为特征分析已有用户对已有物品属性的喜好程度,喜欢以1表示、不喜欢以-1表示、不关心以0表示。比如物品为电影,对于提取出的特征属性如电影演员、导演、上映时间、电影风格等进行喜好考察;若该用户喜欢actor1,则actor1=1;若该用户不关心actor1,则actor1=0;若该用户讨厌actor1,则actor1=-1。形成已有用户-物品特征属性矩阵dc×k:

k表示特征属性的数量,c表示一个聚类中已有用户的个数,dck表示已有用户c对k这个特征属性的喜好程度。d[c]代表已有用户c对所有属性的喜好程度(已有用户-物品特征属性矩阵的第c行)。

针对每一个属性取所有用户喜好程度的平均值pvk以此作为该聚类的虚拟用户v对该属性k的喜好程度,形成虚拟用户-物品特征属性矩阵pm×k:

其中k表示特征属性的数量,m表示虚拟用户的数量,pvk表示虚拟用户v是否喜欢k这个特征属性。p[v]代表虚拟用户v对所有属性的喜好程度(虚拟用户-物品特征属性矩阵的第v行)。

进一步,步骤1-4中根据提取的已有物品的所有特征属性,对每个新物品进行判断,新物品具备的特征属性以1表示,新物品不具备的特征属性以0表示。比如物品为电影,则通常提取电影演员、导演、上映时间、电影风格等k个特征属性,考察n个电影的特征属性,若该电影有actor1出演,则actor1=1,反之为0;若该电影由director1导演,则director1=1,反之为0,形成新物品-物品特征属性矩阵qn×k:

k表示特征属性的数量,n表示新物品的数量,qgk表示新物品g是否具备k这个特征属性。q[g]代表新物品g具备的所有属性(新物品-物品特征属性矩阵的第g行)。

进一步,步骤1-5中将矩阵pm×k与矩阵qn×k的转置做内积运算,得到虚拟用户-新物品预推荐矩阵fm×n:

m表示虚拟用户的数量,n表示新物品的数量,fvg表示虚拟用户v对新物品g的喜好程度。f[v]代表虚拟用户v对所有新物品的喜好程度(虚拟用户-新物品预推荐矩阵的第v行)。

进一步,步骤1-6中筛选出矩阵fm×n每列向量的最高预评分对应的虚拟用户,对以这些虚拟用户为代表的用户进行预推荐;

进一步,步骤1-7中用户在得到新物品推荐后,对新物品产生了评分,由此更新用户评分矩阵rm×n。

进一步,步骤1-8中对更新后的用户评分矩阵rm×n进行矩阵分解,常用奇异值分解(svd)的方法:

其中代表预测评级,μ代表所有物品的平均评分,bi和bj分别代表用户和物品在平均水平上的个性化偏差,qjt代表物品向量,r(i)表示用户i评过分的商品集合,n(i)表示用户i浏览过但没有评过分的商品集合,xk和yk分别是用户评过分的商品属性和用户浏览尚未评分的商品属性;

这里为了防止模型的过度拟合,为参数加上正则化惩罚:

其中sse=∑i,jeij2,λ代表正则化系数。

进一步,步骤2-1中提取的新用户数据需要量化,量化方法可以与步骤1-2相同,可以得到用户自身的特征属性向量u=[u1,u2,…,ul]。

进一步,步骤2-2中判断用户所属聚类,即能够被某一虚拟用户代表的方法进一步说明如下,有m个聚类核心(u1,u2,…,um),计算用户u与每一个聚类核心的相似度sim(u,uv),v=1,2,3…m;有max(sim(u,uv)),则用户u属于第v个聚类,可由第v个虚拟用户代表。

进一步,步骤2-3中根据新用户所属聚类以及虚拟用户-新物品预推荐矩阵将新物品推荐给新用户。

进一步,步骤2-4中新物品被推荐给新用户后,新用户产生了历史行为特征,用户评分矩阵更新后,以此为基础进行矩阵分解,推荐更多的物品给新用户。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

本发明采用基于内容与协同过滤相结合的方法,有效解决了协同过滤方法带来的冷启动问题,对于新加入的物品进行预推荐,可以得到用户对于新物品的评分,由此更新用户评分矩阵,与此同时,结合协同过滤,采用奇异值分解(svd)的方法,弥补所缺省的用户对物品的评价,丰富了推荐物品的种类,也提高了推荐的精确度。其中,通过聚类算法生成虚拟用户大大降低了矩阵维数,同时降低了计算的复杂度。本发明对于新加入的物品来说,拥有更大的被推荐的可能性,这也符合大众对于新事物的关注需求。

附图说明

图1是本发明的流程示意图。

具体实施方式

下面结合附图对本发明的技术方案做进一步的详细说明:

如图1所示,一种基于内容和协同过滤相结合的个性化推荐方法。该方法分为训练和个性化推荐两个阶段。

训练阶段,包含数据采集及预处理、已有用户的相似度聚类、得到虚拟用户-特征属性矩阵、新物品-特征属性矩阵、虚拟用户-新物品预推荐矩阵、新物品预推荐、新物品评分采集、矩阵分解八个子步骤。

在数据采集及预处理部分,平台采集用户个人信息,个人信息通常为性别,年龄,职业等。用户行为特征,通常为浏览物品,购买物品等行为,以及用户对物品的评价形成评价矩阵rm×n等数据

rij用户i对物品j的评价;m为用户数量;n为物品数量。

在用户相似性聚类部分,提取用户自身的个人信息,通常为性别,年龄,职业等,并量化为用户特征属性向量u=[u1,u2,…,ul],l为用户属性维度;

提取用户的行为特征,通常为浏览物品,购买物品等行为,并量化为用户行为特征向量b=[b1,b2,…,bs],s为用户行为特征维度;

提取用户对物品的评价并量化为用户评价向量r[i]=[ri1,ri2,…,rin],n为物品数量;

一般主要以u,b,r[i]向量作为用户相似性度量进行聚类。若用户usera的特征属性向量分别为ua,ba,r[a],用户userb的特征属性向量分别为ub,bb,r[b],用户usera,userb之间的相似性sim(usera,userb)=αsim(ua,ub)+βsim(ba,bb)+γsim(r[a],r[b]),α+β+γ=1。

相似性度量sim()值的获取可采用余弦相似性度量,调整余弦相似性度量,peason相关系数度量三种度量方法中的一种。

由用户相似性度量sim(usera,userb)作为相似距离,根据聚类算法将用户聚类,聚类算法可以采用kmeans.sim(usera,userb)的计算方法影响聚类结果,继而影响基于用户聚类的预测模型对未评价物品的预测精度,训练阶段调节α,β,γ使得预测误差最小。

需要进一步说明,需要将抽取的用户信息量化,比如用户信息可以量化为向量u=[gender,age1…age10,profession1,profession2…,professionn],若性别为男,gender为1,反之为0;若0<age<=10,age1=1,反之为0;若10<age<=20,age2=1,反之为0;若age>90,age10=1,反之为0;用户属于某个职业professioni,professioni=1,反之为0;得到向量u后可直接用于计算用户相似性或者用户相似性聚类。

比如考虑用户浏览物品的驻留时间和频率,用户行为特征可以量化为,b1=[freq1,freq2,…,freqn],freqj=(用户浏览物品j的次数)/(用户对所有商品浏览的总次数);b2=[t1,t2,…,tn],tj=(在一次会话中浏览物品j的时间)/(在一次会话中浏览物品的总时间);b=b1+b2,b[j]的值越大,代表用户越喜欢该物品j,向量可直接用于计算用户相似性或者用户相似性聚类;比如用户评价信息可以这样量化:若评价为5星评价对应1-5分,若评价为好评差评对应0和1,用户评价矩阵rm×n,m代表用户的数量,n代表物品的数量,r[i][j]代表用户i对物品j的评价。

若r[i]代表用户i对所有商品的评价(评价矩阵的第i行),给出相似评价的用户具有相似性,r[i]可直接用于用户相似性计算或者相似性聚类。以上亦可使用其他的信息量化的方法。在这里,综合用户的特征向量u,b,r[i]计算相似性及聚类。

在得到虚拟用户-特征属性矩阵pm×k部分,在每个聚类中根据用户历史行为特征分析已有用户对已有物品属性的喜好程度,喜欢则以1表示,不喜欢则以-1表示,不关心则以0表示,比如物品为电影,对于提取出的特征属性如电影演员、导演、上映时间、电影风格等进行喜好考察;若该用户喜欢actor1,则actor1=1;若该用户不关心actor1,则actor1=0;若该用户讨厌actor1,则actor1=-1。形成已有用户-物品特征属性矩阵dc×k:

k表示特征属性的数量,c表示一个聚类中已有用户的个数,dck表示已有用户c对k这个特征属性的喜好程度。d[c]代表已有用户c对所有属性的喜好程度(已有用户-物品特征属性矩阵的第c行)。

针对每一个属性取所有用户喜好程度的平均值pvk以此作为该聚类的虚拟用户v对该属性k的喜好程度,形成虚拟用户-物品特征属性矩阵pm×k:

其中k表示特征属性的数量,m表示虚拟用户的数量,pvk表示虚拟用户v是否喜欢k这个特征属性。p[v]代表虚拟用户v对所有属性的喜好程度(虚拟用户-物品特征属性矩阵的第v行)。

在得到新物品-物品特征属性矩阵qn×k部分,根据提取的已有物品的所有特征属性,对n个新物品进行一一考察是否具备此特征,具备此特征则以1表示,否则以0表示,比如物品为电影,则通常提取电影演员、导演、上映时间、电影风格等k个特征属性,考察n个电影的特征属性,若该电影有actor1出演,则actor1=1,反之为0;若该电影由director1导演,则director1=1,反之为0,形成新物品-物品特征属性矩阵qn×k:

k表示特征属性的数量,n表示新物品的数量,qgk表示新物品g是否具备k这个特征属性。q[g]代表新物品g具备的所有属性(新物品-物品特征属性矩阵的第g行)。

在得到虚拟用户-新物品预推荐矩阵部分,将得到的用户-物品特征属性矩阵pm×k与新物品-物品特征属性矩阵qn×k的转置做内积运算,得到用户-新物品预推荐矩阵fm×n:

m表示虚拟用户的数量,n表示新物品的数量,fvg表示虚拟用户v对新物品g的喜好程度。f[v]代表虚拟用户v对所有新物品的喜好程度(用户-新物品预推荐矩阵的第v行)。

在预推荐部分,根据虚拟用户-新物品预推荐矩阵fm×n,考察每列向量(对应每个新物品),选取最高预评分对应的虚拟用户,对以该虚拟用户为代表的一系列用户进行预推荐。

在新物品评分采集部分,通过对用户的预推荐,新物品产生了评分,由此更新用户评分矩阵rm×n。

在矩阵分解部分,对更新后的用户评分矩阵rm×n进行矩阵分解,常用奇异值分解(svd)的方法:

其中代表预测评级,μ代表所有物品的平均评分,bi和bj分别代表用户和物品在平均水平上的个性化偏差,qjt代表物品向量,r(i)表示用户i评过分的商品集合,n(i)表示用户i浏览过但没有评过分的商品集合,xk和yk是商品的属性。

这里为了防止模型的过度拟合,为参数加上正则化惩罚:

其中sse=∑i,jeij2,λ代表正则化系数。

个性化推荐阶段,包含新用户数据采集及预处理、基于用户属性判定所属聚类、基于协同过滤向新用户推荐新物品、基于矩阵分解扩大推荐物品范围。

在新用户数据采集及预处理部分,提取用户自身的特征属性并量化为向量u=[u1,u2,…,ul],收集用户的行为特征并量化为向量b=[b1,b2,…,bs]。

在基于用户属性判定所属聚类部分,有m个聚类核心(u1,u2,…,um),计算用户u与每一个聚类核心的相似度sim(u,uv),v=1,2,3…m;有max(sim(u,uv)),则用户u属于第v个聚类,可由第v个虚拟用户代表。

在向新用户推荐新物品部分,根据新用户所属聚类以及虚拟用户-新物品预推荐矩阵将新物品推荐给新用户。

在基于协同过滤扩大推荐物品范围部分,新物品被推荐给新用户后,新用户产生了历史行为特征,以此为基础使用奇异值分解(svd)算法进行协同过滤推荐

其中代表预测评级,μ代表所有物品的平均评分,bi和bj分别代表用户和物品在平均水平上的个性化偏差,qjt代表物品向量,r(i)表示用户i评过分的商品集合,n(i)表示用户i浏览过但没有评过分的商品集合,xk和yk分别是用户评过分的商品属性和用户浏览尚未评分的商品属性;

这里为了防止模型的过度拟合,为参数加上正则化惩罚:

其中sse=∑i,jeij2,λ代表正则化系数。

以便推荐更多的物品给用户。

本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1