显因子模型简介

简介:   SiGIR 2014在推荐系统方面收录了三篇很有价值的论文,提出了新的算法框架。在此介绍第一种算法框架(来自论文:Explicit Factor Models for Explainable Recommendation based on Phrase-level Sentiment Analysis,基于短语级情感分析的可解释型推荐模型——显因子模型)。

  SiGIR 2014在推荐系统方面收录了三篇很有价值的论文,提出了新的算法框架。在此介绍第一种算法框架(来自论文:Explicit Factor Models for Explainable Recommendation based on Phrase-level Sentiment Analysis,基于短语级情感分析的可解释型推荐模型——显因子模型)。如与本文有不同理解,不吝赐教。

一、概述
       EFM ( Explicit Factor Models,显因子模型),是针对LFM (Latent Factor Models,隐因子模型) 的不足而设计的。
  LFM的特点如下:
       a. 通过分类抽象出隐因子空间。在分类过程中,我们不需要关心分类的角度,结果都是基于用户打分自动聚类的。分类的粒度通过设置LFM的最终分类数来控制。
       b. 对于每个物品,并不是明确地划分到某一类,而是计算其属于该类的程度。
       c. 对于每个用户,计算他对每个类的兴趣度。
  不足在于:
       <1>单一的打分不能反映用户对物品各项特征的偏好,没有利用到用户评论。
       <2>因为类别是抽象出来的,没有明确的含义,所以向用户推荐物品时,无法解释推荐理由。
 
  EFM的特点如下:
       a. 通过对用户评论进行phrase-level(短语级)的情感分析,显式地抽取物品的特征和用户的意见。
       b. 对于每个物品,计算它对每个特征的包含程度。
       c. 对于每个用户,计算他对每个特征的喜好程度。
       d. 根据用户评论和打分两方面的数据(设置这两者的权重),计算得到用户-物品的喜好程度矩阵。
       e. 向用户推荐购买物品的同时,也建议用户不要购买某些物品。
  优点在于:
       <1>充分利用用户评论,提高算法的精准度。
       <2>因为物品的特征已经被显式的抽取出来,所以向用户推荐商品时,可以直观地解释推荐理由。从而帮助用户更快决定是否购买;特别是建议用户不要购买某些物品,有助于提高用户对系统的信任度。
 
二、EFM算法框架
  1. 构建情感词典
       EFM构建词典的过程用下面的例子说明:(有 阴影的格子表示用户对该物品进行了评论。)
      首先,从用户评论的 语料库抽取物品的特征(或者说,物品的某一方面):screen、earphone。然后,抽取用户对这些特征的意见:perfect、good。如果这些表示意见的 词汇本身是积极的情感,则用1表示;反之则用-1表示。所以在这个例子中,情感短语表示为(screen, perfect, 1), (earphone, good, 1),这一条条短语就组成了情感词典。
      根据情感词典,对用户评论进行情感分析, 判断用户的情感是肯定的还是否定的。例如:perfect是肯定的,而good是否定的,因为前面加了否定词not。所以,这个例子中,用户的评论就可以表示成 特征/情感对:(screen, 1), (earphone, -1)。
      把用户的评论表示为 特征/情感对,是构建情感词典的目的。
 
2. 构建矩阵
       EFM需要构建三个矩阵。
       第一个是 用户打分矩阵A,表示第 i 个用户对第 j 个物品打的分数。由于用户不一定对所有物品都打过分数,所以没打分则记为
       第二个是 用户-特征关注矩阵X,表示第 i 个用户对第 j 个特征的喜好程度:
其中,N表示用户打分的最高分数(一般为5分)。为了使该矩阵的每个值与用户打分矩阵的值范围都是[1, N],用sigmoid函数规范参数的取值。
       第三个是 物品-特征质量矩阵Y,表示第 i 个物品包含第 j 个特征的程度:
其中,k表示第 i 个物品的第 j 个特征被用户提到了几次。k次提到则被表示成k个特征/情感对,计算这k个对的取值(1或-1)的平均值,则为
 
3.  估计矩阵X、Y、A的缺失值
       矩阵X、Y中的非零数表示已有的用户或物品与特征之间的关系,而 则表示尚未清楚的 缺失值。为了估计这些缺失值,则采用 最优化损失函数的方法。
        损失函数是把一个事件 映射能表示与其相关的经济成本或机会成本的实数的一种函数。在统计学中,损失函数经常用来 估计参数。损失函数的未知参数用  θ 表示,决策的方案(已获得的实际值)用  d 表示,常见的损失函数有两种:
       二次损失函数:  L(θ,d) = c(θ − d)2
绝对损失函数:
 
       该算法采用的是 二次损失函数。采用最优化损失函数的方法,是指 最小化估计值与真实值的差距。所以X、Y的最优化损失函数如下:
与LFM相比,EFM已经抽取出了显式的特征。我们假设一些特征属于某一类型,而用户喜欢这一类型或者物品包含这一类型,由于特征是显式的,因而引入“显因子”的概念。上面表达式中的  r 就是指显因子的数量
      同理,估计打分矩阵A的缺失值也会用到显因子。同时,考虑到 用户在打分时还会考虑到其他一些潜在的因素,因此也引入了LFM中用到的 隐因子 表示隐因子的数量。A的最优化损失函数为:
然后把这两个损失函数合并为:
  ( * )
其中, 是防止过拟合的正则化项。
 
( * )式通过拉格朗日函数和KKT条件的推导后,得到矩阵V、U1、U2、H1、H2的更新公式,如下所示:
 
设置迭代次数进行迭代,或者在参数收敛后,得到以上5个矩阵的参数值,从而估计X、Y、A的缺失值:
 
 
 
4. Top-K推荐
       矢量 的行表示第 i 个用户对每个特征的喜好程度,选取其中 参数值最大的k个特征的下标,用 表示。然后用以下方法计算第 i 个用户对第 j 个物品的打分:
       其中, ,具体的值由实验确定。在大多数打分系统中,最高分数为5,所以N=5。
       最后,选择打分最高的前K个物品推荐给用户,并根据特征向用户解释推荐理由。

 

目录
相关文章
|
8天前
|
机器学习/深度学习 数据可视化 数据建模
使用ClassificationThresholdTuner进行二元和多类分类问题阈值调整,提高模型性能增强结果可解释性
在分类问题中,调整决策的概率阈值虽常被忽视,却是提升模型质量的有效步骤。本文深入探讨了阈值调整机制,尤其关注多类分类问题,并介绍了一个名为 ClassificationThresholdTuner 的开源工具,该工具自动化阈值调整和解释过程。通过可视化功能,数据科学家可以更好地理解最优阈值及其影响,尤其是在平衡假阳性和假阴性时。此外,工具支持多类分类,解决了传统方法中的不足。
15 2
使用ClassificationThresholdTuner进行二元和多类分类问题阈值调整,提高模型性能增强结果可解释性
|
28天前
|
存储 机器学习/深度学习 物联网
基于重要性加权的LLM自我改进:考虑分布偏移的新框架
本文提出一种新的大型语言模型(LLM)自我改进框架——基于重要性加权的自我改进(IWSI),旨在优化自动生成数据的质量。通过引入DS权重指标衡量数据的分布偏移程度(DSE),该方法不仅能确保答案正确性,还能过滤掉那些虽正确但分布上偏离较大的样本,以提升自我训练的效果。IWSI使用一个小的有效数据集来估算每个自生成样本的DS权重,并据此进行筛选。实验结果显示,相比于仅依赖答案正确性的传统方法,IWSI能更有效地提高LLM在多种任务上的表现。特别是在数学问题解答任务上,相较于基线方法,IWSI带来了显著的性能提升,证实了过滤高DSE样本的重要性及该方法的有效性。
26 0
基于重要性加权的LLM自我改进:考虑分布偏移的新框架
|
29天前
|
SQL 自然语言处理 算法
评估数据集CGoDial问题之计算伪OOD样本的软标签的问题如何解决
评估数据集CGoDial问题之计算伪OOD样本的软标签的问题如何解决
|
1月前
|
搜索推荐
淘宝粗排问题之引入未曝光样本和随机负样本对粗排模型有何影响,如何解决
淘宝粗排问题之引入未曝光样本和随机负样本对粗排模型有何影响,如何解决
|
1月前
|
SQL 自然语言处理 算法
预训练模型STAR问题之计算伪OOD样本的软标签的问题如何解决
预训练模型STAR问题之计算伪OOD样本的软标签的问题如何解决
|
3月前
偏微分方程有了基础模型:样本需求数量级减少,14项任务表现最佳
【6月更文挑战第16天】研究人员提出Poseidon模型,减少求解偏微分方程(PDEs)的样本需求,提升效率。在15个挑战任务中,该模型在14项表现最优。基于scOT的多尺度架构, Poseidon降低了计算成本,但仍有泛化和资源限制。[论文链接](https://arxiv.org/pdf/2405.19101)**
76 4
|
4月前
|
数据可视化 Java 数据挖掘
R语言Fama-French三因子模型实际应用:优化投资组合
R语言Fama-French三因子模型实际应用:优化投资组合
|
4月前
|
机器学习/深度学习
大模型开发: 解释批量归一化以及它在训练深度网络中的好处。
批量归一化(BN)是2015年提出的加速深度学习训练的技术,旨在解决内部协变量偏移、梯度消失/爆炸等问题。BN通过在每层神经网络的小批量数据上计算均值和方差,进行标准化处理,并添加可学习的γ和β参数,保持网络表达能力。这样能加速训练,降低超参数敏感性,对抗过拟合,简化初始化。BN通过稳定中间层输入分布,提升了模型训练效率和性能。
151 3
|
机器学习/深度学习
采用附加动量法和自适应学习率设计来改进bp神经网络的迭代速度,如果不迭代学习率会提高精度;迭代学习率(自适应)会加快收敛,但精度降低(Matlab代码实现)
采用附加动量法和自适应学习率设计来改进bp神经网络的迭代速度,如果不迭代学习率会提高精度;迭代学习率(自适应)会加快收敛,但精度降低(Matlab代码实现)
107 0
|
机器学习/深度学习 算法
【数字预失真(DPD)】静态DPD设计扩展为自适应设计及评估两种自适应DPD设计:基于(最小均方)LMS算法、使用递归预测误差方法(RPEM)算法研究(Matlab&Simulink实现)
【数字预失真(DPD)】静态DPD设计扩展为自适应设计及评估两种自适应DPD设计:基于(最小均方)LMS算法、使用递归预测误差方法(RPEM)算法研究(Matlab&Simulink实现)
154 0