• 论文:Kim D H, Park C, Oh J, et al. Convolutional Matrix Factorization for Document Context-Aware Recommendation[C]. conference on recommender systems, 2016: 233-240.
  • 实现代码:http://dm.postech.ac.kr/ConvMF 【协同过滤+文档建模】

用户对物品评价数据的稀疏性是影响推荐系统质量的主要因素之一。针对稀疏性问题,研究学者已经提出了几种建议,并考虑了辅助信息,提高了评级预测精度。特别是,当评价数据比较稀疏时,基于文档建模的方法context-aware通过额外使用文本数据(如评论、摘要或概要)来提高准确性。然而,由于词语袋模型bag-of-words固有的局限性,它们在有效利用文档的上下文信息方面存在困难,导致对文档的理解较浅。本文提出了一种新的上下文感知推荐模型——卷积矩阵因式分解(convmf),将卷积神经网络(CNN)与概率矩阵因式分解(PMF)相结合。因此,convmf捕获了文档的上下文信息,进一步提高了评级预测的准确性。对三个真实数据集的广泛评估表明,即使在评级数据非常稀疏的情况下,convmf仍显著优于最先进的推荐模型。这个方法还证明convmf成功地捕获了文档中单词的细微上下文差异。


1. 论文背景分析

电子商务服务中用户和物品数量的激增,增加了用户对物品评价数据的稀疏性。最后,这种稀疏性降低了传统协同过滤技术的等级预测精度。为了提高准确性,研究学者先后提出了几种建议,不仅考虑评级信息,还考虑辅助信息,如用户人口统计、社交网络和物品描述文档。最近,基于文档建模方法(如潜在dirichlet分配Latent Dirichlet Allocation, LDA和堆叠去噪自动编码器Stack Denoise Auto-Encoder, SDAE)的方法被提出额外利用物品描述文档(如评论、摘要或概要)。Wang等人提出了协同主题回归Collaborative Topic Regressio, CTR,将主题建模LDA和协同过滤结合在概率方法中, 提出了CTR的变体,并将LDA集成到协同过滤中,以分析具有不同集成方法的物品描述文档。最近,Wang等人提出了将SDAE整合到概率矩阵分解(PMF)中的协同深度学习(CDL),从而在评级预测准确性方面生成更准确的潜在模型。

然而,现有的集成模型并不能完全捕获文档信息。因为现有方法所依赖的词袋模型忽略了文档的上下文信息,如周围的单词和单词顺序。例如,假设在一个文档中给出了以下两句话:“people trust the man.”  “people betray his trust finally.”  因为LDA和SDAE认为该文档是一系列判别词汇的bag,它们无法区分“trust”的场景语义。准确地说,尽管“trust”的每一个出现似乎都有几乎相同的含义,但这些词之间有一个微妙的句法差异——分别是动词和名词。文档中的这种细微差别也是深入理解文档的重要因素,进一步的这种理解有助于提高评级预测准确性。为了解决上述问题,作者采用了卷积神经网络(CNN)。CNN在计算机视觉、自然语言处理和信息检索等各个领域表现出很高的性能。CNN通过对成分建模(如局部感受野、共享权重和子采样)有效地捕获图像或文档的局部特征。因此,CNN的使用有助于加深对文档的理解,并产生比LDA和SDAE更好的潜在模型,尤其是对于由于缺乏评级而诉诸于描述文件的物品。此外,CNN还可以利用预先训练好的单词嵌入模型,如Glove,来加深对物品描述文档的理解。注意,LDA和SDAE并不能利用预训练的单词嵌入模型,因为它们采用了词袋‘the bag-of-word’模型。

然而,现有的CNN并不适合推荐任务,因为2016年之前CNN的目标不同于推荐的目标。具体来说,2016年之前的的CNN主要解决分类任务,即预测单词、短语或文档的标签。相反,推荐的目标被认为是一个回归任务,旨在准确地估计用户对物品的评价。因此,现有的CNN不能直接应用于电子商务中的推荐任务。为了解决这一技术问题,我们提出了一种文档上下文感知推荐模型——卷积矩阵分解(ConvMFC),它利用卷积神经网络(CNN)捕获物品描述文档的上下文信息,进一步提高了评分预测的准确性。准确地说,ConvMF无缝地将CNN集成到PMF中(PMF通常用于推荐任务)。这样的集成推荐模型遵循推荐目标,最终有效地利用了协同信息和上下文信息。因此,即使评级数据非常稀疏,C噢女MF也能准确预测未知评级。

为了证明ConvMF的有效性,作者对三个不同的顶级数据集进行了评估。同时也对评级数据集的各种稀疏数据进行的广泛实验。 结果表明,2016年的时候ConvMF模型显著优于最先进的模型。ConvMF的优越性能验证了ConvMF生成的物品潜在模型能够有效地反映物品描述文档的上下文信息,即使在评级数据非常稀疏的情况下也是如此。此外,文章还定性地证明ConvMF确实捕获了文档中单词的细微上下文差异。以及预训练的单词嵌入模型是有助于提高ConvMF的评分预测精度。

这篇文章的创新点主要由以下几个方面:

  • 文章解决了基于词袋模型的方法的局限性,并开发了一种新的文档上下文感知推荐模型ConvMF
  • 为了利用评分和物品描述文档,文章在概率视角下无缝地将CNN整合到PMF中
  • 文章广泛地展示了ConvMF模型在三个顶级数据集的优越性,并给出了定量和定性结果

2. 最流行的协同过滤技术-矩阵因子分解MF

传统的协同过滤技术分为两类:基于记忆的方法(如最近邻)和基于模型的方法(如潜在因子模型)。一般来说,基于模型的方法可以生成更精确的推荐结果。然而,MF是最流行的基于模型的方法。

MF的目标是在共享的潜在空间中找到用户和物体潜在对应模型,其中用户-物体关系的强度(即用户对物品评分)由内积计算。假设我们有n个用户,m个物品,一个用户-物品评分矩阵是n×m。在MF中,用户i和j的潜在模型表示为k维模型,ui和vj。物品j接受用户i的评分rij,近似于用户i和物体j对应潜在模型的内积。训练潜在模型的一般方法是最小化损失函数L,它由实际评分和预测评级之间的平方误差项,以及尝试避免过度拟合问题的L2正则化项组成,如下所示:

其中,u是指用户向量; v是指物品向量; r表示用户对物品评分矩阵;I是指标函数,如果用户对物品有评分,Ii=1, 否则为0。很明显,I可以描述推荐数据的稀疏性和冷启动问题。

3. 卷积矩阵因子分解法

3.1 ConvMF的概率模型

图1:ConvMF模型的图结构。蓝色点框代表PMF部分(概率矩阵因子分解);红色点框代表CNN部分(CNN从文本中提取特征)

图1显示了ConvMF概率模型的概述,该模型将CNN集成到PMF中。假设现在有N个用户,M个物品,观测到的评分矩阵用R矩阵表示。然后,我们的目标是寻找用户-物品之间的潜在模型(即U∈k*N; V∈k*M);通过U、V我们可以重建出得分矩阵R。从概率的角度看,观测得分矩阵的条件分布可以计算如下:

N(x|μ,σ)是指高斯正态分布的概率密度函数;I是指标函数,如果用户对物品有评分,Ii=1, 否则为0。很明显,I可以描述推荐数据的稀疏性和冷启动问题。

作为用户潜在模型的一种生成模型,我们将传统的先验,即零均值球面高斯先验,放置在具有方差σU的用户潜在模型上。

然而,与传统PMF中物体潜在模型的概率模型不同,文章假设物体潜在模型是由三个变量生成的:CNN中的内部权重WXj代表物体j的文档,以及epsilon变量作为高斯噪声,这能够进一步优化基于物体的潜在评分模型。因此,最终的物体潜在模型是由以下方程式得出的:

对于CNN权重矩阵W中的每一个权重因子wk,文章采用零均值的球状高斯产生,这也是最常用的一种方式。因此,基于物体的潜在模型的条件分布可以表示如下:

其中X是物体的描述文档集。利用CNN模型得到的文档潜在向量作为高斯分布的平均值,利用物品的高斯噪声作为高斯分布的方差,作为CNN和PMF之间的桥梁,有助于全面分析描述文档和评级。

3.2 ConvMF的CNN架构

图2:ConvMF的CNN架构

CNN结构的目标是从物体文档中生成文档的潜在向量,结合epsilon变量用于组成物体的潜在模型。图2显示文章的CNN结构,由四层组成:1)嵌入层embedding layer、2)卷积层convolutional layer、3)池化层pooling layer 和 4)输出层 output layer

  • 嵌入层 embedding layer: 嵌入层是将原始文档转换为表示下一卷积层文档的密集数字矩阵。详细地说,文章将文档视为T个单词的序列,通过将文档中的字向量连接起来,将文档表示为一个矩阵。然后通过随机初始化或者采用Glove等预训练的嵌入模型对词向量进行初始化或初始化。通过优化过程对词向量进行了进一步的训练。
  • 卷积层 convolutional layer: 卷积层用于提取物品文档上下文特征。
  • 池化层 pooling layer: 池层从卷积层中提取具有代表性的特征,并通过池操作处理可变长度的文档,池操作构造固定长度的特征向量。
  • 输出层 output layer: 通常,在输出层获得的高级特性应该针对特定的任务进行转换。

3.3 优化方法

为了优化CNN的基于用户的潜在模型、基于物品的潜在模型、权重和偏差变量等变量,文章使用了最大后验概率(MAP)估计,如下所示:

4. 算法的实验论证

4.1 算法验证基本信息

  • 数据集

图3:算法测试的三个数据集

为了证明模型在评级预测方面的有效性,文章使用了从movie-Lens和Amazon-3获得的三个真实数据集。这些数据集包括用户对物品明确评分,评分范围为1到5。Amazon数据集包含对物品的评论,作为物品的描述文档。

  • 训练细节

我们使用python和keras库以及Nvidia Geforce Titanx GPU实现了ConvMF。为了训练CNN的权重,文章使用了基于RMSprop的批量训练方法,每个小批量包含128个训练物品。对于详细的CNN架构设置:1)将最大文档长度设置为300。2)随机初始化单词隐含向量,维度大小为200。这些词的潜在载体将通过优化过程进行训练。3)convmf+:通过预训练的单词嵌入模型初始化单词潜伏向量,尺寸为200。这些词的潜在载体将通过优化过程进行训练。4)在卷积层中,使用不同的窗口大小作为共享权重来考虑周围单词的不同长度,每个窗口大小使用100个共享权重。5)使用dropout,将dropout设置为0.2,以避免CNN过度拟合,而不是采用与CNN权重相关的L2正则化。

  • 评价方案

为了评估每个模型在真实数据集上的整体性能,我们将每个数据集随机分成一个训练集(80%)、一个验证集(10%)和一个测试集(10%)。训练集至少包含对每个用户-物体的评分,以便PMF处理所有用户-物体。作为评价指标,文章也采用均方根误差(RMSE),它直接关系到传统评级预测模型的目标函数。

文章报告了每个模型的测试错误,这在200次迭代中给出了最低的验证错误,并提前停止。为了保证结果的可靠性,我们从数据分割过程中重复了5次评估程序,并报告了平均测试误差。

4.2 实验结果

  • movieLen和Amazon数据集的量化结果

  • 结论

文章论述了在物体描述文档中考虑上下文信息,如周围单词和词序,可以加深对描述文档的理解,并开发了一种新的文档上下文感知推荐模型ConvMF,它将cnn无缝地集成到pmf中,以捕获上下文信息. 结果表明,ConvMF显著优于最先进的竞争对手,这意味着ConvMF能够很好地处理上下文信息的稀疏性问题。此外,由于ConvMF基于标准的基于mf的推荐模型pmf,因此ConvMF可以扩展到组合其他基于mf的推荐模型,例如只考虑评级的svd++。作为下一个研究方向,由于深部神经网络的无监督预训练对性能有很大影响,我们试图开发描述文档的卷积自动编码器。通过无监督的方式,使我们不仅可以预处理嵌入层的权重变量,还可以预处理convmf中cnn部分的所有剩余权重变量。我们预计,当评级数据非常稀疏时,AutoEncoder的这种无监督预培训会显著提高推荐的性能。

用于文档上下文感知推荐的卷积矩阵分解相关推荐

  1. Multi-Armed Bandit--基于时变多臂老虎机的在线上下文感知推荐

    Online Context-Aware Recommendation with Time Varying Multi-Armed Bandit 基于时变多臂老虎机的在线上下文感知推荐 摘要 为了预测 ...

  2. DocuWare平台——用于文档管理和工作流程自动化的内容服务平台详细介绍(上)

    DocuWare平台--用于文档管理和工作流程自动化的内容服务平台 成功实现办公自动化所需的一切 DocuWare 是一个先进的平台,可让您集中.快速.有效地管理.处理和利用业务信息. 我们的文档管理 ...

  3. 基于全文检索系统实现文档系统相关推荐功能

    目录 概述 1.搜索推荐 1.1 编辑距离 2.相关推荐 2.1 文档指纹(Simhash算法) 2.2 文档相似度(海明距离) 2.3 海量文档处理技巧 3.基于全文检索系统实现文档系统推荐 3.1 ...

  4. 推荐算法之--矩阵分解(Matrix Factorization)

    文章目录 推荐算法之--矩阵分解(Matrix Factorization) 1. 共现矩阵 2. 矩阵分解(MF) 3. SVD实现矩阵分解(MF) 4. 梯度下降 实现 矩阵分解(MF) 4.1 ...

  5. LSR:用于文档关系抽取的潜在图结构迭代优化推理方法

    每天给你送来NLP技术干货! 来自:AI自然语言处理与知识图谱 大家好,我是大林,今天给大家分享一篇ACL2020文档关系抽取的文章,作者是Brauch. 论文题目: Reasoning with L ...

  6. 批量文档处理软件推荐,同时处理 Word、Excel、PPT、PDF 等办公文件,支持批量格式转换、重命名和查找替换等

    概要:今天给大家带来的这款专门针对 Word.PPT.Excel.PDF 和记事本文本文件批量处理格式转换的软件--我的ABC软件工具箱.它集合了批量修改文件名称.批量修改文件内容.批量设置页眉页脚. ...

  7. 还在用Swagger生成接口文档?我推荐你试试它.....

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 JApiDocs是一个无需额外注解.开箱即用的SpringBoot ...

  8. springboot 中文文档_还在用 Swagger生成接口文档?我推荐你试试它

    JApiDocs是一个无需额外注解.开箱即用的SpringBoot接口文档生成工具. 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后 ...

  9. 还在用 Swagger(丝袜哥)生成接口文档?我推荐你试试它。。。

    作者:小鱼儿511 https://blog.csdn.net/dongbeiou/article/details/106771453 JApiDocs是一个无需额外注解.开箱即用的SpringBoo ...

最新文章

  1. 每日英语:China's Youth to Employers: I Quit
  2. python中time库是什么意思_python中time库的time.time()函数的作用是什么
  3. 编写你的第一个 Django 应用,第 4 部分
  4. 认识微服务-服务架构演变
  5. java如何查看调用记录_查看Java记录
  6. rust石头墙几个c4_石头在景观中的运用
  7. A股开盘:深证区块链50指数跌0.32%,118只概念股下跌
  8. java nio 如何使用_Java NIO 系列教程(转)
  9. 虚拟机linux gedit,Linux系统中把gedit改造成TextMate的方法
  10. 《剑指offer》第三十三题(二叉搜索树的后序遍历序列)
  11. 设计一个RC高通滤波器或低通滤波器
  12. 计算机二级题目之c运算符和表达式练习学习
  13. 苹果官方付费升级内存_苹果6 Plus升级内存后遇到刷机报错40维修过程【详解】...
  14. 为佳作喝彩: Google Play 2022 年度中国开发者最佳榜单
  15. 手把手教你在浏览器(chrom,edge)上安装Tampermonkey(油猴)(附所需所有内容链接)
  16. 数据库MySQL创库、创表基本命令
  17. C#开发微信订阅号、服务号视频教程-翟东平-专题视频课程
  18. 关于解决Android studio:The emulator process for AVD Pixel_4_XL_API_30 has terminated 以及改变AVD存放位置
  19. 自动调节式防涝井盖设计
  20. python安装环境配置linux_[Python学习] Linux环境下的Python配置,必备库的安装配置...

热门文章

  1. DSP、ARM和单片机的区别
  2. XML学习第三节 Schema介绍
  3. hdu 5636 Shortest Path(Floyd最短路)
  4. poj 1932(spfa判断环)
  5. NYOJ 119 士兵杀敌(三)
  6. linux shell 流程控制
  7. 实验一 OpenGL初识
  8. 图像白化MATLAB代码实现
  9. Git 学习笔记:自定义Git(完)
  10. Anaconda:conda install packages error 详解channel 设置