CN104199818B - 一种基于分类的社会化推荐方法 - Google Patents
一种基于分类的社会化推荐方法 Download PDFInfo
- Publication number
- CN104199818B CN104199818B CN201410313139.1A CN201410313139A CN104199818B CN 104199818 B CN104199818 B CN 104199818B CN 201410313139 A CN201410313139 A CN 201410313139A CN 104199818 B CN104199818 B CN 104199818B
- Authority
- CN
- China
- Prior art keywords
- user
- mrow
- project
- classification
- msub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于分类的社会化推荐方法,包括:构造用户对分类的评分矩阵:根据用户对项目的评分数据和项目的分类信息,构造初始用户分类矩阵;对初始用户分类矩阵做归一化处理,并使用矩阵分解方法重构用户分类矩阵;由用户的好友信息构造用户好友之间的信任度;根据用户分类矩阵中用户对项目所属分类的评分、使用社会化模型预测得到的用户对项目的评分以及用户好友之间的信任度,使用随机梯度下降法学习得到模型的参数,从而预测用户对项目的最终评分。本发明首次将项目分类信息引入社会化推荐方法中,能够在原有协同过滤推荐的基础上,整合用户的社会化信息和项目的分类信息,提高推荐精确度,解决推荐系统中面临的数据稀疏问题和冷启动问题。
Description
技术领域
本发明属于数据挖掘和推荐系统领域,更具体地,涉及一种基于分类的社会化推荐方法。
背景技术
协同过滤是推荐系统中应用最广泛最成功的技术,可以利用已有用户群过去的行为或意见预测当前用户最可能喜欢哪些东西或对哪些东西感兴趣。它基于这样的一个假设“和你喜好相似的人喜欢的东西你也很有可能喜欢”。协同过滤推荐一般分为基于内存的推荐和基于模型的推荐。基于内存的算法是推荐系统中最基本的算法,该算法不仅在学术界得到了深入研究,而且在工业界也得到了广泛的应用。基于内存的推荐又可以分基于用户的协同过滤和基于项目的协同过滤。基于模型的推荐根据用户过去对项目的评分,使用统计学习的方法给用户和项目建模,然后使用生成的模型来给用户推荐项目。然而数据稀疏问题和冷启动问题在现实场景中经常出现,潜在因子模型在这些场景中推荐效果很差。虽然研究人员提出社会化推荐模型把用户的社交网络信息引入到协同过滤模型中,在用户冷启动问题上有一定的作用,但是无法解决项目的冷启动问题。
Ma等人提出了社会化推荐模型SoRec,该模型把用户的社会化信息形成一个信任矩阵,对这个信任矩阵使用矩阵分解模型来建模,把信任矩阵分解中的用户因子和评分矩阵分解中的用户因子用同一个参数来代替,采用这种方式把用户的社会化信息融入协同过滤中,从而更加精确预测用户对项目的评分,试验结果表明该模型推荐效果比不使用社会化信息的协同过滤模型更好;虽然SoRec模型能够提高推荐精确度,但是也有一些缺点, 它的建模方法不符合实际,同时这种建模方法不具有很好的解释性,不能给用户一个直观的理解。
King等人提出了社会化推荐模型STE,在预测用户评分时,把用户好友对项目的评分按照用户的信任度加权到用户对项目的最终评分中,模型在对评分建模的时候有很好的解释性,同时在预测评分准确度上比之前的误差更低;但是这种建模方法也有一些缺点,因为STE模型仅仅考虑了用户的直接好友对他的影响,没有考虑到这种影响会随着用户的好友关系进行传播。
Jamali等人提出了SocialMF模型,与STE模型不同的是,STE模型中用户的潜在特征不受到他的好友的影响,用户好友影响的是用户对项目的最终评分,而在SocialMF模型中,用户的潜在特征受到用户好友的影响,因此SocialMF可以处理用户的信任传播,也就是如果用户a信任用户b,用户b信任用户c,那么表示用户a偏好的潜在因子会受到用户c潜在因子的影响。即使用户是新用户,没对项目做出任何评分,用户的潜在因子也可以由用户好友的潜在因子和用户对好友的信任度计算得到。
Zhou等人提出推荐模型SoReg,该模型把用户的社会化关系分为两种,一种为信任关系,一种为好友关系,认为这两种不同的关系应该用不同的模型来建模,并对好友关系提出了推荐模型,使用用户的好友信息来规则化矩阵分解中用户的潜在因子。
上述社会化推荐模型在建模时把用户信息融入到协同过滤中,在给新用户推荐时,使用用户的好友来辅助推荐,解决用户的冷启动问题,但是社会化推荐在项目冷启动问题上还有一定的局限性,因为用户及其好友都没有对新项目做出任何的评价,因此无法对新的项目做出很好的推荐。
发明内容
针对现有技术的缺陷,本发明首次将项目分类信息引入社会化推荐方法中,提供一种基于分类的社会化推荐方法,旨在解决现有推荐算法中所 面临的数据稀疏问题和项目的冷启动问题,提高推荐精确度。
为实现上述目的,本发明提供了一种基于分类的社会化推荐方法,包括:
(1)根据用户对项目的评分数据和项目的分类信息,构造初始用户分类矩阵;
(2)对初始用户分类矩阵做归一化处理,并使用矩阵分解方法重构用户分类矩阵;
(3)由用户的好友信息构造用户好友之间的信任度;
(4)根据用户分类矩阵中用户对项目所属分类的评分、使用社会化模型预测得到的用户对项目的评分以及用户好友之间的信任度,使用随机梯度下降法学习得到模型的参数,从而预测用户对项目的最终评分。
在本发明的一个实施例中,所述步骤(1)包括以下子步骤:
(1-1)用0值初始化初始用户分类矩阵,初始用户分类矩阵中的元素C’ik表示用户i对分类k的评分;
(1-2)读取用户对项目的评分记录;
(1-3)判断用户对项目的评分记录是否已经遍历完毕,如果没有遍历完毕转入步骤(1-4),如果遍历完则结束;
(1-4)读取用户对项目的评分Rij以及项目对应的分类信息k,Rij为用户i对项目j的评分,k为项目j所属分类;
(1-5)把初始用户分类矩阵中对应用户和分类位置上的元素加Rij,然后转入步骤(1-3)。
在本发明的一个实施例中,所述步骤(2)中对初始用户分类矩阵做归一化处理,具体包括:
(2-1)读取每个用户对分类的评分C’ik,选出评分中的最大值MAXk'∈GC'ik'和最小值MINk'∈GC'ik';
(2-2)使用公式对每个分类的评分C’ik做归一化处理,其中G为所有分类的集合。
本发明的一实施例中,步骤(2)中使用矩阵分解方法重构用户分类矩阵具体为,求公式的最小值,获得表示用户兴趣特征的潜在因子矩阵U和表示分类特征的潜在因子矩阵Z,使用表示用户特征的潜在向量和表示分类特征的潜在向量做内积,得到用户对分类的评分,进而获得用户对所有任何分类的评分;
其中,C∈Rm×l为用户对分类的评分矩阵,矩阵中有m位用户和l种分类,U∈Rd×m和Z∈Rd×l分别表示用户的潜在因子矩阵和分类的潜在因子矩阵,其中d表示潜在因子的数量,列向量Ui表示用户i兴趣偏好的向量,Zk为分类k的特征向量,用户对项目的评分构成矩阵R,用户对分类评分构成矩阵C,Rij为用户i对项目j的评分,Iij为指示函数,表示用户i是否对项目j有评分,Iij=1表示用户i对项目j有评分,Iij=0表示用户i对项目j没有评分,λU和λZ为规则化参数,以防过度拟合,为矩阵的Frobenius范数。
在本发明的一个实施例中,所述步骤(3)由用户的好友信息构造用户好友之间的信任度,可知用户i对用户j的信任度与信任j的用户数量成正比,与用户i信任的用户数量成反比,从而得到具体计算公式为:
其中Sij为用户i对用户j的信任程度,in(j)为信任j的用户数量,out(i)为用户i信任的用户数量。
在本发明的一个实施例中,所述步骤(4)中预测用户对项目的最终评分,具体根据下式计算:
其中为预测用户i对项目j的评分,其中Ui TVj为使用社会化推荐模型预测得到的用户对项目的评分,为用户对项目所属分类的预测评分,α是线性加权系数,表示社会化推荐得到对项目评分的比重;U、V、Z分别表示用户特征、项目特征和分类特征的参数矩阵,G(j)为项目j所属的分类集合,通过随机梯度下降法求得目标函数的最小值,并得到U、V、Z的参数值;目标函数为:
m为推荐系统中用户的数量,n为项目的数量,l为项目分类的数量,λC、λT、λU、λV和λZ为社会化推荐模型的规则化参数,以防模型过度拟合,为矩阵的Frobenius范数,C为构造的用户对分类的评分,S为用户之间的信任度矩阵,Siq表示用户i对用户q的信任度。和Iik C为指示函数,表示在用户对项目的评分矩阵R中,用户i是否对项目j有评分,Iij=1表示用户i对项目j有评分,Iij=0表示用户i对项目j没有评分;Iik C表示在用户对分类的评分矩阵C中,用户i是否对分类k有评分,Iik=1表示用户i对分类k有评分,Iik=0表示用户i对分类k没有评分。
与现有技术相比,本方法具有以下的有益效果:
(1)解决数据稀疏问题
在推荐系统中,用户对项目的评分数据非常稀疏,会导致现有模型产生低质量的推荐,基于分类的社会化推荐方法中,构造了用户对分类的评分矩阵,相对用户对项目的评分来说,由于分类的数量远远小于项目的数量,因此用户对分类的评分比用户对项目的评分稠密,缓解了数据稀疏问题,用户对分类的评分可以用来辅助预测用户对项目的评分。
(2)解决用户冷启动和项目冷启动问题
基于分类的社会化推荐方法中,考虑了用户好友对项目的评分和用户对分类的评分,可以同时解决用户冷启动问题和项目冷启动问题,当新用户到来时,用户好友对项目的评分可以用来帮忙预测用户对项目的评分,当新项目到来时,用户对项目所属分类的评分可以提高预测用户对项目评分的准确度。
(3)良好的计算时间复杂度
通过对基于分类的社会化推荐方法的复杂度分析可知,该模型的时间复杂度和用户对项目的评分数量线性相关,因此在使用训练数据建模的时候不需要花费很长的时间。
附图说明
图1是基于分类的社会化推荐模型;
图2是基于分类的推荐系统模型的训练过程;
图3是使用随机梯度法求模型参数的过程。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
推荐系统过程整体可以分为三步:(1)把原始数据做预处理,按照一定的比例把原始数据分为两部分,一部分为训练集,一部分为测试集。(2)使用训练集进行迭代计算训练模型,从而得到推荐模型。(3)用得到的模型预测测试集的数据,并计算预测数据和真实测试集数据的误差。
基于分类的社会化推荐方法把分类信息整合到社会化推荐中,在预测用户对项目的评分时,把用户对项目所属分类的评分作为一部分线性加权到用户对项目的评分中,但是现有提供推荐服务的方法中没有用户对分类 评分的数据,用户对分类的评分信息不能直接从原始数据集中获取。
这里设计一种算法,该算法可以根据用户的历史评分信息,使用统计学习的方法得到用户对分类的评分信息,假设用户对项目的评分构成矩阵R,用户对分类评分构成矩阵C',Rij为用户i对项目j的评分,Iij为指示函数,表示用户i是否对项目j有评分,Iij=1表示用户i对项目j有评分,Iij=0表示用户i对项目j没有评分。用户对项目的评分矩阵R是已知的,而用户对分类的评分矩阵C是未知的,现在要通过用户对项目的评分来构造用户对分类的矩阵C,设Cik为用户i对分类k的评分,那么有:
其中F(i)是用户i历史评分的项目集合,G(j)是项目j所属的分类集合,使用公式(1)和用户对项目的评分矩阵R,可以得到用户对分类的评分矩阵C。在公式中,考虑了一个项目属于多个分类的情况,对于属于多个分类的项目,在计算对分类评分时,需要给项目所属的每一个分类评分进行相加。用户对项目的评分矩阵R中,由于用户对项目的评分的数量服从Zipf分布,数据的分布不均衡,用户可能对属于某一个分类的项目评分数量比较多,而对属于另外一个分类的项目评分数量很少。这样会导致在矩阵C中,存在一些元素值很小为1甚至是0,存在另外一些元素比较大,可能达到几十或者上百。因为矩阵C中的元素为用户对分类的评分,其值在后面预测用户对项目的评分时会使用到,因此取值范围不宜很大,采用公式(2)把矩阵C用户对分类的评分范围限定到0到1之间。
其中MINk'∈GCik'为用户i对所有分类评分中的最小值,MAXk'∈GCik'是用户i对所有分类评分中的最大值。
依据用户对项目的评分历史构造了用户对分类的评分矩阵,但是在使用公式(1)和公式(2)得到的用户对分类的评分矩阵中,存在一些元素 的值为0。如果用户对于某个分类中的任何一个项目没有评分,那么用户对该分类的评分为0。由于用户对项目评分数据非常稀疏,在构造的用户对分类的评分矩阵C中,用户对分类评分为0的情况比较常见。在使用用户分类评分矩阵时,不能因为矩阵中元素值为0就认为用户对该分类的评分为0。这里采用矩阵分解的方法来重构用户分类评分矩阵,通过矩阵分解来得到用户对所有分类的评分。
分解用户对分类的评分矩阵和分解用户对项目的评分矩阵的方法相似,首先采用机器学习的方法求得用户的潜在因子向量和分类的潜在因子向量,然后使用代表用户的特征向量和代表分类的特征向量来计算用户对分类的评分。
假设C∈Rm×l为用户对分类的评分矩阵,矩阵中有m位用户和l种分类,U∈Rd×m和Z∈Rd×l分别表示用户的潜在因子矩阵和分类的潜在因子矩阵,其中d表示潜在因子的数量,列向量Ui表示用户i兴趣偏好的向量,Zk为分类k的特征向量,Cik为用户i对分类k的评分,可以由Ui和Zk的内积计算得到。因此,用户对分类的评分矩阵C关于用户特征U和分类特征Z的条件分布如下所示:
其中为方差,Iik C是指示函数,在用户对分类的评分矩阵中,当Cik为0时,Iik C也为0,当Cik的值不为0时,Iik C的值为1。同时为了防止过度拟合的问题,对用户矩阵U和分类矩阵Z都使用均值为0方差为σ2的高斯分布。因此有:
同理,由贝叶斯公式,可以得到用户矩阵U和分类矩阵Z关于评分矩 阵C的后验分布:
对式(6)求对数进行化简,然后去掉和参数U、Z无关的选项后得到下面的目标函数。
其中λU和λZ为规则化参数,等式(7)的最小值可以采用随机梯度下降法计算得到,从而可以获得表示用户兴趣特征的潜在因子矩阵U和表示分类特征的潜在因子矩阵Z。
使用表示用户特征的潜在向量和表示分类特征的潜在向量做内积,可以得到用户对分类的评分,进而可以获得用户对所有任何分类的评分。
在获得用户对分类的评分之后,可以把该评分线性加权到用户对项目的评分中,得到基于分类的社会化推荐模型,如图1所示,预测用户对项目的评分由两部分构成,一个是由社会化推荐模型预测的用户对项目的评分,在图中由R2表示,另外一个是用户对项目所属分类的评分,在图中由R1表示。预测用户对项目的评分由R1和R2的线性加权得到。因此有:
其中G(j)是项目j所属的分类集合,α是线性加权系数,在基于分类的社会化矩阵分解模型中,用户潜在因子矩阵U,项目潜在因子矩阵V和项目分类的潜在因子矩阵Z关于用户对项目评分矩阵R和用户对分类的评分矩阵C的后验分布的对数为:
其中,σ2为方差,S为用户的信任矩阵,Siq为用户i对用户q的信任度,T(i)为用户i信任的用户集合,m为推荐系统中用户的数量,n为项目的数量,l为项目分类的数量,d为潜在因子的数量,F和参数U、V、Z无关,是一个常数,根据极大似然估计,要计算合适的参数U、V和Z使得目标函数值最大,对等式(9)做一些简单的数学变换就可以得到,它的最大值和等式(10)的最小值等价。
其中λC、λT、λU、λV和λZ为模型的规则化参数,以防模型过度拟合, 为矩阵的Frobenius范数。使用梯度下降法可以求得参数U,V和Z使目标函数L达到最小值,梯度下降法的计算公式为:
其中参数ω为梯度下降法中的学习率,如果ω值较大,则算法收敛速度较快,但是计算得到的不够精确,如果ω过小,则收敛速度慢,计算得到的参数要精确一些,它的值在实验时根据经验来设定,同时在每一轮迭代后使其减小1%。目标函数对参数的梯度如公式(12)所示。
如图2所示,为本发明一实施例中利用本发明推荐方法进行用户评分的示意图。首先对原始数据做数据提取和预处理,在数据提取中需要把原始数据分为训练集和测试集,对原始数据做预处理,构建用户之间的信任度矩阵,同时提取项目和分类的对应关系;然后对模型进行迭代训练,在迭代训练过程中,需要对用户特征、项目特征和分类特征矩阵进行初始化,构建用户对分类的评分;再次使用构建好的模型预测用户对项目和分类的评分;最后,计算预测评分和用户对项目真实评分的误差。
使用随机梯度下降法求目标函数的最小值和参数的过程如图3所示,详具体过程如下:
(1)初始化用户特征矩阵U、项目特征矩阵V、分类特征矩阵G;
(2)设置迭代计数器i=1;
(3)判断i是否小于初始设定的迭代次数,如果是则转入步骤(4),否则结束算法;
(4)遍历所有用户评分信息;
(5)用户是否遍历结束,如果是则转入步骤(6),否则转入步骤(7);
(6)迭代计数器i加1,然后返回步骤(3);
(7)遍历单个用户所有评分的项目;
(8)用户评分的项目是否遍历完毕,如果是则返回步骤(5),否则转入步骤(9);
(9)读取项目所属的分类信息;
(10)计算用户对项目的预测评分,用户对分类的预测评分,并计算预测评分和真实评分的差值;
(11)设置特征计数器j=0;
(12)判断特征计数器j是否小于矩阵的潜在特征数量,如果是,则转入步骤(13),否则返回(8);
(13)读取用户、项目和分类在第j维度的值;
(14)按照公式(11)更新参数U,V,Z;
(15)特征计数器j=j+1,返回步骤(12)。
为了计算模型的预测准确度,使用平均绝对误差(MAE)和均方根误差(RMSE),设rui表示用户u对项目i的实际评分,表示使用推荐系统预测的用户u对项目i的评分,那么平均绝对误差MAE可以定义为:
均方根误差RMSE可以定义为:
其中Rtest表示测试集合,|Rtest|为测试集合中用户对项目评分的数量,由MAE和RMSE计算公式可知,RMSE对预测评分偏差大的情况增加了惩罚,因此更加能够反映推荐系统的预测性能。
下面分析基于分类的社会化推荐方法的时间复杂度,模型的开销主要是计算目标函数L及其梯度。假设项目评分矩阵中非零值的数量为ρR,分类评分矩阵中非零值的数量为ρC,平均每个用户信任好友的数量为平均每个项目所属的分类数量为x,d为用户和项目的潜在因子数量。因为总 的分类数量远远小于项目数量,所以ρC<ρR。每个项目所属的分类数量小于每个用户信任的好友数,所以有
目标函数L如公式(10)所示,在一次迭代计算过程中,计算其时间复杂度的方法为计算各项复杂度之和,即进行化简之后,计算目标函数L的计算复杂度为
计算和的方法如公式(11)所示,其复杂度的计算方法也是计算公式中各项复杂度之和,计算的时间为化简后可以得到计算梯度的时间复杂度为同理计算和的时间复杂度为和所以一次迭代计算的复杂度为 从分析可知,算法的复杂度和用户评分的项目数量线性相关。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于分类的社会化推荐方法,其特征在于,所述方法包括如下步骤:
步骤(1)根据用户对项目的评分数据和项目的分类信息,构造初始用户分类矩阵;
所述步骤(1)包括以下子步骤:
(1-1)用0值初始化初始用户分类矩阵,初始用户分类矩阵中的元素C’ik表示用户i对分类k的评分;
(1-2)读取用户对项目的评分记录;
(1-3)判断用户对项目的评分记录是否已经遍历完毕,如果没有遍历完毕转入步骤(1-4),如果遍历完则结束;
(1-4)读取用户对项目的评分Rij以及项目对应的分类信息k,Rij为用户i对项目j的评分,k为项目j所属分类;
(1-5)把初始用户分类矩阵中对应用户和分类位置上的元素加Rij,然后转入步骤(1-3);
步骤(2)对初始用户分类矩阵做归一化处理,并使用矩阵分解方法重构用户分类矩阵;
步骤(3)由用户的好友信息构造用户好友之间的信任度;
步骤(4)根据用户分类矩阵中用户对项目所属分类的评分、使用社会化模型预测得到的用户对项目的评分以及用户好友之间的信任度,使用随机梯度下降法学习得到模型的参数,从而预测用户对项目的最终评分;
所述步骤(4)中预测用户对项目的最终评分,具体根据下式计算:
<mrow>
<msub>
<mover>
<mi>R</mi>
<mo>^</mo>
</mover>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>=</mo>
<msubsup>
<mi>&alpha;U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
<mo>+</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>-</mo>
<mi>&alpha;</mi>
<mo>)</mo>
</mrow>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>Z</mi>
<mrow>
<mi>p</mi>
<mo>&Element;</mo>
<mi>G</mi>
<mrow>
<mo>(</mo>
<mi>j</mi>
<mo>)</mo>
</mrow>
</mrow>
</msub>
</mrow>
其中为预测用户i对项目j的评分,Ui TVj为使用社会化推荐模型预测得到的用户对项目的评分,为用户对项目所属分类的预测评分,α是线性加权系数,表示社会化推荐得到对项目评分的比重;U、V、Z分别表示用户特征、项目特征和分类特征的参数矩阵,G(j)为项目j所属的分类集合,通过随机梯度下降法求得目标函数的最小值,并得到U、V、Z的参数值;目标函数为:
<mfenced open = "" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>L</mi>
<mrow>
<mo>(</mo>
<mi>R</mi>
<mo>,</mo>
<mi>C</mi>
<mo>,</mo>
<mi>S</mi>
<mo>,</mo>
<mi>U</mi>
<mo>,</mo>
<mi>V</mi>
<mo>,</mo>
<mi>Z</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>m</mi>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msubsup>
<mi>I</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mi>R</mi>
</msubsup>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mover>
<mi>R</mi>
<mo>^</mo>
</mover>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>+</mo>
<mfrac>
<msub>
<mi>&lambda;</mi>
<mi>C</mi>
</msub>
<mn>2</mn>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>m</mi>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>l</mi>
</munderover>
<msubsup>
<mi>I</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
<mi>C</mi>
</msubsup>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>C</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
<mo>-</mo>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>Z</mi>
<mi>k</mi>
</msub>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>+</mo>
<mfrac>
<msub>
<mi>&lambda;</mi>
<mi>T</mi>
</msub>
<mn>2</mn>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>m</mi>
</munderover>
<mo>|</mo>
<mo>|</mo>
<msub>
<mi>U</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>q</mi>
<mo>&Element;</mo>
<mi>T</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>)</mo>
</mrow>
</mrow>
</munder>
<msub>
<mi>S</mi>
<mrow>
<mi>i</mi>
<mi>q</mi>
</mrow>
</msub>
<msub>
<mi>U</mi>
<mi>q</mi>
</msub>
<mo>|</mo>
<msubsup>
<mo>|</mo>
<mi>F</mi>
<mn>2</mn>
</msubsup>
<mo>+</mo>
<mfrac>
<msub>
<mi>&lambda;</mi>
<mi>U</mi>
</msub>
<mn>2</mn>
</mfrac>
<mo>|</mo>
<mo>|</mo>
<mi>U</mi>
<mo>|</mo>
<msubsup>
<mo>|</mo>
<mi>F</mi>
<mn>2</mn>
</msubsup>
<mo>+</mo>
<mfrac>
<msub>
<mi>&lambda;</mi>
<mi>V</mi>
</msub>
<mn>2</mn>
</mfrac>
<mo>|</mo>
<mo>|</mo>
<mi>V</mi>
<mo>|</mo>
<msubsup>
<mo>|</mo>
<mi>F</mi>
<mn>2</mn>
</msubsup>
<mo>+</mo>
<mfrac>
<msub>
<mi>&lambda;</mi>
<mi>Z</mi>
</msub>
<mn>2</mn>
</mfrac>
<mo>|</mo>
<mo>|</mo>
<mi>Z</mi>
<mo>|</mo>
<msubsup>
<mo>|</mo>
<mi>F</mi>
<mn>2</mn>
</msubsup>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
m为推荐系统中用户的数量,n为项目的数量,l为项目分类的数量,λC、λT、λU、λV和λZ为社会化推荐模型的规则化参数,以防模型过度拟合,为矩阵的Frobenius范数,C为构造的用户对分类的评分,S为用户之间的信任度矩阵,Siq表示用户i对用户q的信任度,和Iik c为指示函数,表示在用户对项目的评分矩阵R中,用户i是否对项目j有评分,Iij=1表示用户i对项目j有评分,Iij=0表示用户i对项目j没有评分;Iik c表示在用户对分类的评分矩阵C中,用户i是否对分类k有评分,Iik=1表示用户i对分类k有评分,Iik=0表示用户i对分类k没有评分,Cik为用户i对分类k的评分,Zk为分类k的特征向量,Ui表示用户i兴趣偏好的向量,Uq表示用户q兴趣偏好的向量,T(i)为用户i信任的用户集合。
2.根据权利要求1所述的方法,其特征在于,所述步骤(2)中对初始用户分类矩阵做归一化处理,具体包括:
(2-1)读取每个用户对分类的评分C’ik,选出评分中的最大值MAXk'∈GC'ik'和最小值MINk'∈GC'ik';
(2-2)使用公式对每个分类的评分C’ik做归一化处理,其中G为所有分类的集合。
3.根据权利要求1所述的方法,其特征在于,所述步骤(3)由用户的好友信息构造用户好友之间的信任度,具体计算公式为:
<mrow>
<msub>
<mi>S</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mi>i</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<mi>j</mi>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mi>o</mi>
<mi>u</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mi>i</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<mi>j</mi>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
</mrow>
其中Sij为用户i对用户j的信任程度,in(j)为信任j的用户数量,out(i)为用户i信任的用户数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410313139.1A CN104199818B (zh) | 2014-07-01 | 2014-07-01 | 一种基于分类的社会化推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410313139.1A CN104199818B (zh) | 2014-07-01 | 2014-07-01 | 一种基于分类的社会化推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104199818A CN104199818A (zh) | 2014-12-10 |
CN104199818B true CN104199818B (zh) | 2018-02-23 |
Family
ID=52085111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410313139.1A Active CN104199818B (zh) | 2014-07-01 | 2014-07-01 | 一种基于分类的社会化推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104199818B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965896B (zh) * | 2015-06-23 | 2018-10-02 | 中国船舶重工集团公司第七0九研究所 | 基于二次函数表示用户偏好的推荐方法及系统 |
CN104991913B (zh) * | 2015-06-23 | 2019-11-22 | 中国船舶重工集团公司第七0九研究所 | 基于增强回归树的推荐方法及系统 |
US10229671B2 (en) * | 2015-12-02 | 2019-03-12 | GM Global Technology Operations LLC | Prioritized content loading for vehicle automatic speech recognition systems |
CN105653640A (zh) * | 2015-12-25 | 2016-06-08 | 江苏东大金智信息系统有限公司 | 一种基于信任机制的协同过滤推荐方法 |
CN106919946B (zh) * | 2015-12-25 | 2019-11-01 | 华为技术有限公司 | 一种受众选择的方法及装置 |
CN107239983B (zh) * | 2016-03-28 | 2020-12-08 | 上海交通大学 | 众包平台劳动者挑选方法 |
CN106844557A (zh) * | 2016-12-30 | 2017-06-13 | 东软集团股份有限公司 | 信息推荐方法及装置 |
CN107220382A (zh) * | 2017-06-28 | 2017-09-29 | 环球智达科技(北京)有限公司 | 数据分析方法 |
CN108287904A (zh) * | 2018-05-09 | 2018-07-17 | 重庆邮电大学 | 一种基于社会化卷积矩阵分解的文档上下文感知推荐方法 |
CN110413880B (zh) * | 2019-07-10 | 2021-09-14 | 合肥工业大学 | 基于用户人格分层结构的单分类协同过滤方法 |
CN113205369B (zh) * | 2021-05-27 | 2024-03-22 | 咪咕文化科技有限公司 | 用户消费时长预测方法、装置、电子设备与存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982107A (zh) * | 2012-11-08 | 2013-03-20 | 北京航空航天大学 | 一种融合用户、项目和上下文属性信息的推荐系统优化方法 |
CN103399858A (zh) * | 2013-07-01 | 2013-11-20 | 吉林大学 | 基于信任的社会化协同过滤推荐方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090210246A1 (en) * | 2002-08-19 | 2009-08-20 | Choicestream, Inc. | Statistical personalized recommendation system |
-
2014
- 2014-07-01 CN CN201410313139.1A patent/CN104199818B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982107A (zh) * | 2012-11-08 | 2013-03-20 | 北京航空航天大学 | 一种融合用户、项目和上下文属性信息的推荐系统优化方法 |
CN103399858A (zh) * | 2013-07-01 | 2013-11-20 | 吉林大学 | 基于信任的社会化协同过滤推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104199818A (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104199818B (zh) | 一种基于分类的社会化推荐方法 | |
CN111428147B (zh) | 结合社交和兴趣信息的异源图卷积网络的社交推荐方法 | |
CN111797321B (zh) | 一种面向不同场景的个性化知识推荐方法及系统 | |
CN103514255B (zh) | 一种基于项目层次类别的协同过滤推荐方法 | |
CN108920503A (zh) | 一种基于社交网络信任度的微视频个性化推荐算法 | |
CN103793476B (zh) | 基于网络社区的协同过滤推荐方法 | |
Abdollahi et al. | Explainable restricted boltzmann machines for collaborative filtering | |
CN106126549A (zh) | 一种基于概率矩阵分解的社区信任推荐方法及其系统 | |
CN106817251B (zh) | 一种基于节点相似度的链路预测方法及装置 | |
CN106682114A (zh) | 一种融合用户信任关系和评论信息的个性化推荐方法 | |
CN106022865A (zh) | 一种基于评分和用户行为的商品推荐方法 | |
CN106708953A (zh) | 基于离散粒子群优化的局部社区检测协同过滤推荐方法 | |
CN103399858A (zh) | 基于信任的社会化协同过滤推荐方法 | |
CN104063481A (zh) | 一种基于用户实时兴趣向量的电影个性化推荐方法 | |
CN106294758A (zh) | 基于用户认知度变化的协同推荐方法 | |
CN103927347A (zh) | 一种基于用户行为模型和蚁群聚类的协同过滤推荐算法 | |
CN107301247B (zh) | 建立点击率预估模型的方法及装置、终端、存储介质 | |
CN108053050A (zh) | 点击率预估方法、装置、计算设备及存储介质 | |
CN106610970A (zh) | 基于协同过滤的内容推荐系统与方法 | |
US20220012763A1 (en) | Personality trait-based customer behavior prediction | |
CN109840833A (zh) | 贝叶斯协同过滤推荐方法 | |
CN106021298A (zh) | 一种基于非对称加权相似度的协同过滤推荐方法及系统 | |
Do et al. | Coupled poisson factorization integrated with user/item metadata for modeling popular and sparse ratings in scalable recommendation | |
CN116244513B (zh) | 随机群组poi推荐方法、系统、设备及存储介质 | |
CN109948242A (zh) | 基于特征哈希的网络表示学习方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |