• 工作总结
  • 工作计划
  • 心得体会
  • 领导讲话
  • 发言稿
  • 演讲稿
  • 述职报告
  • 入党申请
  • 党建材料
  • 党课下载
  • 脱贫攻坚
  • 对照材料
  • 主题教育
  • 事迹材料
  • 谈话记录
  • 扫黑除恶
  • 实施方案
  • 自查整改
  • 调查报告
  • 公文范文
  • 思想汇报
  • 当前位置: 雅意学习网 > 文档大全 > 公文范文 > 正文

    基于相似度计算的深度神经网络矩阵分解推荐算法

    时间:2023-06-07 14:00:26 来源:雅意学习网 本文已影响 雅意学习网手机站

    陈辉,王锴钺

    (安徽理工大学 计算机科学与工程学院,安徽 淮南 232001)

    推荐系统(RS)通过分析数据中用户的历史行为信息、用户与项目的交互信息、时间信息等记录构建用户画像,为企业提供针对不同用户的有区别对待的用户忠诚度培养方式。在现有的针对个性化推荐服务的技术中,协同过滤推荐系统(CFRS)[1-2]相对简单有效,已被许多商业网站广泛使用。但随着网络上可访问的数据量急速增长,有用数据变得极为稀疏,使得向用户提供精准个性化服务,促使网站点击量、下载量、销售量等盈利项目增长变得十分困难。

    为了获得目标用户的兴趣,得到合适的推荐结果,一些学者采用基于邻域的协同过滤推荐算法[3],得到相似的用户或项目,进一步得到推荐结果。Surya等[4]考虑了用户的评分习惯,提出了一种基于离差均值的相似性度量方法。Kalamati等[5]利用Beta随机变量对类别信息进行智能数据建模,提出了一种基于类别的协同过滤方法。Fan等[6]结合调整后的余弦相似度,提出一种通过可靠性来计算用户相似度的方法。于金明等[7]提出了IPSS相似性度量方法。Jain等[8]将用户之间对同一项目的绝对差异值存储在一个用户相似性矩阵中,为相似性算法提供了一种新的改进思路。

    这些相似度算法大部分关注用户对项目的评分等级,以向量的形式比较距离,忽略了用户行为本身作为一个普通序列所具有的意义,而且用户对项目的倾向程度会根据时间的变化而改变,在用户对推荐结果需求数量较少时,还要尽可能把用户近期最为感兴趣的项目放在靠前的位置。本文为了解决这些问题,将用户行为作为序列而不是向量来使用,采用计算最长公共子序列(longest common subsequence,LCS)[9]的动态规划算法,比较两个用户序列间的相似性。但大数据量带来的数据稀疏以及推荐实时性问题,无法单纯通过计算相似度找到的相似用户来预测评分。

    基于模型的协同过滤推荐算法通过对训练数据的离线学习,得到模型的参数,获得线下预测模型,最后利用模型进行线上实时运算。矩阵分解就是其中运用较为广泛的一种协同过滤技术,可以随着用户信息的实时变化而改变推荐结果。Peng等[10]结合增量矩阵协因子分解模型得到了新的推荐算法。Xu[11]将用户间的社会信息同项目间的关系结合起来,使得用户与项目特征稳定分解。Yang等[12]整合用户与项目的交互信息以及社会网络来改进推荐算法。孙静等[13]通过NMF得到不同稀疏度的图像特征后,对其进行聚类计算。但这些补全矩阵的非线性扩展有相当大的局限性,如果没有可用的辅助信息或者辅助信息不完整,则非线性操作将不再适用。深度学习技术恰好能够恢复具有非线性结构的不完全矩阵数据,顾军华等[14]利用CNN的特征提取特性将多源数据信息融合到概率矩阵分解模型中。曾旭禹等[15]结合变分自编码器来感知上下文信息。He等[16]将多层感知机与协同过滤相结合,提出利用神经网络体系结构来建模用户和项目隐藏特征的方法。然而这些结合深度学习的矩阵分解模型注重于添加额外的辅助信息,反而将显性的评分反馈都做0-1处理,顾此失彼。

    为了提高推荐算法的效果,本文通过深度神经网络学习架构获得用户和项目之间的隐藏特征,使用内积计算用户和项目之间的交互;通过序列转换,将最长公共子序列引入深度神经网络矩阵分解推荐算法,找到相似用户,并在矩阵分解过程中保持这种联系,使得相似用户间的隐藏特征向量更加接近,以解决数据稀疏以及用户近期偏好对Top-N推荐的排序指标影响的问题。最后通过在Epinions数据集上与多个推荐方法进行实验对比,验证本文算法在3种常见评价指标上的优越性。

    1.1 最长公共子序列

    最长公共子序列(LCS)[17]是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的序列,通常用于判断两个序列的相似程度,其在数据压缩、生物信息学和文本编辑等领域被广泛应用。

    假定序列Ix={i1,i2,…,ix}∈I,并且Ix是由I的第一个元素开始,按I的顺序且不间断地直到I的第x个元素组成,以相同的规定得到Jy={j1,j2,…,jy}∈J。C( )表示最长公共子序列长度,LCS( )表示最长公共子序列。可以得到递推公式

    C(Ix,Jy)=

    (1)

    通过对C(Ix,Jy)的回溯,可以得到完整的LCS( )。

    1.2 用户序列的转换

    LCS是定义在两个字符序列上,若将其运用在协同过滤推荐算法中,需要定义序列如何生成。

    假设U={u1,u2,…,um}是一个用户集,I={i1,i2,…,in}是一个项目集,rui表示用户u对项目i的评分。此时固定的字符表由项目ID构成,因为项目ID不存在重复,所以每个符号表示一个项目ID。一旦确定代表用户时使用的字符表,就需要指定符号的排列顺序,因为LCS算法需要两个序列中的符号具有相同的排列顺序,所以在用户对推荐结果需求数量较少且用户偏好随时间变化时,要尽可能把用户近期最为偏好的项目放在前面。这时候就要根据用户对项目产生交互的时间对项目ID进行排序,得到的就是字符表的总序列,用户序列就是这个总序列的子序列。

    在实际运用中,评分的范围是有限的,如r={1,2,…,5},并且项目和它们的ID之间存在映射关系,因此使用项目ID和评分的组合以项目出现时间的顺序来构成用户序列

    f(u)=10I(u)+R(u),

    (2)

    式中:f表示用户序列转换函数;
    f(u)表示用户u的序列;
    I(u)表示用户u评价过的项目ID集合;
    R(u)表示用户u对所有项目的评分集合。

    转换函数可以根据不同场合对推荐结果的不同要求,以及数据源格式、内容的差异进行多种组合,且组合的方式也有多种,这就使得本文算法面对现实生活中样式繁多的数据源时具有较好的扩展性。

    1.3 改进的相似度计算方法

    在最初的LCS问题中,寻找的是两个字符串之间的精确匹配。然而,当处理用户数据时,需要某种程度的模糊性,假设两个用户对于同一个项目的评分差值在一定范围内就可以认为彼此具有相似的品味。因此,提出了一种LCS算法的变体来放宽匹配条件,即使用匹配阈值δ来决定序列的两个符号是否相等。比如布尔函数匹配bool(a,b,δ),如果a和b具有相同的值或者它们的差值小于δ,则输出为真。

    因为LCS的长度范围为[0,|Σ|](|Σ|表示字符表的长度),不能直接作为用户间的相似度度量,所以对其进行归一化,得到

    (3)

    式中:C(u,v,f,δ)表示两个用户序列的最长公共子序列的长度,由C(Ix,Jy)结合用户序列转换函数f以及匹配阈值δ得到;
    |f(u)|、|f(v)|表示用户u和v的序列长度。

    下面通过一个简单的例子来说明如何计算基于LCS的用户相似度。表1为用户对项目的评分,其中第1列为用户,第1行为项目ID;
    表2为每种情况下的相似度值。

    表1 用户u和v对项目的评分Tab.1 Item ratings between users

    表2中根据公式(2),利用项目ID以及用户对项目的评分,通过序列转换得到用户序列f(u)和f(v)。用户u和v之间的最长公共子序列长度C()的值通过公式(1)计算。当匹配阈值δ=0时,用户u和v之间的最长公共子序列长度C(u,v)=1,根据公式(3)计算归一化的用户间相似性sim(u,v)=0.08。考虑到在评分相差不多的情况下,用户间也具有一定的相似性,令δ=1,用户u和v之间的最长公共子序列长度C(u,v)=2,用户间相似性sim(u,v)=0.33。

    表2 δ的取值对于用户相似度的影响Tab.2 The influence of δ on user similarity

    2.1 深度神经网络矩阵分解模型

    假设有M个用户和N个项目,根据每个用户对各个项目的评价,生成一个M×N的稀疏评价矩阵R。矩阵中的项rui表示用户u对项目i的评分,如果评分未知,就将rui标记为null。定义Y∈RM×N为用户-项目交互矩阵,Y的构建方法为

    (4)

    不同于一般的深神经网络矩阵分解模型,在用户u对项目i的评分rui有观察值时,Yui=1,本文令Yui=rui,当评价未知时,将其标记为0。标记为0并不意味着用户不喜欢该项目,有可能是没有接触过该项目。

    Yu*表示用户u对所有项目的交互,可以在某种程度上表明用户的全局偏好。Y*i代表一个物品与所有用户的交互,可以在某种程度上表明一个项目的标签特征。以向量Yu*、Y*i为输入,运用深度神经网络架构,将用户和项目投射到一个潜在的结构化空间中,如图1所示。

    图1 深度神经网络矩阵分解模型Fig.1 Deep neural network matrix factorization model

    在实际应用中,真实数据集往往来自非线性潜在变量模型,具有非线性结构,因此需要隐藏层来拟合这些非线性数据。根据多层感知机(MLP)的原理,构造输入层

    h1=W1x+b1。

    (5)

    隐藏层有多层,具体层数将根据实验结果进行参数调整。本文为了缓解梯度消失以及计算复杂性问题,选取ReLU函数作为激活函数,给每层结点引入非线性因素

    g(x)=max(0,x),

    (6)

    隐藏层构造公式

    hL=g(WLhL-1+bL),L=2,…,N-1,

    (7)

    输出层构造公式

    y=g(WNhN-1+bN),

    (8)

    式中:x表示MLP的输入向量;
    hL表示第L个隐藏层;
    y表示MLP的输出向量;
    W表示权重矩阵;
    b表示偏置量。

    (9)

    (10)

    将交互矩阵Y的向量作为隐藏层的输入代入式(5)—式(7),通过逐级映射,最后由式(9)—式(10)得到隐藏特征向量Pu,Qi,式中:WU、WI分别表示用户深度网络以及项目深度网络的权重矩阵;
    bU、bI分别表示用户深度网络以及项目深度网络的偏置量。

    得到特征隐藏向量后,通过内积的方式得到预测值,设定如下深度神经网络矩阵分解模型(DMF)可以补全缺失矩阵

    (11)

    2.2 基于LCS相似度的深度神经网络矩阵分解模型

    本文在运用深度神经网络模型对用户-项目交互矩阵进行分析的同时,还考虑利用LCS算法,从而提供了一种新的视角来分析用户行为,找到具有相似序列模式的其他用户。将基于LCS的相似性计算方法运用于协同过滤推荐算法中寻找相似用户,对深度神经网络模型进行约束,提高模型预测精度。模型结构如图2所示。

    图2 基于LCS相似度的深度神经网络矩阵分解模型Fig.2 LCS based similarity calculation deep neural network matrix factorization model

    本文采用与 SocialMF算法[18]相同的假设,即用户偏好与他的相似用户偏好的平均值相似,使用LCS相似度算法sim(u,v)代替原本的信任度Tu,v,

    (12)

    式中:Nu表示相似用户集合;
    |Nu|表示相似用户个数。由于本文在构造输入矩阵Y时并没有将数据简化为0、1组合,而是继承了原始评分数值构成回归问题,所以采用均方差损失函数来构造代价函数,

    (13)

    式中:Iui为指示函数,当用户u对项目i有评价信息时Iui=1,否则Iui=0;
    P为用户隐藏特征矩阵;
    Q为项目隐藏特征矩阵。

    为了得到推荐模型,首先要运用动态规划方法计算LCS的长度,并且求出用户间的相似度。为描述方便,用户序列f(u)和f(v)分别记为Ia和Jb,最长公共子序列长度C(Ix,Jy)记为C(x,y),具体算法过程如下:

    然后最小化代价函数,按照逆误差传播算法即BP算法,训练基于LCS相似度的深度神经网络矩阵分解模型(SeqDMF),学习得到用户、项目隐藏特征矩阵以及神经网络中的各项参数。具体算法过程如下:

    3.1 数据集

    本文采用Epinions数据集进行实验,该数据集涵盖了分布在美国和欧洲的消费者对商品的评价,数据集中,用户数量为40 163个,项目数量为139 738个,评分稀疏度为0.011 8%。

    采用数据集中的前70%作为训练集,之后的20%作为评估模型性能的测试集。验证集在剩下的10%中根据需要抽取,用于前期寻找模型最优参数。

    3.2 评价标准

    HR@n:命中率,能直观地衡量用户感兴趣的项目是否在Top-N里。

    NDCG@n:归一化折损累计增益,是一个排序指标,用来衡量用户对推荐列表的满意程度,如果感兴趣的项目放在了前面,该值就会较大。

    MAE:平均绝对值误差,评估推荐系统预测的评分与用户给出的评分之间的差异。

    (14)

    (15)

    (16)

    3.3 实验结果与分析

    3.3.1 实验参数选取

    在验证集中随机抽取数据进行参数调优,不同数量隐藏层的对比实验如图3所示。隐藏层为0明显表现出其较差的推荐性能,没有隐藏层意味着模型还是线性的,这证明通过MLP的多个隐藏层进行非线性计算,将高维的交互矩阵降维映射到潜在空间中的低维向量是有必要的。虽然增加层数能使推荐结果继续向好发展,但效果并不明显,且增加了计算负担,考虑到内存消耗,本文将隐藏层数定为3。

    图3 隐藏层层数对命中率的影响Fig.3 Effect of hidden layer number on the hit rate

    输出层的节点数量继承自最后一层隐藏层并且保持不变,而输出的节点数量代表了隐藏特征向量的长度,即项目的标签数量,所以最后一层隐藏层的节点数量决定了模型的能力。本文假设最后一层隐藏层的节点数量为8、16、32、64,则隐藏层节点数对命中率的影响结果如图4所示。

    图4 隐藏层节点数对命中率的影响Fig. 4 Effect of hidden layer nodes on the hit rate

    根据实验结果,选择将最后一层的节点数量设置为32。虽然随着节点个数的增加,模型性能有所提升,但效果并不明显,考虑到参数调优选取的数据集是我们有所取舍之后形成的,稀疏度同原本数据集有一定差别,为防止之后在完整数据集上的模型过拟合,选择3层隐藏层的节点数分别为[128,64,32] ,则隐藏特征矩阵的特征数量为32 。

    图5为迭代次数对命中率的影响,结果表明模型在迭代10次之前的性能是有明显提高的,随后命中率趋于平缓,在迭代18次之后出现起伏,说明模型随着迭代次数的增加会出现过拟合现象,所以本文选择通过迭代18次来学习模型的参数。

    图5 迭代次数对命中率的影响Fig.5 Effect of iteration times on the hit rate

    3.3.2 对比实验分析

    SeqDMF算法与其它3种对比算法CBCF[5]、SPMF[10]、NeuMF[16]在Epinions数据集上的MAE测试效果如图6所示。

    图6 Epinions数据集上MAE比较Fig.6 Comparison of MAE on Epinions dataset

    CBCF算法与其他3种算法相比存在较大差距,且随着推荐项目数量的增加而出现误差增大的趋势。因为CBCF将用户的评分通过聚类算法分类到几个类别来减小基于用户的CF算法计算复杂度,减少了运算时间,但并不能保证预测精度。SPMF、NeuMF以及SeqDMF这3种运用矩阵分解的基于模型的CF算法对于稀疏矩阵的推荐效果较好,相比之下SeqDMF算法拥有最小的误差,并在推荐项目数量达到20时趋向于平稳。

    图7所示的命中率强调预测的准确性,随着推荐项目的增多,测试集中每个用户喜欢的项目被推荐的可能性越高,SeqDMF在项目数量达到10以后比其他算法更快趋于平稳,可以更好地适应对推荐项目数量有要求的场景。

    图7 Epinions数据集上命中率比较Fig.7 Comparison of HR@n on Epinions dataset

    如图8所示NDCG@n是一个排序敏感的指标,对比可知4种方法在MAE上的差别并不明显,SeqDMF显然在NDCG@n这一评价标准上比其他3种算法更有优势。因为我们在相似度的计算方法上有较大的突破,将用户相似计算从序列的角度出发摒弃传统的基于离散分布求距离度量的方法,采用了基于LCS的相似度算法,还可以根据不同应用场合的需求,自由设定一种合适的序列转换方法。本文在设定转换方法时考虑的是用户兴趣随时间变化的不确定性,使推荐结果更接近近期的兴趣,而深度神经网络与LCS的应用让符合用户兴趣的推荐结果出现在更靠前的位置。

    图8 Epinions数据集上归一化折损累计增益比较Fig.8 Comparison of NDCG@n on Epinions dataset

    为了解决数据稀疏以及Top-N推荐的排序指标问题,本文采用深度神经网络矩阵分解模型将用户和项目交互矩阵投影到潜在空间中的低维向量中,并且将最长公共子序列(LCS)方法引入到矩阵分解模型,进而提出了一种基于LCS相似度的深度神经网络矩阵分解推荐算法。通过对Epinions数据集的实验分析表明,该算法能有效提升推荐性能,特别是在排序指标上取得了明显提高。但本文只考虑了相似用户对推荐性能的影响,忽略了相似项目的作用。由于存在数据的稀疏性和大量缺失的未被观察到的数据,在下一步的研究工作中,应考虑将额外的辅助数据整合到项目相似度中,如时间因素、评论文本等,利用项目的相似性,结合用户的相似性更有效地为用户进行推荐。

    猜你喜欢 神经网络矩阵深度 基于递归模糊神经网络的风电平滑控制策略现代电力(2022年2期)2022-05-23四增四减 深度推进快乐学习报·教育周刊(2022年16期)2022-05-01深度理解一元一次方程中学生数理化·七年级数学人教版(2020年11期)2020-12-14神经网络抑制无线通信干扰探究电子制作(2019年19期)2019-11-23简约教学 深度学习福建基础教育研究(2019年6期)2019-05-28基于神经网络的中小学生情感分析电子制作(2019年24期)2019-02-23初等行变换与初等列变换并用求逆矩阵中央民族大学学报(自然科学版)(2016年3期)2016-06-27矩阵南都周刊(2015年4期)2015-09-10矩阵南都周刊(2015年3期)2015-09-10矩阵南都周刊(2015年1期)2015-09-10

    推荐访问:神经网络 矩阵 分解

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章