一种基于协同训练的融合评分信息和物品内容的推荐方法与流程

文档序号:17442911发布日期:2019-04-17 05:02阅读:263来源:国知局
一种基于协同训练的融合评分信息和物品内容的推荐方法与流程

本发明涉及物品推荐领域,尤其涉及一种基于协同训练的融合评分信息和物品内容的推荐方法。



背景技术:

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

本发明提出了一种基于协同训练的融合评分信息和物品内容的推荐方法。一方面,我们通过挖掘用户评论的情感倾向,以实现对用户原始评分偏离用户真实兴趣偏好的纠正,采用观点预过滤(opinionpre-filtering)方法对该物品的情感倾向进行综合评分度量,从而实现基于物品的协同过滤推荐模型。另一方面,我们对物品内容描述的文本信息进行挖掘,利用神经网络的方法将其表示成为分布式的段落向量,实现对物品内容的相似度计算,进而构建基于物品内容的推荐模型。与此同时,本发明利用协同训练策略实现对两个推荐因素的融合,并在协同训练中增加了基于置信度估计与聚类分析的数据选择策略,尽量消除迭代训练中加入到训练数据池中的数据分布偏差;在此基础上,构建混合推荐系统的预测模型。在topn推荐阶段,根据推荐预测模型的综合评分和物品的相似度,对初始推荐结果进行过滤和排序,从而得到最终推荐结果。



技术实现要素:

针对现有技术中存在的上述不足,本发明实际要解决的问题是:如何提高在用户评分存在缺失时的推荐准确性,成为了本领域技术人员急需解决的问题。

为解决上述技术问题,本发明采用了如下的技术方案:

一种计及用户评分及物品相似性的物品推荐方法,包括如下步骤:

s1、获取用户对物品的评论文本及用户对物品的评分,基于用户对物品的评分建立用户评分矩阵,初始化迭代次数为1,执行s2;

s2、基于用户对物品的评论文本建立用户情感倾向评分矩阵,执行s3;

s3、基于用户情感倾向评分矩阵更新用户评分矩阵,执行s4;

s4、基于用户评分矩阵生成数据训练集,执行s5;

s5、获取物品描述文本,基于物品描述文本生成物品描述向量,执行s6;

s6、基于物品描述向量及数据训练集更新用户评分矩阵,执行s7;

s7、将迭代次数加1,判断迭代次数是否大于或等于预设迭代次数,当迭代次数大于或等于预设迭代次数,执行s8,否则,执行s3;

s8、对用户评分矩阵中物品的评分进行排序并推荐。

优选地,s2包括如下步骤:

s201、将所有评论文本进行切词,得到候选关键词;

s202、利用word2vec中的skip-gram模型训练候选关键词向量模型,得到每个候选关键词的k维向量表示;

s203、采用tf-idf算法从候选关键词选出出现频率最高的top-n个候选关键词作为关键词,并获取每个关键词的k维向量表示;

s204、将评论文本对应的关键词的k维向量表示输入长短期记忆人工神经网络,得到评论文本对应的用户情感倾向评分;

s205、基于用户情感倾向评分建立用户情感倾向评分矩阵。

优选地,s3包括如下步骤:

s301、基于公式更新用户评分,ru(i)为第u个用户对第i个物品的用户评分,为第u个用户对第i个物品的用户情感倾向评分,α为权重平衡因子;

s302、基于更新后的用户评分建立用户评分矩阵rm×n(u,i),行向量m表示用户的个数,列向量n表示物品的个数。

优选地,s4包括如下步骤:

s401、将大于或等于预设正类分数阈值的用户评分加入正类数据池di(+)中,将的标记为负类,将小于或等于预设负类分数阈值的用户评分加入负类数据池di(-)中,基于公式dl={di(+)∪di(-)}生成第一数据集dl,预设正类分数阈值大于预设负类分数阈值;

s402、若用户评分缺失,采用用户情感倾向评分代替缺失的用户评分,作为新的用户评分,采用基于置信度估计与聚类分析的数据选择算法从所述新的用户评分中选择符合预设条件的新的用户评分,建立第二数据集dl';

s403、基于第一数据集dl和第二数据集dl'生成训练数据集dtrain,dtrain={dl∪dl'}。

优选地,s6包括如下步骤:

s601、基于训练数据集dtrain中大于或等于预设正类分数阈值的用户评分对应的物品的物品描述向量、训练数据集dtrain中小于或等于预设负类分数阈值的用户评分对应的物品的物品描述向量,建立第一用户物品描述向量集合;

s602、选取第一预设个数的用户评分等于预设评分的物品的用户物品描述向量建立候选用户物品描述向量集合,计算第一用户物品描述向量集合与候选用户物品描述向量集合中物品的距离和相似度;

s603、选取候选用户物品描述向量集合中每个物品的第二预设个数的近邻物品,计算候选用户物品描述向量集合中每个物品与其最近邻物品的平均距离;

s604、基于候选用户物品描述向量集合中每个物品与其最近邻物品的平均距离,更新候选用户物品描述向量集合中用户对物品的评分;

s605、基于更新后的候选用户物品描述向量集合用户对物品的评分更新物品的评分向量并更新第二数据集;

s606、利用基于置信度估计与聚类分析的数据选择算法对dl'进行数据分布分析并更新用户评分矩阵。

优选地,s8中,采用top-n算法基于用户评分矩阵中物品的评分对物品进行排序,并选择最靠前的多个物品进行推荐。

综上所述,本发明公开了一种基于协同训练的融合评分信息和物品内容的推荐方法,其特征在于,包括如下步骤:s1、获取用户对物品的评论文本及用户对物品的评分,基于用户对物品的评分建立用户评分矩阵,初始化迭代次数为1,执行s2;s2、基于用户对物品的评论文本建立用户情感倾向评分矩阵,执行s3;s3、基于用户情感倾向评分矩阵更新用户评分矩阵,执行s4;s4、基于用户评分矩阵生成数据训练集,执行s5;s5、获取物品描述文本,基于物品描述文本生成物品描述向量,执行s6;s6、基于物品描述向量及数据训练集更新用户评分矩阵,执行s7;s7、将迭代次数加1,判断迭代次数是否大于或等于预设迭代次数,当迭代次数大于或等于预设迭代次数,执行s8,否则,执行s3;s8、对用户评分矩阵中物品的评分进行排序并推荐。本发明提出基于观点预过滤和基于用户评分嵌入的情感融合方法,解决推荐系统中用户原始评分与真实兴趣偏好存在偏差、且评分等级分布极度不均衡的问题。此外,本发明提出了基于协同训练的混合推荐方法,实现推荐系统中的评分预测。解决混合推荐系统中多推荐方法的融合问题。

附图说明

图1为本发明公开的一种基于协同训练的融合评分信息和物品内容的推荐方法的流程图;

具体实施方式

下面结合附图对本发明作进一步的详细说明。

如图1所示,本发明公开了一种基于协同训练的融合评分信息和物品内容的推荐方法,包括如下步骤:

s1、获取用户对物品的评论文本及用户对物品的评分,基于用户对物品的评分建立用户评分矩阵,初始化迭代次数为1,执行s2;

s2、基于用户对物品的评论文本建立用户情感倾向评分矩阵,执行s3;

s3、基于用户情感倾向评分矩阵更新用户评分矩阵,执行s4;

s4、基于用户评分矩阵生成数据训练集,执行s5;

s5、获取物品描述文本,基于物品描述文本生成物品描述向量,执行s6;

s6、基于物品描述向量及数据训练集更新用户评分矩阵,执行s7;

s7、将迭代次数加1,判断迭代次数是否大于或等于预设迭代次数,当迭代次数大于或等于预设迭代次数,执行s8,否则,执行s3;

s8、对用户评分矩阵中物品的评分进行排序并推荐。

本发明提出了一种基于协同训练的融合评分信息和物品内容的推荐方法。一方面,我们通过挖掘用户评论的情感倾向,以实现对用户原始评分偏离用户真实兴趣偏好的纠正,采用观点预过滤(opinionpre-filtering)方法对该物品的情感倾向进行综合评分度量,从而实现基于物品的协同过滤推荐模型。另一方面,我们对物品内容描述的文本信息进行挖掘,利用神经网络的方法将其表示成为分布式的段落向量,实现对物品内容的相似度计算,进而构建基于物品内容的推荐模型。与此同时,本发明利用协同训练策略实现对两个推荐因素的融合,并在协同训练中增加了基于置信度估计与聚类分析的数据选择策略,尽量消除迭代训练中加入到训练数据池中的数据分布偏差;在此基础上,构建混合推荐系统的预测模型。在topn推荐阶段,根据推荐预测模型的综合评分和物品的相似度,对初始推荐结果进行过滤和排序,从而得到最终推荐结果。相较于传统的权融合和级联型等混合方法,本发明提出的计及用户评分及物品相似性的物品推荐方法。具体工作体现在以下三个方面:

(1)提出基于观点预过滤和基于用户评分嵌入的情感融合方法,解决推荐系统中用户原始评分与真实兴趣偏好存在偏差、且评分等级分布极度不均衡的问题。

(2)探讨利用基于深度学习的自然语言处理技术对推荐系统中辅助信息进行建模。

(3)提出了基于协同训练的多种推荐因素的融合方法,实现推荐系统中的评分预测。在一定程度上解决推荐系统建模中缺乏足够的有标签数据问题。

具体实施时,s2包括如下步骤:

s201、将所有评论文本进行切词,得到候选关键词;

s202、利用word2vec中的skip-gram模型训练候选关键词向量模型,得到每个候选关键词的k维向量表示;

s203、采用tf-idf算法从候选关键词选出出现频率最高的top-n个候选关键词作为关键词,并获取每个关键词的k维向量表示;

s204、将评论文本对应的关键词的k维向量表示输入长短期记忆人工神经网络,得到评论文本对应的用户情感倾向评分;

s205、基于用户情感倾向评分建立用户情感倾向评分矩阵。

在推荐系统中,用户评论信息的呈现形式通常是关键词和短文本。本发明利用基于词向量的关键词表示方法,解决传统稀疏表示方式的维数灾难,且无法表示语义信息的问题,同时也挖掘了词之间的关联属性,从而提高了关键词语义表示的准确度。

本发明利用word2vec自动从大规模无标注用户评论中学习到句法和语义信息,实现对用户评论中关键词的表征。利用word2vec对用户评论的短文本信息进行向量表示,主要分为以下两个步骤:

1)根据收集大规模的用户评论文本,利用word2vec中的skip-gram模型训练词向量模型,将每个词表示成k维向量实数值。

2)对于用户评论的短文本,在分词的基础上利用tf-idf等算法抽取top-n个词表示文本的情感,然后从词向量模型中查找得到每一个关键词的k维向量表示。

word2vec的词向量表示只是基于词的维度进行“语义分析”,而并不具有上下文的“语义分析”能力,故本发明构建基于词向量和长短期记忆网络的情感计算模型来实现对用户评论的情感分析。长短期记忆网络(lstm)通过精心设计的称作为“门”的结构来去除或增加信息到细胞状态的能力。它的巧妙之处在于通过增加输入门,遗忘门和输出门,使得自循环的权重是变化的,这样在模型参数固定的情况下,不同时刻的积分尺度可以动态改变,从而避免了梯度消失或者梯度膨胀的问题。

在得到用户的情感评分后,就可以观点预过滤方法对评分信息进行综合评分度量。具体实施时,s3包括如下步骤:

s301、基于公式更新用户评分,ru(i)为第u个用户对第i个物品的用户评分,为第u个用户对第i个物品的用户情感倾向评分,α为权重平衡因子;

s302、基于更新后的用户评分建立用户评分矩阵rm×n(u,i),行向量m表示用户的个数,列向量n表示物品的个数。

本发明采用基于word2vec和lstm的用户评论的情感分析方法。同大多数神经网络是一样的,我们利用word2vec将矩阵形式的输入编码为较低维度的一维向量,而保留大多数有用信息,然后利用lstm算法训练针对用户评论文本的情感分类模型,实现对用户评论文本的评分等级预测。同时,为了兼顾用户评分对评论信息情感的影响,本发明采用基于观点预过滤的方法和基于用户评分嵌入的方法对用户评分和情感预测评分的进行综合。前者是利用lstm网络得到预测评分后,同原始用户评分进行加权求和。基于用户评分嵌入的方法则是将lstm网络向量与用户评分信息进行结合,将结果作为最后一层的输入,直接输出最终的综合评分。

具体实施时,s4包括如下步骤:

s401、将大于或等于预设正类分数阈值的用户评分加入正类数据池di(+)中,将小于或等于预设负类分数阈值的用户评分加入负类数据池di(-)中,基于公式dl={di(+)∪di(-)}生成第一数据集dl,预设正类分数阈值大于预设负类分数阈值;

本发明中,假设评分最高为5,最低为1,将评分大于或等于4的放入正类数据池,将评分小于或等于2的放入负类数据池。

s402、若用户评分缺失,采用用户情感倾向评分代替缺失的用户评分,作为新的用户评分,采用基于置信度估计与聚类分析的数据选择算法从所述新的用户评分中选择符合预设条件的新的用户评分,建立第二数据集dl';

s403、基于第一数据集dl和第二数据集dl'生成训练数据集dtrain,dtrain={dl∪dl'}。

在情感分类模型中,一般分为细粒度(5级分类)和粗粒度(2级分类),考虑到2级情感分类模型的准确率远高于5级情感分类模型,故本发明的推荐算法中采用2级情感分类,分别将用户情感为正面和负面的评分设置为5分和1分;然后利用观点预过滤的方法计算用户对物品的综合评分;最后利用基于物品的协同过滤推荐模型对评分进行预测,并利用基于置信度估计与聚类分析的数据选择算法对数据进行筛选,将增量数据加入用户u的训练数据集。

具体实施时,s6包括如下步骤:

s601、基于训练数据集dtrain中大于或等于预设正类分数阈值的用户评分对应的物品的物品描述向量、训练数据集dtrain中小于或等于预设负类分数阈值的用户评分对应的物品的物品描述向量,建立第一用户物品描述向量集合;

考虑到推荐系统中,对物品内容的自然语言描述较短且大多是不完整的句子,通常也不遵循语法规则,本发明利用段落向量(paragraphvector)对物品内容描述的短文本进行分布式表示。段落向量是一种基于神经网络的隐性短文本理解模型,它将短文本向量当作“语境”用于辅助推理,在极大似然估计中,文本向量亦被作为模型参数进行更新。同基于word2vec的文本向量表示方法相比,它在模型训练过程中新增了段落编码,即训练语料中每个句子都有一个唯一的编码。段落编码和普通的词一样,也是先映射成一个向量(即段落编码向量)。在计算中,段落编码向量和词向量累加或者连接起来,作为输出层softmax的输入。在物品内容文档训练过程中,段落编码保持不变,共享着同一个段落向量,相当于每次在预测单词的概率时,都利用了整个句子的语义。在预测阶段,给物品内容文档分配一个新的段落编码,词向量和输出层softmax的参数保持不变,利用梯度下降法训练新物品内容文档,直至收敛,从而得物品内容文档的低维向量表示。

s602、选取第一预设个数的用户评分等于预设评分的物品的用户物品描述向量建立候选用户物品描述向量集合,计算第一用户物品描述向量集合与候选用户物品描述向量集合中物品的距离和相似度;

选取2p个用户评分为φ的候选用户物品描述向量集合,分别计算候选物品与第一用户物品描述向量集合中物品的距离和相似度。

di∈d2p

dj∈dit

dit为第一用户物品描述向量集合,d2p为候选用户物品描述向量集合。dis(di,dj)为di、dj的距离,sim(di,dj)为di、dj的相似度。

s603、选取候选用户物品描述向量集合中每个物品的第二预设个数的近邻物品,计算候选用户物品描述向量集合中每个物品与其最近邻物品的平均距离;

选择k个最近邻物品{d1,d2,…,dk},aq标记k个最近邻物品中每个评分等级的个数,disq表示物品di与k个最近邻物品的平均距离,q为评分等级;

q∈{1,2,3,4,5}

if(q-1<=l(k)<=q)

aq=++;

s604、基于候选用户物品描述向量集合中每个物品与其最近邻物品的平均距离,更新候选用户物品描述向量集合中用户对物品的评分;

di∈d2p

s605、基于更新后的候选用户物品描述向量集合用户对物品的评分更新物品的评分向量并更新第二数据集;

针对不同用户u的ru(i)值得,更新物品i的评分;

l(i)'←r(i)

更新第二数据集;

dl′={(d(i),l(i))}←{(d(i),l(i)′)}。

s606、利用基于置信度估计与聚类分析的数据选择算法对dl'进行数据分布分析,将经筛选的数据更新入数据训练集中,并基于新的数据训练集对用户评分矩阵进行更新。

具体实施时,s8中,采用top-n算法基于用户评分矩阵中物品的评分对物品进行排序,并选择最靠前的多个物品进行推荐。

此外也可直接根据最终得到的用户评分矩阵,计算各物品的平均分,然后按照大小对物品进行排序,并选择排序最靠前的多个物品进行推荐。

混合推荐方法将多种推荐技术进行混合相互弥补缺点,从而获得更好的推荐效果。传统的混合推荐技术,如:加权融合(weighted)方法将多种推荐技术的计算结果加权,赋予相应的权重值产生最终的推荐;混合(mix)推荐方法将多种不同的推荐算法推荐出来的结果混合在一起;级联型(cascade)推荐方法用后一个推荐方法优化前一个推荐方法,其推荐过程是分阶段的。与上述混合推荐技术不同,本发明在构建混合推荐系统时,采用了协同训练策略构建基于物品的协同过滤推荐和基于物品内容的推荐的混合模型。在协同训练模型的每一次迭代训练过程中,利用用户对物品的评分信息训练评分预测模型,实现对评分矩阵的填充和更新;然后根据更新后的评分矩阵和物品的内容描述信息(评分>=4和评分<=2的物品分别放入用户喜欢和不喜欢的物品训练池中),训练得到基于物品内容的推荐模型,从而对评分矩阵进行填充和更新,将其作为基于物品的协同过滤推荐模型的输入,进行下一次迭代训练。相较于加权融合混合推荐需要不断调整各推荐结果的权值,混合推荐的排序困难,以及级联型推荐的分阶段过程,本发明提出的基于协同训练的混合推荐方法,在每次迭代训练中充分利用了用户对物品的评分信息和物品的内容描述信息,实现对两种推荐因素的融合,达到了较好的推荐效果。

本发明在构建协同训练模型时,增加了数据选择策略对欲加入训练池的数据进行筛选。规定用户的每一评分等级为数据中的一个分类类别;在数据池中的训练数据为有标签数据,待预测的数据为无标签数据。在数据选择策略中,不仅考虑样本属于某一类别的置信度分数,同时也要求选择的样本在每一个(聚类)簇内是均匀分布的,可以避免选择的训练数据在高斯分布上存在较大的估计偏差。基于置信度估计与聚类分析的数据选择算法描述如下所示:

基于置信度估计与聚类分析的数据选择算法

输入:训练样本集(x,y)

输出:样本集(x,y)的选择标签flag={true,false}

1.初始化

a)将训练数据中每一评分等级作为一类,计算训练样本与每一类c的相似度作为该样本的置信度估计度量,记为f(c;x)。

2.训练数据划分

b)利用kmeans聚类算法将候选数据划分为k个子簇d1,d2,...,dk。

c)计算:

聚类子簇dk中的有标签样本的数目;

聚类子簇dk中的无标签样本的数目;

属于类c且属于聚类子簇dk中的有标签样本数目;

属于类c且属于聚类子簇dk中的无标签样本数目。

d)计算每一个聚类簇的先验概率:

e)计算针对每一类别和聚类簇的概率:

其中α是pl(c|dk)和pu(c|dk)的平衡因子,β是一个数值极小的常量,z是使p(c|dk)成为概率函数的归一化因子。

3.数据选择

f)根据概率p(dk)选择聚类簇dk,在聚类簇dk内依据概率p(c|dk)选择类别c。

g)求聚类簇dk和类c的样本的交集,选择具有最高置信度估计的前m个样本(令其flag=true)。

h)重复f)-g)步直至筛选完所有候选预加入训练池的数据。

本发明提出的一种基于协同训练的融合评分信息和物品内容的推荐方法,其时间开销主要来源于用户评论的情感分析、物品内容的相似度计算、基于物品的协同过滤模型、及数据选择几个方面。其中,基于用户评论的情感分析是利用lstm算法训练情感分类模型,可离线训练生成,不计算入本发明算法时间复杂度。假设在推荐系统中,用户数为m,物品数量为n,则物品内容相似度计算的时间复杂度为o(n2);基于物品的协同过滤模型,在最糟的情况下,其时间复杂度为o(m*n),但现实情况下,由于用户评分数据的稀疏性,其只需计算o(m+n)次;数据选择算法的时间复杂度为o(nlt),其中n为物品数据,l为代表聚类中心数,t代表迭代次数,l和t均为常数。假设协同训练算法中,协同训练的次数为c(c为常数),则本发明算法的计算次数为c*[(n2)+(m*n)+n],或c*[(n2)+(m+n)+n]。由于在推荐系统中,一般情况下物品数小于用户数(n<m),且m+n<n2,故本发明提出的混合推荐算法的时间复杂度,最糟的情况下为o(m*n),一般情况下为o(n2)。即在最糟的情况下其时间复杂度等同于基于领域的协同过滤推荐算法,一般情况下其时间复杂度等同于基于内容的推荐算法。

上述仅是本发明优选的实施方式,需指出是,对于本领域技术人员在不脱离本技术方案的前提下,还可以作出若干变形和改进,上述变形和改进的技术方案应同样视为落入本发明要求保护的范围。

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