当前位置: 代码迷 >> 综合 >> 2021-WWW-FM^2 : Field-matrixed Factorization Machines for Recommender Systems
  详细解决方案

2021-WWW-FM^2 : Field-matrixed Factorization Machines for Recommender Systems

热度:39   发布时间:2023-12-06 04:05:47.0

目录

      • 1 INTRODUCTION
      • 2 RELATED WORKS OVERVIEW
      • 3 OUR MODEL
        • 3.1 FM系列的统一框架
        • 3.2 FFM和FmFM,记忆vs推断
        • 3.3 模型复杂度
      • 4 MODEL OPTIMIZATION
        • 4.1 field-specific 嵌入维度
        • 4.2 中间向量缓存
        • 4.3 结合嵌入维度和缓存优化
        • 4.4 soft剪枝
        • 4.5 减少线性函数项
      • 5 EXPERIMENTS
        • 5.3 表现对比
        • 5.4 嵌入维度优化

??2 : Field-matrixed Factorization Machines for Recommender Systems
来自于 2021-WWW Yahoo团队
在这里插入图片描述
CTR预估问题中使用到多域分类数据。本文提出了Field-matrixed Factorization Machines(FmFM或者 FM2FM^2FM2),它是对FwFM的直接提升。模型支持不同域有不同的嵌入维度,并且在保证模型表现的条件下减少嵌入维度。

(个人感觉就是本文的核心就是那个域交互矩阵,和投影矩阵,transD,transR这种差不多。相当于FM是把所有域的嵌入嵌入到了同一个向量空间中,必须维度一致;而FmFM是把每个域的嵌入嵌入到了各自的向量空间中,然后衡量两两域特征的交互作用时,使用域交互矩阵将两个嵌入嵌入到相同的空间中再内积)

另外个人认为这篇文章一是对浅层CTR模型进行一个梳理;二是提出一些裁剪维度、缓存低维度等优化方法。

1 INTRODUCTION

CTR中的数据是多域分类数据,两种特点:

  • 所有的特征是分类型(离散型)特征,所以很稀疏(id),特征数量可达到数亿级
  • 每个特征只属于一个域field,域的数量可达到数百级

一些研究:

  • LR+交叉特征项
  • 考虑所有二阶交叉特征时->poly2
  • 交叉项参数太多,FM使用两个嵌入的点击代替交叉项系数
  • FFM考虑不同域交互时的嵌入不同
  • FwFM使用更高效的参数

这些考虑域信息的模型要么参数太多,要么不是太高效。

2 RELATED WORKS OVERVIEW

在这里插入图片描述
在这里插入图片描述
LR
在这里插入图片描述
PoLy2
在这里插入图片描述
FM
在这里插入图片描述

FFM
在这里插入图片描述

FwFM
在这里插入图片描述

3 OUR MODEL

本文提出一个新模型,用矩阵来表示两两field的交互。MF(i),F(j)M_{F(i),F(j)}MF(i),F(j)? 表示两个域 F(i),F(j)F(i),F(j)F(i),F(j) 间的交互矩阵,维度是 K×KK×KK×K
在这里插入图片描述
FmFM对对FwFM的改进之处就是将两两域之间的权重标量 rrr ,用一个两维的矩阵M来代替。
(个人感觉就是投影矩阵,和transD,transR这种差不多,相当于FM是把所有域的嵌入嵌入到了同一个向量空间中,必须维度一致;而FmFM是把每个域的嵌入嵌入到了各自的向量空间中,然后衡量两两域特征的交互作用时,使用域交互矩阵将两个嵌入嵌入到相同的空间中再内积)

在这里插入图片描述
计算过程分为三步:(1)嵌入查表;(2)转化(乘交互矩阵映射到同一空间);(3)内积。

3.1 FM系列的统一框架

FM

第(2)步直接特征嵌入内积,可以认为是特征i的嵌入乘了一个单位矩阵: vi=viIKv_i=v_iI_Kvi?=vi?IK?,由于单位矩阵这个转化矩阵是fixed,所以度自由度为0.

在这里插入图片描述

FwFM

两两field有一个权重r,第(2)步为:
在这里插入图片描述
可以理解为对特征i嵌入viv_ivi? 乘了一个矩阵 rIKrI_KrIK?,即对角线全为r,其余为0的矩阵(就是 viv_ivi? 用标量r来缩放,只不过这个r是和field i 和field j 决定的);自由度为1

在这里插入图片描述
FvFM

将FwFM中filed i 和field j 的常量权重r,由标量拓展到一个K维的向量,就是FvFM;相当于之前的r=[3,3,3,3,3,3] 现在的r=[1,2,-1,6,3,4] ,允许r的维度间不同,就可以对特征i嵌入viv_ivi? 进行不同维度上的缩放。第(2)步为:
在这里插入图片描述
可训练的参数r由向量代替标量,自由度为2

(感觉这就是K维嵌入统一缩放r倍,和K维嵌入每个维度上缩放不同的倍数;和DIEN中改进GRU的atten一样;和KGIN中的关系作为缩放向量差不多)

在这里插入图片描述

FmFM

一个矩阵的所有自由度,=3 (Q:为啥是3呢)。总的来说,我们发现FM、FwFM、FvFM都是FmFM的特殊情况,唯一的区别是其场矩阵的限制。
在这里插入图片描述

和OPNN的联系

FmFM也可以看作使用加权外积来建模两个特征间的交互:
在这里插入图片描述
OPNN是使用外积来建模特征交互,但是FmFM和它有不同之处:

  • FmFM是一个浅层模型,没有全连接网络,可以当作一个组件用到deep ctr模型中;
  • FmFM支持不同field有不同的嵌入维度。

3.2 FFM和FmFM,记忆vs推断

FFM中特征的嵌入不是共享的,即每个特征有 n-1 个嵌入,针对于每个field交互时都有一个特定的嵌入。

在这里插入图片描述
FFM机制有很多参数,除了过拟合问题,还有特征的分布是长尾效应使得特征pair分布更不平衡。设想 (vi,vj)(v_i,v_j)(vi?,vj?) 高频结合,(vi,vk)(v_i,v_k)(vi?,vk?) 低频结合,vi,F(j)v_{i,F(j)}vi,F(j)?vi,F(k)v_{i,F(k)}vi,F(k)? 是两个独立的嵌入,前者出现多能得到很好的训练,后者出现少得不到很好的训练。

(个人认为FM的优点之一就是应对这种稀疏出现的特征组合,因为只要特征i和特征j单独出现,就可以train各自的嵌入,不用两者共同出现就可以预测两者交互作用;但是FFM引入了独立的嵌入,失去了FM的这个优势)

所以说FFM是使用独立的嵌入实现记忆;而FmFM则是使用域交互矩阵实现推断,即特征嵌入共享,采用转化(转化矩阵)过程来投影特征i嵌入到域j的空间中。

3.3 模型复杂度

在这里插入图片描述

4 MODEL OPTIMIZATION

4.1 field-specific 嵌入维度

由于域交互矩阵的存在,允许不同的field有不同的维度;比如性别可以用低纬度嵌入,类别可以用高纬度嵌入。
在这里插入图片描述
为了优化这种不同维度的模型,提出两阶段:

  • 1,对于所有域使用更大的嵌入维度K=16,训练FmFM
  • 2,使用PCA对每个field降维,新维度包含95%的原始方差
    在这里插入图片描述

4.2 中间向量缓存

(没太看明白。。)
在这里插入图片描述

4.3 结合嵌入维度和缓存优化

相互作用矩阵是对称的:
在这里插入图片描述
缓存拥有更小维度的域的中间向量 ;比如域i 域j,是域16和域18,维度分别是2,14。可以缓存的选择有①viM16,28v_i M_{16,28}vi?M16,28?vjM28,16v_j M_{28,16}vj?M28,16? ;前者维度是 [1,14] 后者维度 [1,2];所以缓存后者,这样推断的时候消费更少的内存和计算操作。(那么缓存就是离线存储?推断就是线上服务?)

4.4 soft剪枝

传统的剪枝,就是直接对每一项进行 0/1 的决策,是否保留,DeepLight就是这样做的。而FmFM通过可变的field维度,相当于做了一个soft剪枝。对于重要的组合,嵌入维度高;不太重要的组合,嵌入维度低。当我们在传统的剪枝中丢弃一个field pair时,它的信号就完全丢失了;而在这种方法中,field pair仍然以最小的成本保持主要信息。和softmax差不多。

图6是field pair 和标签之间的互信息得分
在这里插入图片描述
图7是field pair中较小的维度
在这里插入图片描述
两个热力图彼此高度相关,意味着FmFM对经常出现的pair分配更多的参数,更少的pair分配更少的参数。

4.5 减少线性函数项

在这里插入图片描述
将这一项,改成了为每个field学一个向量v,直接对field中特征嵌入内积代替。
在这里插入图片描述

5 EXPERIMENTS

5.3 表现对比

在这里插入图片描述
在这里插入图片描述

5.4 嵌入维度优化

做实验来比较维度裁剪怎样影响模型表现,trade-off
在这里插入图片描述在这里插入图片描述

  相关解决方案