基于双层矩阵分解的推荐方法

文档序号:10489053阅读:198来源:国知局
基于双层矩阵分解的推荐方法
【专利摘要】本发明公开了一种基于双层矩阵分解的推荐方法,主要解决现有技术推荐效果准确率不高的问题。其实现步骤为:1.读取用户指定文件并构造训练数据集和测试数据集;2.初始化第一层学习器的用户特征矩阵和物品特征矩阵;3.使用训练数据集优化第一个学习器的用户特征矩阵和物品特征矩阵;4.获取第二层学习器的训练数据;5.计算第一层与第二层学习器的权重,并优化第二层学习器的用户特征矩阵和物品特征矩阵;6.计算测试数据集中的用户对物品的推荐效果。本发明使用训练好的两层学习器参数及权重进行预测评分,降低了用户对物品的预测评分与真实评分之间的差值,增强了推荐效果,可用于用户对未知电影的预测评分及未知电影推荐。
【专利说明】
基于双层矩阵分解的推荐方法
技术领域
[0001] 本发明属于数据处理技术领域,特别涉及一种数据集推荐方法,可应用于用户对 未知电影的预测评分及未知电影推荐。
【背景技术】
[0002] 矩阵分解是推荐系统研究中的一个重要方向,它是使用不同用户对不同物品的评 分条目来不断地进行参数优化,来使参数达到最优,进而通过优化后的参数来给用户评价 未标记过的物品,来达到给用户推荐的目的。
[0003] 基于矩阵分解的推荐方法是目前一种常用的基本方法,基本思路是通过分解给定 用户对物品的评分矩阵,用两个低秩矩阵的乘积来逼近原来的评分矩阵,逼近的目标就是 使预测的评分矩阵和原来的评分矩阵之间的误差平方最小。两个低秩矩阵分别为用户和物 品的特征矩阵,矩阵中的这些特征向量可以简单地理解为用户对不同属性的偏好。矩阵分 解具有比较容易编程实现,时间和空间复杂度低,还具有良好的可扩展性的特点,但是,简 单的矩阵分解并不能得到很好地推荐效果。

【发明内容】

[0004] 本发明的目的在于针对已有技术的不足,提出一种基于双层矩阵分解的推荐方 法,以降低预测评分的误差,进而提高物品推荐的准确率。
[0005] 为实现上述目的,本发明的技术方案包括如下:
[0006] (1)从用户指定文件中读取包含用户、物品与评分信息的数据,将其存入原始评分 数据,记为D,并将原始评分数据按行数N以9:1的比例分成训练数据集与测试数据集,分别 记为Dl,D2,其中Dl为第一层学习器的训练数据;
[0007] (W初始仆,笛一尽受3器的用户特征矩阵P与物品特征矩阵Q:
[0008]
[0009] 其中,P、Q均满足高斯分布,二者的特征维度个数均为F ^。表示用户特征矩阵的均 值,Ou2表示用户特征矩阵的方差,μι表示物品特征矩阵的均值, 〇12表示物品特征矩阵的方 差;
[0010] (3)对用户特征矩阵P与物品的特征矩阵Q进行优化:
[0011] (3a)使用P、Q预测Dl中用户u对物品i的评分,记为?ΙΜ. = ,其中,Puf表示用户 u的特征向量,Qif表示物品i的特征向量,f =1,2,. . .,F;
[0012] (3b)计算用户对物品预测评分的误差函I
其中,K11,.为用户u 对物品i的真实评分;
[0013] (3c)使用随机梯度下降法优化L,得到第一层学习器训练好的用户特征矩阵P'与 物品特征矩阵Q ' ;
[0014] (4)获取第二层学习器的训练数据:
[0015] (4a)给定用户对物品预测评分与用户对物品真实评分差值的阈值t;
[0016] (4b)将Dl中的用户对相应物品进行预测评分,将预测评分与真实评分差值的绝对 值大于t的样本挑出,作为第二层学习器的训练数据,记为D3;
[0017] (5)根据D3的个数η计算第一层学习器的权重wl以及第二层学习器的权重w2:
[0018] wl=(N-n)/N
[0019] w2 = n/N
[0020] (6)利用与步骤(2)相同的方法构造第二层学习器的用户特征矩阵Pl与物品特征 矩阵Ql,并利用与步骤(3)中相同的方法得到训练好的第二层学习器的特征矩阵ΡΓ和Q1';
[0021] (7)根据测试数据集D2中的用户与物品,计算推荐效果:
[0022] (7a)利用已经训练好的两层学习器的参数?',〇',?1',〇1'以及两层学习器的权重 wl,w2在涮试教抿隼D2 h对相府用户与物品i+笪预测评分:
[0023]
[0024]兵甲,用尸与股/ift狩祉圯阵的维度,PV表示训练好的第一层学习器用户u的特 征向量,Pl'uf为训练好的第二层学习器用户U的特征向量,Q'lf表示训练好的第一层学习器 物品i的特征向量,Ql 'if表示训练好的第二层学习器物品i的特征向量,f=l,2,...,F;
[0025] (7b)根据计算出的&:κ?的值给用户进行物品推荐,由于愈":的值是介于1-5之间的 数,值越大表明物品越符合用户的需求,对于用户u未选择的物品i,推荐时将根据的值 从大到小依次进行推荐,推荐的物品个数由用户指定。
[0026] 本发明与现有技术相比具有如下优点:
[0027] 本发明通过训练两层学习器,使用两层学习器训练好的参数P',Q',P1',Q1'以及 两层学习器的权重wl,w2在测试数据集D2上对相应用户对物品计算预测评分,降低了用户 对物品的预测评分与真实评分之间的差值,从而提高了预测评分的准确率,增强了推荐效 果。
【附图说明】
[0028]图1为本发明的实现流程图;
【具体实施方式】
[0029]参照图1,本发明的实现步骤如下:
[0030] 步骤1,读取用户指定文件并构造训练数据集和测试数据集。
[0031] 从用户指定文件中读取包含用户、物品与评分信息的数据,将其存入原始评分数 据D中,并将原始评分数据按行数N以9:1的比例分成训练数据集与测试数据集,分别记为Dl 和D2,其中Dl为第一层学习器的训练数据,D2为测试数据集;
[0032] 本实例具体使用的数据集为Movie lens 100k,Movie lens IM 和 Ep inions。
[0033] 步骤2,初始化第一层学习器的用户特征矩阵和物品的特征矩阵。
[0034]将用户特征矩阵表示为P,物品特征矩阵表示为Q,该P、Q均满足高斯分布,二者的 特征维度个数均为F,且尸eN(//",o;2), 0€肩(//,.,$2),其中411表示用户特征矩阵的均值, Ou 2表示用户特征矩阵的方差,W表示物品特征矩阵的均值,〇12表示物品特征矩阵的方差。 [0035]步骤3,优化第一层学习器的用户特征矩阵和物品特征矩阵。
[0036] (3a)使用用户特征矩阵P和物品特征矩阵Q预测第一层学习器的训练数据Dl中用 户u对物品i的评分,记为lkui = ,其中,Puf表示用户u的特征向量,Qif表示物品i的特 征向量,F为用户特征矩阵P与物品特征矩阵Q的特征维度,f = l,2,...,F;
[0037] (3b)计算用户对物品预测评分的误差I其中,Km为用户u对 物品i的真实评分;
[0038] (3c)使用随机梯度下降法优化L,得到第一层学习器训练好的用户特征矩阵P'与 物品特征矩阵Q ' :
[0039] (3cl)初始化本次迭代的所有用户对物品预测评分的差值的平方和为S = 0,初始 化上一次迭代得到的所有用户对物品预测评分的差值的平方和为S'=0;
[0040] (3c2)令S'=S,S = 0;
[0041] (3c3)在每次迭代过程中利用用户和物品的特征矩阵计算训练数据中每个用户对 物品的预测评分
[0042]
[0043]其中,F为用户与物品特征矩阵的维度,Puf表示第一层学习器用户u的特征向量, Qif表示第一层学习器物品i的特征向量,f =1,2,...,F;
[0044] (3c4)计算每个用户对物品的预测评分愈".与真实评分Kw之间的差值E,以及所有 用户对物品预测评分的差值的平方和S:
[0045]
[0046] cL
[0047] ,得到用户特征矩阵的梯度方向^与物品特征矩阵的梯 度方P
[0048]
[0049] (3c6)将用户和物品的特征矩阵沿着负梯度方向迭代更新,得到用户特征矩阵Puf 与物品特征矩阵Qif:
[0050]
[0051] (3c7)将上一次迭代得到的所有用户对物品预测评分的差值的平方和S'与本次迭 代得到的所有用户对物品预测评分的差值的平方和S进行比较,若S>S',则得到训练好的 用户特征矩阵P'与物品特征矩阵Q',否则,返回步骤(3c2)。
[0052] 步骤4,获取第二层学习器的训练数据。
[0053] (4a)给定用户对物品预测评分与用户对物品真实评分差值的阈值t;
[0054] (4b)将第一层学习器测试数据Dl中的用户对相应物品进行预测评分,将预测评分 与真实评分差值的绝对值大于t的样本挑出,作为第二层学习器的训练数据,记为D3;
[0055] 步骤5,计算第一层学习器与第二层学习器的权重。
[0056] wl=(N-n)/N
[0057] w2 = n/N
[0058] 其中wl为第一层学习器的权重,w2为第二层学习器的权重,N为原始评分数据D中 的样本个数,η为第二层学习器训练数据集D3中的样本个数。
[0059]步骤6,初始化并优化第二层学习器的用户特征矩阵和物品特征矩阵。
[0060] 利用与步骤2相同的方法构造第二层学习器的用户特征矩阵Pl与物品特征矩阵 Q1,并利用与步骤3中相同的方法得到训练好的第二层学习器的用户特征矩阵Ρ1'和物品特 征矩阵Q1'。
[0061] 步骤7,计算测试数据集中的用户对物品的推荐效果:
[0062] (7a)利用已经训练好的第一层学习器的用户特征矩阵Ρ'和物品特征矩阵Q',训练
好的第二层学习器的用户特征矩阵ΡΓ和第二层学习器的物品特征矩阵Q1'以及第一层学 习器的权重wl和第二层学习器的权重w2在测试数据集D2上计算相应用户与物品预测评分 觀"
[0063]
[0064] 其中,F为用户与物品特征矩阵的维度,P'uf表示训练好的第一层学习器用户u的特 征向量,Pl' uf为训练好的第二层学习器用户u的特征向量,Q'lf表示训练好的第一层学习器 物品i的特征向量,Ql 'if表示训练好的第二层学习器物品i的特征向量,f=l,2,...,F;
[0065] (7b)根据计算出的预测评分的值给用户进行物品推荐,由于.的值是介于1-5 之间的数,值越大表明物品越符合用户的需求,对于用户u未选择的物品i,推荐时将根据 的值从大到小依次进行推荐,推荐的物品个数由用户指定。
[0066]本发明的推荐效果可通过以下计算进一步验证:
[0067] 1.计算测试数据D2中用户u对物品i的预测评分]|ω:与真实评分差值的平方和 sum:
[0068]
[0069] 2.计算测试数据D2中用户u对物品i的预测评分蔬κ与真实评分Eai差值的平方和 的均值RMSE:
[0070] RMSE = sum/N/10,
[0071] 均值越小表明推荐效果越好。
[0072] 本实例在数据集MovielenslOOk,MovielenslM和Epinions上用本发明与现有方法 pmf进行推荐效果对比,结果如表1。
[0073] 表1:本发明与现有方法pmf的推荐效果数值表
[0075] 其中,表1中的推荐效果评价指标RMSE是通过计算测试数据D2中用户u对物品i的 预测评分齒,,与真实评分Ka(差值的平方和的均值得到的,该值越小表明推荐效果越好,通 过在不同数据集上进行推荐效果验证,本发明得到的数值均优于已有pmf方法,表明本发明 能够提高推荐准确性。
【主权项】
1.基于双层矩阵分解的推荐方法,包括如下步骤: (1) 从用户指定文件中读取包含用户、物品与评分信息的数据,将其存入原始评分数 据,记为D,并将原始评分数据按行数NW9:1的比例分成训练数据集与测试数据集,分别记 为D1,D2,其中D1为第一层学习器的训练数据; (2) 初始化第一层学习器的用户特征矩阵P与物品特征矩阵Q:其中,P、Q均满足高斯分布,二者的特征维度个数均为F,yu表示用户特征矩阵的均值, 〇u2表示用户特征矩阵的方差,化表示物品特征矩阵的均值,表示物品特征矩阵的方差; (3) 对用户特征矩阵P与物品的特征矩阵Q进行优化: (3a)使用P、Q预测D1中用户U对物品i的评分,记为度。=G, ,其中,Puf表示用户U的 特征向量,Qif表示物品i的特征向量,f =1,2,...,F; (3b)计算用户对物品预测评分的误差庚中瓜为用户U对物品i 的真实评分; (3c)使用随机梯度下降法优化L,得到第一层学习器训练好的用户特征矩阵P'与物品 特征矩阵Q'; (4) 获取第二层学习器的训练数据: (4a)给定用户对物品预测评分与用户对物品真实评分差值的阔值t; (4b)将D1中的用户对相应物品进行预测评分,将预测评分与真实评分差值的绝对值大 于t的样本挑出,作为第二层学习器的训练数据,记为ND; (5) 根据ND的个数η计算第一层学习器的权重wlW及第二层学习器的权重 wl = (N-n)/N w2 = n/N (6) 利用与步骤(2)相同的方法构造第二层学习器的用户特征矩阵PI与物品特征矩阵 Q1,并利用与步骤(3)中相同的方法得到训练好的第二层学习器的特征矩阵ΡΓ和Q1'; (7) 根据测试数据集D2中的用户与物品,计算推荐效果: (7a)利用已经训练好的两层学习器的参数P',Q',ΡΓ,Q1'W及两层学习器的权重wl, w2在测试数据集D2上对相应用户与物品计算预测评分Μ。,;其中,F为用户与物品特征矩阵的维度,P'uf表示训练好的第一层学习器用户U的特征向 量,Pl'uf为训练好的第二层学习器用户U的特征向量,Q'lf表示训练好的第一层学习器物品 i的特征向量,Ql'if表示训练好的第二层学习器物品i的特征向量,f=l,2,...,F; (7b)根据计算出的扳。的值给用户进行物品推荐,由于辰,,,的值是介于1-5之间的数,值 越大表明物品越符合用户的需求,对于用户U未选择的物品i,推荐时将根据浪,,,的值从大到 小依次进行推荐,推荐的物品个数由用户指定。2. 根据权利要求1所述的方法,其中步骤(3c)中使用随机梯度下降法优化L,得到第一 层学习器训练好的用户特征矩阵P'与物品特征矩阵Q',按如下步骤进行: (3cl)初始化本次迭代的所有用户对物品预测评分的差值的平方和为S = 0,初始化上 一次迭代得到的所有用户对物品预测评分的差值的平方和为S'=0; (3c2)令S'=S,S = 0; (3c3)在每次迭代过程中利用用户和物品的特征矩阵计算训练数据中每个用户对物品 的预测评分皮;其中,F为用户与物品特征矩阵的维度,Puf表示第一层学习器用户U的特征向量,Qif表示 第一层学习器物品i的特征向量,f = l,2,. . .,F; (3c4)计算每个用户对物品的预测评分致w与真实评分M.W之间的差值E,W及所有用户 对物品预测评分的差值的平方和S:(3c5)对误差L求偏导数,得到用户特征矩阵的梯度方向^与物品特征矩阵的梯度方 DL 向帝 ~IJ(3c6)将用户和物品的特征矩阵沿着负梯度方向迭代更新,得到用户特征矩阵Puf与物 品特征矩阵化f:(3c7)将上一次迭代得到的所有用户对物品预测评分的差值的平方和S'与本次迭代得 到的所有用户对物品预测评分的差值的平方和S进行比较,若S〉S',则得到训练好的用户特 征矩阵P'与物品特征矩阵Q',否则,返回步骤(3c2)。3. 根据权利要求1所述的方法,其中步骤(4c)中用户对相应物品的预测评分,按如下公 式计算:其中霞表示用户对相应物品的预测评分,F为用户与物品特征矩阵的维度,Puf表示第 一层学习器用户u的特征向量,Qif表示第一层学习器物品i的特征向量,f =1,2,. . .,F。
【文档编号】G06F17/30GK105843928SQ201610182000
【公开日】2016年8月10日
【申请日】2016年3月28日
【发明人】李阳阳, 王东, 焦李成, 刘芳, 尚荣华, 马文萍, 马晶晶, 刘若辰
【申请人】西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1