推荐系统–矩阵分解(1)
推荐系统–矩阵分解(2)
推荐系统–矩阵分解(3)
推荐系统–矩阵分解(4)
推荐系统–矩阵分解(5)
推荐系统–矩阵分解(6)

7 基于情感分析的矩阵分解

7.1 引入

【摘要】推荐系统旨在基于丰富的信息预测用户的偏好,例如用户评分、人口统计和评论。 尽管评论比评级更稀疏,但它们提供了有关用户真实偏好的更详细和可靠的信息。 目前,评论通常用于提高推荐系统的可解释性。 在本文中,我们提出了基于情感的具有可靠性的矩阵分解(SBMF+R)算法来利用评论进行预测。 首先,我们开发了一种情感分析方法,使用一种新的基于星的字典构建技术来获得情感分数。 其次,我们设计了一个结合用户一致性和评论反馈的用户可靠性度量。 第三,我们将用户评分、评论和反馈纳入概率矩阵分解框架进行预测。 对八个亚马逊数据集的实验表明,SBMF+R 比最先进的算法更准确。

核心思想:分析发现,用户评论和用户评分存在一定的偏差(图1所示),为此我们将用户评论转换为情感分数,将用户评分、评论和反馈纳入概率矩阵分解框架进行预测。

7.2 评论的情感分析

在第一阶段,我们从评论文本构建基于星级的情感词典。 表 2 显示了从基于星的字典中选择的一些具有情感分数的单词。 基于星级的意思是我们在情感词的分类中考虑评分星级。 我们的直觉是 5 星的评论主要传达积极的情绪,反之亦然。
因此,评论中的关键词应该符合评论的整体情绪。 我们设计了两种构建字典的技术。 大多数现有的情感词典只用二个值(正或负)标记单词。 我们根据不同的情绪强度分配不同的分数以获得更准确的结果。 同一个词可以对不同类别的产品表达不同的情感。 因此,我们为每个类别构建了一个不同的字典来缓解这个问题。

否定可用于拒绝或拒绝语句。 我们考虑两种类型的否定反转来检查是否应该调整情绪分数。 一种否定完全颠倒了情绪的极性。 例如,如果我们假设“舒适”的分数是+1,那么“不舒服”的分数就反转为-1。 另一种类型的否定是非常积极(否定)的形容词,它稍微颠倒了极性。 例如,如果我们假设“优秀”的分数是+2,那么“不优秀”的分数乘以-0.5 到1。
情态是在句子中嵌入可能性、必要性或能力的语法表达。 它通过情态动词如“maybe”、“certainly”和“may”在语法上表达。 我们采用并考虑减弱情感强度的情态动词的方法。 因此,出现在情态范围内的情感词乘以0.5以抑制其强度。
表 3 显示了否定和模态操作后的最终情绪分数。

7.3 SBMF

考虑情感分数的矩阵分解优化目标函数为:

L(θ)=∑u,iIui[(rui−puTqi)2]+∑u,iIui[(Sui−puTqi)2]+λ(∥pu∥F2+∥qi∥F2)L(\theta)=\sum_{u, i} I_{u i}\left[\left(r_{u i}-p_{u}^{T} q_{i}\right)^{2}\right]+\sum_{u, i} I_{ui}\left[\left(S_{ui}-p_{u}^{T} q_{i}\right)^{2}\right]+\lambda(\|p_u\|_{F}^{2}+\|q_i\|_{F}^{2})L(θ)=u,i∑​Iui​[(rui​−puT​qi​)2]+u,i∑​Iui​[(Sui​−puT​qi​)2]+λ(∥pu​∥F2​+∥qi​∥F2​)
注意:为了保持上下文符号统一,图中的SijS_{ij}Sij​在公式中用SuiS_{ui}Sui​替换了。

7.4 SBMF+R


只有少数作者讨论了评分或评论在预测任务中是否更可靠。 我们同时考虑用户一致性和评论反馈作为可靠性衡量标准。 然后我们计算每个评级的可靠性度量,为它们分配个性化的权重。
我们将用户uuu 的评分向量表示为 ru=[ru1,…,run]r_u = [r_{u1}, \dots, r_{un}]ru​=[ru1​,…,run​]。 设 Su=[Su1,…,Sun]S_u = [S_{u1}, \dots, S_{un}]Su​=[Su1​,…,Sun​] 是我们使用情感分析计算的用户情感得分向量。 用户uuu 的一致性定义为用户评分向量与用户情感得分向量之间的欧氏距离 CuC_uCu​。 评分和评论之间的距离越大,用户的一致性越低。 用户一致性定义为
Cu=∑i=1n(Rui−Sui)2C_{u}=\sqrt{\sum_{i=1}^{n}\left(R_{ui}-S_{ui}\right)^{2}} Cu​=i=1∑n​(Rui​−Sui​)2​
除了用户一致性之外,我们还会考虑每条评论的有用性。 大多数电子商务网站都允许用户以赞成或反对的方式提供评论反馈。 此反馈被视为评论的有用性,反映了评论的真实性。 因此,我们使用正面反馈作为评论的有用性。 一些研究人员提出自动评估每个评论的反馈。让 FuiF_{ui}Fui​ 和 FuiPF_{ui}^PFuiP​表示用户 uuu对项目 tit_iti​评论的总票数和正面票数。 然后,评论HuiH_{ui}Hui​的有用性由下式给出:
Hui=FuiP/FuiH_{ui}=F_{ui}^{P} / F_{ui} Hui​=FuiP​/Fui​
让 WuiW_{ui}Wui​ 表示用户uuu对项目tit_iti​的评论的可靠性。 那么评分ruir_{ui}rui​ 的可靠性因子为:
Wui=Hui1−CuW_{ui}=\frac{H_{ui}}{1-C_{u}} Wui​=1−Cu​Hui​​
类似地,情感得分SuiS_{ui}Sui​的可靠性因子是 1−Wui1 − W_{ui}1−Wui​。 我们将可靠性区间归一化为 [0, 1]。 使用可靠性估计,我们最终获得每个评级的个性化权重。
我们根据其可靠性为评分和评论分配不同的权重。 计算可靠性因子 WuiW_{ui}Wui​ 后,误差平方和目标函数由下式给出:
L(θ)=∑u,iIui[Wui(rui−puTqi)2]+∑u,iIui[(1−Wui)(Sui−puTqi)2]+λ(∥pu∥F2+∥qi∥F2)\begin{aligned} L(\theta)=&\sum_{u, i} I_{u i}\left[W_{ui}\left(r_{u i}-p_{u}^{T} q_{i}\right)^{2}\right] \\ &+\sum_{u, i} I_{ui}\left[(1-W_{ui})\left(S_{ui}-p_{u}^{T} q_{i}\right)^{2}\right]+\lambda(\|p_u\|_{F}^{2}+\|q_i\|_{F}^{2}) \end{aligned} L(θ)=​u,i∑​Iui​[Wui​(rui​−puT​qi​)2]+u,i∑​Iui​[(1−Wui​)(Sui​−puT​qi​)2]+λ(∥pu​∥F2​+∥qi​∥F2​)​

参考文献

Sentiment based matrix factorization with reliability for recommendation

推荐系统--矩阵分解(4)相关推荐

  1. 推荐系统--矩阵分解(5)

    推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 8 基于隐式反馈的矩阵分解 8.1 引入 相 ...

  2. 推荐系统--矩阵分解(3)

    推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 5 TimeSVD++:增加时间因素 物品的 ...

  3. 推荐系统--矩阵分解(2)

    推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 3 BiasSVD:考虑偏置 有一些用户会给 ...

  4. 推荐系统--矩阵分解(1)

    推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 1 引入 一个矩阵可以分解为两个小矩阵的乘积 ...

  5. 推荐系统——矩阵分解

    一.隐因子模型(Latent Factor Model,LFM) LFM是推荐系统中的经典模型,它也就是2006年Simon Funk在博客中公开的算法,当时背景是Netflix Prize比赛.LF ...

  6. 入门推荐系统——矩阵分解

    1.隐语义模型与矩阵分解 协同过滤算法完全没有利用到物品本身或者是用户自身的属性, 仅仅利用了用户与物品的交互信息就可以实现推荐,是一个可解释性很强, 非常直观的模型.存在问题, 第一个就是处理稀疏矩 ...

  7. 推荐系统——矩阵分解FM

    矩阵分解 隐语义模型与矩阵分解 之所以我们提出隐语义模型与矩阵分解,原因就是[[协同过滤]]存在泛化能力弱的问题 而对于隐语义模型而言,我们可以利用隐向量来代表隐藏信息 此外,也可以在一定程度上弥补[ ...

  8. 【转载】推荐系统-矩阵分解-SVD-通俗易懂

    [转载[https://blog.csdn.net/u011412768/article/details/52972081#commentBox] 因为要用到基于SVD的推荐作为baseline,所以 ...

  9. 推荐系统--联邦学习下的矩阵分解(6)

    推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 9 应用于联邦学习的矩阵分解 这个部分主要参 ...

最新文章

  1. 使用VS.NET2003编写存储过程
  2. 151. 翻转字符串里的单词
  3. 深度学习(七)caffe源码c++学习笔记
  4. python反向缩进_在Pycharm中对代码进行注释和缩进的方法详解
  5. 《精通Spring4.X企业应用开发实战》读后感第五章(注入参数详解)
  6. ASP中 Request.Form中文乱码的解决方法
  7. colab文件夹上传到github
  8. [BZOJ] 1620: [Usaco2008 Nov]Time Management 时间管理
  9. 清华网红自行车火了!背后是登在《自然》上的黑科技
  10. iphone 方法总结
  11. 3. Web Dynpro for ABAP: Web Dynpro Window Web Dynpro Program
  12. python函数中文手册-python手册中文版 python函数中文手册.doc
  13. 【CTF/MISC】图片隐写题(binwalk/foremost/010editer配合使用)
  14. Flash Player离线安装包下载
  15. spark sql之日期函数
  16. matlab rand求圆周率,MATLAB做投针实验求圆周率
  17. discuz分类信息模版PHP,Discuz 社区分类信息模板使用教程
  18. 性能测试之jmeter(下载安装)
  19. 云计算技术优势和商业优势是什么,主要有哪些特点?
  20. TCHAR字符串的操作

热门文章

  1. android动态设置文本居中显示图片,Android DrawableTextView图片文字居中显示实例
  2. myeclipse怎么运行c语言,windows下MyEclipse安装配置C/C++开发环境
  3. 华为薪资等级结构表_华为21级程序员月薪曝光:月薪27w,什么概念!程序员中的战斗机...
  4. php守护进程内存溢出,$serv-close($fd); 服务端主动断开客户端有问题!
  5. 外设驱动库开发笔记1:AD56xx系列DAC驱动
  6. 利用OpenCV的Haar特征目标检测方法进行人脸识别的尝试(一)
  7. mysql 快速导出_mysql 快速导入导出
  8. php实现第三方邮箱登录_JavaScript实现第三方登录网站原理在这呢
  9. 最大值减最小值等于区间长度_呆哥数学每日一题 ——三角函数求余弦最小值...
  10. 为什么说Java 程序员必须掌握 Spring Boot?