欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2018104716409
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.基于随机锚点对选择的局部模型加权融合Top-N电影推荐方法,包括如下步骤:

步骤1:数据预处理阶段。对一些不活跃用户以及流行度很小的电影进行数据清洗;构造用户电影标签文档;把显式的评分信息转换成隐式反馈信息,构造用户-电影隐式反馈矩阵A;

1.1 对原始数据集进行数据清洗工作,剔除观影数小于20部电影的用户,同时剔除被评分次数小于20次的电影,得到新的训练数据集;

1.2 统计新数据集里所有用户给电影打的标签生成一个标签字典,把用户看过的所有电影的标签组成的文档来表示当前用户,所有用户的文档组成一个语料库,计算文档中每个词在语料库中的TF-IDF值。TF(词频),IDF(逆文档频)以及TF-IDF(词频-逆文档频)的计算公式如公式(1)(2)(3)所示;

TFIDFi,j=TFi,j×IDFi      (3)

其中TFi,j表示词语ti在文档dj中的词频,ni,j表示词语ti在文档dj中出现的次数,∑knk,j表示文档dj中所有词语的出现次数之和。IDFi表示词ti的逆文档频,|D|表示语料库中文档的总数,|{j:ti∈dj}|表示包含词语ti的文档数目。TFIDFi,j表示文档dj中词语ti的词频逆文档频;

1.3 把显式的评分信息如1—5分,转换成用0—1表示的隐式反馈信息,若当前用户对当前电影打过分则记为1,没打过分的电影即待推荐的电影记为0,得到一个n×m的用户—电影隐式反馈训练矩阵,用户数为n,电影数为m;

步骤2:用户特征向量训练阶段。利用电影标签信息,通过LDA主题模型训练得到用户特征向量;

LDA主题模型是一个文档-主题-单词的三层贝叶斯网络,给定一个语料库,该模型可以分析该语料库中每篇文档的主题分布,以及每个主题的词分布。它的联合概率如公式(4)所示;

θ表示一篇文档的主题分布,z表示一个主题,w表示一篇文档,α表示每篇文档下主题的多项分布的Dirichlet先验参数,β表示每个主题下词的多项分布的Dirichlet先验参数,N表示语料库中的文档数,zn表示一篇文档中第n个词的主题,wn表示一篇文档的第n个单词;

每部电影都有多个用户给它赋予的标签,把一个电影标签映射成一个单词wn,把一个用户看过的所有电影的标签组成的集合映射成一篇文档w,把用户所偏好的一类特定的电影类型映射成一个主题z。若数据集里共有n个用户,则可生成一个含有n篇文档的语料库以及一个字典,语料库中的每篇文档用字典长度的向量表示,向量中的每个值是对应字典中标签在该用户文档及语料库中的TF-IDF值;

为了能区分出更加独特的用户群体,不同主题之间的差异性越大越好。为了确定最佳主题个数,通过设置多个主题数训练多个LDA模型,计算每个LDA模型训练得到的主题向量之间的平均相似度,取主题向量平均相似度最小的模型对应的主题数作为模型最佳主题个数。通过LDA模型训练,得到每一篇文档的主题分布θ,用它来表示每一个用户的特征向量;

步骤3:电影特征向量训练阶段。利用电影文本信息以及电影的大众评分信息,通过GBDT梯度提升决策树模型对电影原始特征进行特征重组得到表达能力更强的交叉特征,形成新的电影特征向量;

3.1 首先把每部电影根据它对应的导演、演员、电影类型和电影标签进行One-Hot Encoding独热编码,得到初始的电影特征向量;

3.2 利用以上初始电影特征向量,结合这些电影样本对应的大众评分(1-10分),迭代训练得到稳定的GBDT梯度提升决策树模型,通过该模型得到新的电影特征向量;

GBDT梯度提升决策树模型是一种基函数为决策树的提升模型,其提升方法实际采用加法模型(即弱预测器的线性组合)与向前分布算法,如公式(5)所示。其中,Fm(x)表示加入当前基模型后的新模型,Fm-1(x)表示当前模型,hm(x)表示当前基模型(也就是CART,分类与回归树),γm表示当前基模型在总模型中的权重系数,也叫做迭代步长;

Fm(x)=Fm-1(x)+γmhm(x)     (5)

每一步,通过最小化损失函数L拟合模型Fm-1(x)和真实值y之间的残差得到当前基模型决策树hm(x),如公式(6)所示。其中yi表示样本i的真实值,即电影i的真实大众评分;

利用损失函数负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,如公式(7)所示;

迭代步长γm可通过线性搜索的方法计算得到,如公式(8)所示;

当一部需要预测评分的电影进入到GBDT梯度提升决策树模型中时,该电影在每一棵决策树的其中一片叶子节点上会得到一个反馈值,把所有这些反馈值加权累加就会得到模型对当前电影的预测评分。为了得到特征组合之后的电影特征向量,本发明初始化一个长度为提升模型中叶子节点数的零向量作为电影初始特征向量,向量的每一维度对应提升模型中的每一片叶子。当电影进入提升模型时,把该电影特征向量中在模型里取得反馈值的叶子节点处对应的维度值设为1,得到一个新的经过特征组合的特征向量η来表示当前的电影;

步骤4:局部训练矩阵构建阶段。利用以上两步得到的用户特征向量和电影特征向量,计算用户和电影的高斯核相似度,再通过随机锚点对选择的方法构造推荐模型的局部训练矩阵;

4.1 首先计算基于高斯核函数的用户相似度和电影相似度。基于高斯核函数的用户相似度计算公式如公式(9)所示。其中ku(ui,uj)表示用户ui和用户uj之间的相似度,θi和θj分-2别表示用户ui和用户uj的特征向量,γ=σ ,σ表示方差。基于高斯核函数的电影相似度如公式(10)所示。其中kv(vi,vj)表示电影vi和电影vj的相似度,ηi和ηj分别表示电影vi和电影vj的特征向量,γ=σ-2,σ表示方差;

ku(ui,uj)=exp(-γ||θi-θj||2)     (9)

kv(vi,vj)=exp(-γ||ηi-ηj||2)     (10)

4.2 利用以上相似度,通过随机锚点对选择的方法构建多个局部训练矩阵(即n×m用户—电影隐式反馈训练矩阵)。构造过程如下:(1)在训练样本中,随机选择K组用户电影对(u*,v*),得到K组目标锚点对;

*

(2)根据每个锚点对,利用公式(11)、公式(12)构造局部训练矩阵。其中Ku(u',u)和Kv(v',v*)为上一步中计算得到的用户相似度和电影相似度,A(u',v')表示原始训练矩阵A中* *用户u'关于电影v'的隐式反馈值, 表示基于锚点对(u ,v)重新构造之后的用户u'关于电影v'的隐式反馈值;

Kuv((u',v'),(u*,v*))=Ku(u',u*)×Kv(v',v*)   (12)根据以上过程,对于每个随机选择的<用户,电影>锚点对,共构造获得K个局部隐式反馈训练矩阵;

步骤5:局部推荐模型训练阶段。本发明采用稀疏线性模型SLIM作为融合推荐模型的基本推荐模型,该模型的损失函数如公式(13)所示;

其中,A表示原始的用户—电影隐式反馈矩阵,α和ρ控制L1和L2范数的权重,通过最小化该损失函数可以获得一个大小为m×m的电影相似度稀疏矩阵W。该模型中L1范数控制W稀疏程度,L2范数控制模型的复杂度,防止模型过拟合。该模型通过随机梯度下降法,并行训练W矩阵的每一列wj来得到最终的W矩阵,如公式(14)所示;

其中,aj表示矩阵A中的第j列。用户i关于电影j的预测推荐度 计算公式如公式(15)所示;

使用稀疏线性模型SLIM作为基本推荐模型,K个局部隐式反馈训练矩阵可以训练得到K个局部推荐模型;

步骤6:局部模型加权融合推荐阶段。利用公式(16)对K个局部推荐模型进行加权融合,得到最终的融合推荐模型。其中 表示电影v关于用户u的融合推荐度, 表示第k个局部推荐模型对于电影v关于用户u的局部推荐度(对应于公式(15)中的 );

根据公式(16),为每位用户计算每一部电影关于他的预测推荐度,然后按预测推荐度的大小进行降序排序,并除去已经与当前用户发生过评分交互的电影,最终取排在前N部的电影推荐给当前用户,完成Top-N个性化推荐;

步骤7:模型验证阶段。该推荐方法可通过留一法交叉验证来证明模型的有效性。可以从每个用户的电影评分集合中随机抽取一部电影放入测试集中,其他电影用来作为模型的训练集。然后用训练好的模型为每个用户推荐一个Top-N的电影列表,观察测试集里该用户的对应那一部电影是否出现在推荐列表中以及其出现在列表中的具体位置pi。最后,可以用命中率(HR)和平均排名命中率(ARHR)两个指标来衡量模型的推荐质量,其中#hits表示推荐命中数,#users表示用户总数,它们的定义如公式(17)、(18)所示;

此外,为了验证此推荐方法在数据稀疏场景下的推荐效果,可对原始训练集按一定采样率进行随机降采样,再结合以上两个评价指标进行推荐实验来对推荐方法进行验证;

推荐方法流程步骤至此结束。