推荐算法之逻辑回归模型族

目录

 

1.协同过滤算法族的不足

2.逻辑回归算法

3.Poly2算法

4.FM算法

5.FFM


1.协同过滤算法族的不足

之前的协同过滤算法族局限在于,它仅仅关注用户与物品的交互信息(受限于共现矩阵),而忽视了用户,物品,场景点信息,这使得协同过滤算法在进行推荐的时候忽视许多其他有用的信息。机器学习针对这一问题提出了很好的解决办法,我们将根据推荐算法质量逐步介绍一些逻辑回归算法族模型。

2.逻辑回归算法

逻辑回归模型能够利用用户、物品、上下文等多种不同的特征,生产较为“全面”的推荐结果。其数学模型如下:

推荐算法之逻辑回归模型族

推荐算法之逻辑回归模型族

在逻辑回归中,比如用户的年龄、性别、物品属性、物品描述、当前时间、当前地点等起都可以作为输入的特征推荐算法之逻辑回归模型族,所有特征线性组合以后经过一个sigmoid函数计算其值得推荐的概率。

优化函数:

推荐算法之逻辑回归模型族

优点:结合了多种特征进行推荐,比较符合人的思维。

缺点:仅仅考虑单一特征,未考虑组合特征。

3.Poly2算法

在正式介绍Poly2模型之前,我们先要搞清楚,什么是组合特征。

科比 霍华德 纳什 保罗-加索尔 西部第七
兰多夫 康利 鲁迪-盖伊 马克-加索尔 西部第五

若两方球队打比赛,如果单单从个人实力上来看(单一特征),也许科比队的可能就赢了,但是兰多夫与康利在一起搭档时,会爆发出更大的可能性(特征组合),因此兰多夫队胜利。在之前的逻辑回归仅仅考虑了单一特征,而未考虑交叉特征。Poly2算法在逻辑回归的基础上,引入了二阶交叉特征,起数学模型如下所示:

推荐算法之逻辑回归模型族

推荐算法之逻辑回归模型族

我们可以发现,Poly2算法改进逻辑回归只考虑单一特征的问题,但是Poly算法也带来了另外一个问题,即数据稀疏的问题。

我们在实际应用场景中,对于类别的数据,我们会将其进行one-hot编码。如下一个简单的例子:

点击 性别 星期
1 星期一
0 星期二

 

我们进行one-hot编码将类别数据转为数值型数据,即:

点击 星期一 星期二 星期三 星期四 星期五 星期六 星期日
1 1 0 1 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0

若我们考虑组合特征,则:

点击 星期一 星期二 星期三 星期四 星期五 星期六 星期日 点击&星期一 点击&星期二 ...
1 1 0 1 0 0 0 0 0 0 1 0  
0 0 1 0 1 0 0 0 0 0 0 0  

 

由于ohe-hot编码本身对类别数据就会产生大量的0,特征交叉以后组合特征使得特征数变多了很多,这会引入大量的0造成特征稀疏的问题,更致命的是,很可能导致交叉权重系数推荐算法之逻辑回归模型族无法更新。以下给出详细推导过程:

推荐算法之逻辑回归模型族

推荐算法之逻辑回归模型族

其损失函数依旧是交叉熵,即:

推荐算法之逻辑回归模型族

我们分别计算权重系数的偏导数:

推荐算法之逻辑回归模型族

推荐算法之逻辑回归模型族

推荐算法之逻辑回归模型族

观察交叉特征的梯度推荐算法之逻辑回归模型族,最后推导的结果为:推荐算法之逻辑回归模型族,其中由于组合特征数据的稀疏性推荐算法之逻辑回归模型族大概率为0,进而导致梯度为0,这就会造成在梯度更新的时候无法更新。而FM算法便是针对这个问题进行改进。

4.FM算法

针对Poly2算法存在的交叉特征权重系数梯度无法更新问题,FM提出为每个特征向量计算一个隐特征向量,如下图所示:

Poly2:

  feature1&feature2 feature1&feature3 feature2&feature3
权重系数 推荐算法之逻辑回归模型族(标量) 推荐算法之逻辑回归模型族 推荐算法之逻辑回归模型族

 

FM:

  feature1&feature2 feature1&feature3 feature2&feature3

隐特征

向量(k纬)

0.56

0.12

.

.

.

0.34

0.12

0.43

.

.

.

0.87

0.98

0.32

.

.

.

0.45

 

每个交叉特征权重系数为这进行交叉的两个特征内积所得,因此原来的Poly2数学模型为:

推荐算法之逻辑回归模型族

推荐算法之逻辑回归模型族

而FM模型数学模型为:

推荐算法之逻辑回归模型族

推荐算法之逻辑回归模型族

推荐算法之逻辑回归模型族。而隐特征向量的实现如下图所示:

推荐算法之逻辑回归模型族

即将推荐算法之逻辑回归模型族权重系数矩阵推荐算法之逻辑回归模型族用一个推荐算法之逻辑回归模型族矩阵来表示(因为推荐算法之逻辑回归模型族是实对称矩阵,只要k足够大,一定存在矩阵推荐算法之逻辑回归模型族,使其满足推荐算法之逻辑回归模型族),这一步就是矩阵分解的思想,在协同过滤中,将推荐算法之逻辑回归模型族共现矩阵分解为推荐算法之逻辑回归模型族用户矩阵和推荐算法之逻辑回归模型族物品矩阵,这里有异曲同工之妙,即将推荐算法之逻辑回归模型族交叉特征权重系数矩阵分解为推荐算法之逻辑回归模型族交叉特征隐向量矩阵,其中隐特征向量的维度为推荐算法之逻辑回归模型族推荐算法之逻辑回归模型族)。

现在的数学模型中包含了向量,进一步简化FM的数学模型,将向量中的每个元素都挖出来,简化数学模型:

推荐算法之逻辑回归模型族

解释:我们知道权重系数与交叉特征进行线性组合,最后得到一个标量。观察上图,每个权重系数的是由于一个推荐算法之逻辑回归模型族矩阵中的两个向量内积所得,而对于一个交叉权重系数矩阵,由于其为实对称矩阵,因此我们在实际的计算中仅仅取上三角部分(对角线上的元素不需要)。而:推荐算法之逻辑回归模型族,为了取出上三角只要减去其对角线上的元素:

推荐算法之逻辑回归模型族并除以2得到交叉特征与特征线性组合的标量。

我们知道向量的内积就是对应元素相乘求和,即:推荐算法之逻辑回归模型族。因此,进一步优化:

推荐算法之逻辑回归模型族

所以,FM最终的数学模型可以写为

推荐算法之逻辑回归模型族

推荐算法之逻辑回归模型族

其损失函数与前面一样,依旧为交叉熵:

推荐算法之逻辑回归模型族

 

此时我们在去求其偏数:

推荐算法之逻辑回归模型族

 

推荐算法之逻辑回归模型族

 

推荐算法之逻辑回归模型族

其中,推荐算法之逻辑回归模型族只要有一个特征不为0,其值为0的可能性很小(若都为0,我们也不关心,说明两种特征都没激活,无需更新)。这也是隐向量的引入使得FM能够更好第解决数据稀疏性问题。

 

举例来说,在某商品推荐的场景下,样本有两个特征,分别是频道(channel)和品牌(brand),某训练样本的特征组合是(ESPN,Adidas)。在POLY2中,只有当ESPN和Adidas同时出现在一个训练样本中时,模型才能学习到这个组合特征对应的权重;而在FM中,ESPN的隐向量也可以通过(ESPN,Gucci)样本进行更新,Adidas的隐向量也可以通过(NBC,Adidas)样本进行更新,这大幅度降低了模型对数据稀疏性的要求。甚至对于一个从未出现过的特征组合(NBC,Gucci),由于模型之前已经分别学习过NBC和Gucci的隐向量,具备了计算该特征组合权重的能力,这是POLY2无法实现的。相比POLY2,FM虽然丢失了某些具体特征组合的精确记忆能力,但是泛化能力大大提升。

 

5.FFM

FFM算法在FM算法的基础上,又提出了一个性别域的概念,举出下面例子来说:

 

 

 

 

上一篇:Python|生物增殖问题解决方法


下一篇:C语言:输出各位整数的数字