推荐系统–矩阵分解(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−puTqi)2]+u,i∑Iui[(Sui−puTqi)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−CuHui
类似地,情感得分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−puTqi)2]+u,i∑Iui[(1−Wui)(Sui−puTqi)2]+λ(∥pu∥F2+∥qi∥F2)
参考文献
Sentiment based matrix factorization with reliability for recommendation