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

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

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

7.1 引入

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

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

7.2 评论的情感分析

在第一阶段,我们从评论文本构建基于星级的情感词典。 表 2 显示了从基于星的字典中选择的一些具有情感分数的单词。 基于星级的意思是我们在情感词的分类中考虑评分星级。 我们的直觉是 5 星的评论主要传达积极的情绪,反之亦然。
因此,评论中的关键词应该符合评论的整体情绪。 我们设计了两种构建字典的技术。 大多数现有的情感词典只用二个值(正或负)标记单词。 我们根据不同的情绪强度分配不同的分数以获得更准确的结果。 同一个词可以对不同类别的产品表达不同的情感。 因此,我们为每个类别构建了一个不同的字典来缓解这个问题。
推荐系统--矩阵分解(4)_第2张图片
否定可用于拒绝或拒绝语句。 我们考虑两种类型的否定反转来检查是否应该调整情绪分数。 一种否定完全颠倒了情绪的极性。 例如,如果我们假设“舒适”的分数是+1,那么“不舒服”的分数就反转为-1。 另一种类型的否定是非常积极(否定)的形容词,它稍微颠倒了极性。 例如,如果我们假设“优秀”的分数是+2,那么“不优秀”的分数乘以-0.5 到1。
情态是在句子中嵌入可能性、必要性或能力的语法表达。 它通过情态动词如“maybe”、“certainly”和“may”在语法上表达。 我们采用并考虑减弱情感强度的情态动词的方法。 因此,出现在情态范围内的情感词乘以0.5以抑制其强度。
表 3 显示了否定和模态操作后的最终情绪分数。
推荐系统--矩阵分解(4)_第3张图片

7.3 SBMF

推荐系统--矩阵分解(4)_第4张图片

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

L ( θ ) = ∑ u , i I u i [ ( r u i − p u T q i ) 2 ] + ∑ u , i I u i [ ( S u i − p u T q i ) 2 ] + λ ( ∥ p u ∥ F 2 + ∥ q i ∥ F 2 ) 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,iIui[(ruipuTqi)2]+u,iIui[(SuipuTqi)2]+λ(puF2+qiF2)
注意:为了保持上下文符号统一,图中的 S i j S_{ij} Sij在公式中用 S u i S_{ui} Sui替换了。

7.4 SBMF+R

推荐系统--矩阵分解(4)_第5张图片
只有少数作者讨论了评分或评论在预测任务中是否更可靠。 我们同时考虑用户一致性和评论反馈作为可靠性衡量标准。 然后我们计算每个评级的可靠性度量,为它们分配个性化的权重。
我们将用户 u u u 的评分向量表示为 r u = [ r u 1 , … , r u n ] r_u = [r_{u1}, \dots, r_{un}] ru=[ru1,,run]。 设 S u = [ S u 1 , … , S u n ] S_u = [S_{u1}, \dots, S_{un}] Su=[Su1,,Sun] 是我们使用情感分析计算的用户情感得分向量。 用户 u u u 的一致性定义为用户评分向量与用户情感得分向量之间的欧氏距离 C u C_u Cu。 评分和评论之间的距离越大,用户的一致性越低。 用户一致性定义为
C u = ∑ i = 1 n ( R u i − S u i ) 2 C_{u}=\sqrt{\sum_{i=1}^{n}\left(R_{ui}-S_{ui}\right)^{2}} Cu=i=1n(RuiSui)2
除了用户一致性之外,我们还会考虑每条评论的有用性。 大多数电子商务网站都允许用户以赞成或反对的方式提供评论反馈。 此反馈被视为评论的有用性,反映了评论的真实性。 因此,我们使用正面反馈作为评论的有用性。 一些研究人员提出自动评估每个评论的反馈。让 F u i F_{ui} Fui F u i P F_{ui}^P FuiP表示用户 u u u对项目 t i t_i ti评论的总票数和正面票数。 然后,评论 H u i H_{ui} Hui的有用性由下式给出:
H u i = F u i P / F u i H_{ui}=F_{ui}^{P} / F_{ui} Hui=FuiP/Fui
W u i W_{ui} Wui 表示用户 u u u对项目 t i t_i ti的评论的可靠性。 那么评分 r u i r_{ui} rui 的可靠性因子为:
W u i = H u i 1 − C u W_{ui}=\frac{H_{ui}}{1-C_{u}} Wui=1CuHui
类似地,情感得分 S u i S_{ui} Sui的可靠性因子是 1 − W u i 1 − W_{ui} 1Wui。 我们将可靠性区间归一化为 [0, 1]。 使用可靠性估计,我们最终获得每个评级的个性化权重。
我们根据其可靠性为评分和评论分配不同的权重。 计算可靠性因子 W u i W_{ui} Wui 后,误差平方和目标函数由下式给出:
L ( θ ) = ∑ u , i I u i [ W u i ( r u i − p u T q i ) 2 ] + ∑ u , i I u i [ ( 1 − W u i ) ( S u i − p u T q i ) 2 ] + λ ( ∥ p u ∥ F 2 + ∥ q i ∥ F 2 ) \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,iIui[Wui(ruipuTqi)2]+u,iIui[(1Wui)(SuipuTqi)2]+λ(puF2+qiF2)

参考文献

Sentiment based matrix factorization with reliability for recommendation

你可能感兴趣的:(推荐系统,矩阵,推荐算法,机器学习)