首页 > 其他分享 >【机器学习(八)】分类和回归任务-因子分解机(Factorization Machines,FM)-Sentosa_DSML社区版

【机器学习(八)】分类和回归任务-因子分解机(Factorization Machines,FM)-Sentosa_DSML社区版

时间:2024-10-15 10:11:31浏览次数:7  
标签:mathbf df 模型 Factorization Sentosa DSML hat FM

@

目录

一、算法概念

  因子分解机(Factorization Machines, FM)是一种基于矩阵分解的机器学习算法,主要解决高维稀疏数据下的特征交互和参数估计问题。FM 通过引入特征组合和隐向量的矩阵分解来提升模型表现,特别适合处理推荐系统等场景中的数据稀疏性和特征交互复杂性。

  FM 可以用于分类和回归任务,是线性模型的扩展,能够高效地捕捉特征之间的交互作用。FM 的核心是通过低维向量的内积表示特征交互,使得其参数数量随维度线性增长,从而降低计算复杂度。
在这里插入图片描述
  FM 的主要特点:
  $\bullet$有监督学习模型,适用于回归和分类任务。
  $\bullet$通过低维向量的内积表示特征交互,模型结构保持线性。
  $\bullet$常用训练方法:随机梯度下降(SGD)、交替最小二乘法(ALS)和马尔可夫链蒙特卡洛(MCMC)。
  FM 模型通过矩阵分解对特征交互建模,并且在处理稀疏数据时有显著优势,常用于推荐系统。

二、算法原理

(一) FM表达式

  为了使系统能够进行预测,它依赖于由用户事件记录生成的可用数据。这些数据是表示兴趣和意图的交易记录,例如:下载、购买、评分。
  对于一个电影评论系统来说,交易数据记录了用户 $u \in U$ 在某一时间 $t \in R$ 对电影(物品) $i \in I$ 给出的评分 $r \in{1, 2, 3, 4, 5 }$ ,由此产生的数据集可以表示如下:
在这里插入图片描述
  用于预测的数据表示为一个矩阵 $X \in\mathbb{R}^{m \times n}$ ,其中包含总共 $m$ 个观测值,每个观测值由一个实值特征向量 $x \in\mathbb{R}^{n}$ 组成。来自上述数据集的特征向量可以表示为:
在这里插入图片描述
  其中, $n=| U |+| I |+| T |$ ,即 $x \in\mathbb{R}^{n}$ 也可以表示为 $x \in\mathbb{R}^{| U |+| I |+| T |}$ ,其中训练数据集的表达式为 $D={( x^{( 1 )}, y^{( 1 )} ), ( x^{( 2 )}, y^{( 2 )} ), \ldots, ( x^{( m )}, y^{( m )} ) }$ 。训练目标是估计一个函数 $\hat{y} ( x ) : \mathbb{R}^{n} \to\mathbb{R}$ ,当提供第 $i$ 行 $x_{i} \in\mathbb{R}^{n}$ 作为输入时,能够正确预测对应的目标值 $y_{i} \in\mathbb{R}$ 。
  FM模型的计算表达式如下所示:
在这里插入图片描述
   $< {\mathbf{v}}{i}, {\mathbf{v}} >$ 是交叉特征的参数,可以由一组参数定义:
$$
< {\mathbf{v}}{i}, {\mathbf{v}} >=\hat{w}{i, j}=\sum^{k} v_{i, f} \times v_{j, f}
$$
  当 $k$ 足够大时,对于任意对称正定的实矩阵 $\widehat{W} \in\mathbb{R}^{n \times n}$ ,均存在实矩阵 $V , \in, \mathbb{R}^{n \times k}$ ,使得$\widehat{W}=V V^{\top}$成立:
$$\hat{\mathbf{W}} =
\begin{bmatrix}
\hat{w}{1,1} & \hat{w} & \cdots & \hat{w}{1,n} \
\hat{w}
& \hat{w}{2,2} & \cdots & \hat{w} \
\vdots & \vdots & \ddots & \vdots \
\hat{w}{n,1} & \hat{w} & \cdots & \hat{w}_{n,n}
\end{bmatrix}
= \mathbf{V}^{T} \mathbf{V} =
\begin{bmatrix}
{\mathbf{v}}_1^{T} \
{\mathbf{v}}2^{T} \
\vdots \
{\mathbf{v}}n^{T}
\end{bmatrix}
\begin{bmatrix}
{\mathbf{v}}1 &{\mathbf{v}}2 & \cdots & {\mathbf{v}}n
\end{bmatrix}$$
  其中,模型待求解的参数为:
$$
w
\in\mathbb{R}, \quad\mathbf{w} \in\mathbb{R}^{n}, \quad\mathbf{V} \in\mathbb{R}^{n \times k}
$$
  其中:
  $\bullet$ $w
$ 表示全局偏差。
  $\bullet$ $w
$ 用于捕捉第 $i$ 个特征和目标之间的关系。
  $\bullet$ $\hat{w}
$ 用于捕捉 $( i, j )$ 二路交叉特征和目标之间的关系。
  $\bullet$ ${\mathbf{v}}
$ 代表特征 $i$ 的表示向量,它是 $\mathbf{V}$ 的第 $i$ 列。

(二)时间复杂度

  根据FM模型计算表达式,可以得到模型的计算复杂度如下:
$$
{n+( n-1 ) }+\left{\frac{n ( n-1 )} {2} [ k+( k-1 )+2 ]+\frac{n ( n-1 )} {2}-1 \right}+2={ O} ( k n^{2} ),
$$
  通过对交叉项的分解和计算,可以降低时间复杂度为${ O} ( k n )$,计算过程如下所示:
在这里插入图片描述
  对于交叉特征,它们的交叉矩阵是一个对称矩阵,这里通过对一个 3x3 对称矩阵的详细分析,展示如何通过减少自交互项和利用对称性来优化计算。最终的结果是简化方程,并且将计算复杂度从二次方降低为线性级别,使模型能够更加高效地处理稀疏数据场景。
  首先,使用一个 3x3 的对称矩阵,图中表达式为计算目标:在这里插入图片描述
  对目标表达式进行展开,展开后对内积进行计算,左式表示 3x3 对称矩阵的一半(对称矩阵的上三角部分)
在这里插入图片描述
  右式表示需要从左式中减去的部分,右式为对称矩阵中自交互的部分,即对角线部分的计算。
在这里插入图片描述
  最终推导,得到:
$$\hat{y} ( {\bf x} )=w_{0}+\sum_{i=1}^{n} w_{i} \times x_{i}+\frac{1} {2} \sum_{f=1}^{k} \left( \left( \sum_{i=1}^{n} v_{i, f} \times x_{i} \right){2}-\sum_{i=1} v_{i, f}^{2} \times x_{i}^{2} \right) $$
  其计算复杂度为${ O} ( k n )$:$$k {[ n+( n-1 )+1 ]+[ 3 n+( n-1 ) ]+1 }+( k-1 )+1={\cal O} ( k n )$$

(三)回归和分类

  FM 模型可以用于求解分类问题,也可以用于求解回归问题。在回归任务中,FM 的输出$\hat{y} ( {\bf x} )$可以直接作为连续型预测变量。目标是优化回归损失函数,
  最小二乘误差(MSE):最小化预测值与实际值之间的均方误差。损失函数表达式如下所示:
$$
l(\hat{y}(x), y) = (\hat{y}(x) - y)^2
$$
  对于二分类问题,使用的是Logit或Hinge损失函数:
$$l(\hat{y}(x), y) = -\ln \sigma(\hat{y}(x) y)$$
  其中,σ 是Sigmoid(逻辑函数),

标签:mathbf,df,模型,Factorization,Sentosa,DSML,hat,FM
From: https://www.cnblogs.com/KennethYuen/p/18466892

相关文章

  • 【机器学习(十一)】糖尿病数据集分类预测案例分析—XGBoost分类算法—Sentosa_DSML社
    @目录一、XGBoost算法二、Python代码和Sentosa_DSML社区版算法实现对比(一)数据读入和统计分析(二)数据预处理(三)模型训练与评估(四)模型可视化三、总结一、XGBoost算法  关于集成学习中的XGBoost算法原理,已经进行了介绍与总结,相关内容可参考【机器学习(一)】分类和回归任务......
  • 【机器学习(十三)】机器学习回归案例之股票价格预测分析—Sentosa_DSML社区版
    @目录一、背景描述二、Python代码和Sentosa_DSML社区版算法实现对比(一)数据读入(二)特征工程(三)样本分区(四)模型训练和评估(五)模型可视化三、总结一、背景描述  股票价格是一种不稳定的时间序列,受多种因素的影响。影响股市的外部因素很多,主要有经济因素、政治因素......
  • 【机器学习(十二)】机器学习回归案例之二手汽车价格预测—XGBoost回归算法—Sentosa_D
    @目录一、算法和背景介绍二、Python代码和Sentosa_DSML社区版算法实现对比(一)数据读入与统计分析(二)数据处理(三)特征选择与相关性分析(四)样本分区与模型训练(五)模型评估和模型可视化三、总结一、算法和背景介绍  关于XGBoost的算法原理,已经进行了介绍与总结,相关内容......
  • 【机器学习(十三)】机器学习回归案例之股票价格预测分析—Sentosa_DSML社区版
    文章目录一、背景描述二、Python代码和Sentosa_DSML社区版算法实现对比(一)数据读入(二)特征工程(三)样本分区(四)模型训练和评估(五)模型可视化三、总结一、背景描述  股票价格是一种不稳定的时间序列,受多种因素的影响。影响股市的外部因素很多,主要有经济......
  • 【机器学习(十)】时间序列案例之月销量预测分析—Holt-Winters算法—Sentosa_DSML社区
    文章目录一、Holt-Winters算法原理(一)加法模型(二)乘法模型(三)阻尼趋势二、HoltWinters算法优缺点优点缺点三、Python代码和Sentosa_DSML社区版算法实现对比(一)数据读入和统计分析(二)数据预处理(三)模型训练和模型评估(四)模型可视化四、总结一、Holt-......
  • 【第十六章:Sentosa_DSML社区版-机器学习之生存分析】
    【第十六章:Sentosa_DSML社区版-机器学习之生存分析】16.1加速失效时间回归1.算子介绍        加速失效时间回归模型Acceleratedfailuretime(AFT)是一个监督型参数化的回归模型,它可以处理删失数据。它描述了一个生存时间的对数模型,所以它通常被称为生存分析的对......
  • 【机器学习(九)】分类和回归任务-多层感知机 (MLP) -Sentosa_DSML社区版
    文章目录一、算法概念二、算法原理(一)感知机(二)多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数3、反向传播算法三、算法优缺点(一)优点(二)缺点四、MLP分类任务实现对比(一)数据加载和样本分区1、Python代码2、Sentosa_DSML社区版(二)模型训练1、Python代码2、Sent......
  • 【第十二章:Sentosa_DSML社区版-机器学习回归】
    【第十二章:Sentosa_DSML社区版-机器学习回归】12.1 线性回归1.算子介绍        线性回归模型(BuildLRNode)是一个非常经典有效的回归模型,它假设所有特征变量和目标变量之间存在线性关系。通过训练来求得各个特征的权重以及截距。同时可以通过L1,L2正则化来减少模型......
  • 【机器学习(三)】分类和回归任务-随机森林-Sentosa_DSML社区版
    文章目录一、算法概念二、算法原理(一)定义(二)袋外数据三、随机森林的优缺点(一)优点(二)缺点四、随机森林分类任务实现对比(一)数据加载1、Python代码2、Sentosa_DSML社区版(二)样本分区1、Python代码2、Sentosa_DSML社区版(三)模型训练1、Python代码2、Sentosa_DSML社区版(四)模......
  • SciTech-Mathmatics-UNIQUE FACTORIZATION THEOREM
    SciTech-Mathmatics-UNIQUEFACTORIZATIONTHEOREMElementary_Number_Theory:https://math.libretexts.org/Bookshelves/Combinatorics_and_Discrete_Mathematics/Elementary_Number_Theory_(Clark)/01%3A_Chapters/1.11%3A_Unique_Factorizationhttps://public.csusm.edu/......