0%

Factorization Machines

理论解读

  • 计算公式: y=σ(i=0nwixi+i=1n1i+1nvi,vjxixj)
  • 解读: vi,vjxi,xj,<*,*>是向量内积

具体实现

整体部分

  • FM 是由2部分来实现的,线性部分和交叉项部分。而且其所有的输入均为类别性特征,不存在连续值特征。所以整体实现如下:

整体部分

线性部分

  • 线性部分:该部分的实现主要依赖Embedding 映射,其中offsets部分可以忽略,该部分只对二维的数据起作用,而且用以映射embedding。

线性部分

交叉项部分

  • 交叉项部分:该部分是对交叉项的实现,而且使用了效率最高的实现方式。原公式中交叉项的时间复杂度是O(kn2),经过简化 时间复杂度可以变成O(kn)。这部分网上有大把资料不做赘述。

交叉项部分