欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2018101699223
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期: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主题模型训练得到用户特征向量,用谱聚类算法实现用户聚类;

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

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

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

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

2.2利用以上步骤得到的n个用户特征向量,使用谱聚类算法实现对用户的聚类;

在聚类之前首先需要确定聚类个数;因为训练得到的每个用户向量的每一维度表示该用户属于对应主题的隶属度,故为了确定每个主题在当前用户群体中的重要性,把所有用户特征向量按维度做累加后再取平均,得到一个代表整体的主题强度向量,通过观察主题强度向量的值分布来确定最佳聚类个数;;谱聚类算法具体步骤如下:(1)计算n×n的相似度矩阵W和度矩阵D;

(2)计算拉普拉斯矩阵L=D-W;

(3)计算L的前k个特征向量t1,t2,…,tk;

(4)将k个列向量t1,t2,…,tk组成矩阵T,T∈Rn×k;

k

(5)对于i=1,…,n,令yi∈R是T的第i行向量;

(6)使用K-Means算法将用户(yi)i=1,2,...,n聚类成簇C1,C2,…,Ck;

对于每个用户聚类,把原始隐式反馈训练矩阵A中不属于该聚类的用户行向量都置为

0,每个聚类都生成一个对应的局部隐式反馈训练矩阵 Pu表示聚类编号,且Pu∈{1,...,k};

步骤3确定局部推荐模型和进行全局推荐模型训练;稀疏线性模型SLIM的损失函数如公式(5)所示;

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

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

使用稀疏线性模型SLIM作为基本推荐模型构建全局推荐模型和局部推荐模型,利用全局隐式反馈训练矩阵A训练得到全局电影相似度矩阵W,利用局部隐式反馈训练矩阵 训练得到每个聚类对应的局部电影相似度矩阵步骤4模型加权融合推荐阶段;局部模型加权融合推荐度计算公式如公式(8)所示;

其中 表示电影j对于用户u的加权融合推荐度,Ru为与用户u发生过交互的所有电影的集合,wlj为电影l和电影j在全局模型中的相似度, 为电影l和电影j在用户u所属的聚类Pu对应的局部模型中的相似度,参数g为全局模型的权重参数;通过调节参数g来控制全局模型和局部模型在融合模型中的权重比例,通过确定最优权重参数g获得融合模型的最佳推荐效果;通过实验来确定在当前数据集中最佳的全局模型权重参数;在确定了模型中的所有参数之后,通过计算所有电影关于当前用户u的加权融合推荐度,按从大到小的排序,同时删除已经与当前用户发生过交互的电影,取排在前N位的电影推荐给当前用户;

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