推荐算法|FM模型预测多分类原理简介

2021-12-06 15:38:51 浏览数 (1)

导读:上篇文章推荐算法|FM模型python中介绍了如何用FM模型解决二分类问题,本次我们介绍FM模型与softmax结合,解决多分类问题的原理逻辑。

1

从二分类到多分类

我们先来回顾一下根据训练好的参数得到二分类结果的过程。假设现在要根据训练好的模型判断用户是否为男性,用户特征向量为x,模型训练好的参数向量为w,对输入的x通过w进行加权求和后,经过激活函数作用(如sigmoid),则可得到该用户为男性的概率,进而判断出该用户是否为男性。

图一:根据训练好的模型参数得到样本二分类结果过程

由上可知,想要获得一个二分类结果,需要一组训练参数。

下面我们来看根据训练好的模型得到多分类结果的过程。多分类问题可以看作是多个二分类问题,如判定用户年龄段属于老年、中年、青年是一个多分类问题,该问题可以转化为三个二分类问题,即用户是否为老年、是否为中年、是否为青年,因此判断多个二分类问题需要多组参数,然后根据多组二分类结果的概率比较,得出样本最终分类结果。

图二:根据训练好的模型参数得到样本多分类结果过程

因为最终要根据三组概率的大小比较结果,得出样本最终所属的类别,因此多分类模型中使用的激活函数要保证每个二分类预测结果间的可比较性,softmax就是多分类问题中常用的激活函数之一。

2

softmax

softmax又叫做归一化指数函数,当C为多分类类别个数,a为x与w相乘后结果,则softmax为:

其中,p取值范围在0到1之间,且所有p的和为1。

即对每个样本x都会计算得到C个结果,对应该样本预测为相应类别的概率。

3

损失函数

机器学习算法进行迭代得到模型参数的主要步骤是:

1、选择损失函数

2、计算损失函数的偏导(梯度)

3、更新参数直至满足条件

下面按照上述过程介绍推导过程。

交叉熵涉及到计算每个类别的概率,所有使用softmax时常用交叉熵作为损失函数。交叉熵表达式为:

其中,y为真实分类结果向量,p为预测概率。

4

FM与softmax多分类预测推导原理

综上,我们可以得到FM与softmax结合,并计算得到交叉熵的整个链路

图三:FM多分类并计算出交叉熵过程

其中,

接下来就是要求参数的偏导,即:

逐项进行计算,则有:

在多分类问题中,y中只有一个值为1,其余都是0,因此有

所以,最终不同参数的梯度为:

参考链接:

https://segmentfault.com/a/1190000017320763

https://blog.csdn.net/tudaodiaozhale/article/details/80432552

https://blog.csdn.net/bqw18744018044/article/details/83120425

往期推荐:

推荐算法概述

推荐算法|矩阵分解模型

0 人点赞