Holographic Factorization Machines for
Recommendation
背景
这是一篇关于特征交叉方式处理的论文,实践的价值很大,二阶的特征交叉能为我们模型带来非常大的帮助,因为二阶的特征交叉可以很好地捕捉特征之间的两两交叉关系,但在实践生产中我们做的最多的就是直接做向量间的内积,最典型的就是工业界常用的双塔模型,用户侧作为一端,商品侧作为另一端,然后两端的特征进行内积,最后直接相加或者吧两两点积的结果输入到下一层,不过在非常多的工作中,我们也发现两两向量的内积会丢失非常多的信息,我们也发现在很多情况下,我们对两个向量做外积,然后把外积展开输入到下一层的效果要比内积的效果更好,但也会带来一个问题,就是计算量和存储量会爆炸,因而工业界更加倾向于前者,那么有没有一种其他的方法,使我们能在可以接受的时间复杂度,然后又可以拿到相较于内积更好的结果呢?这就是本文的核心!!!
接下来我们先回顾一些基础以及背景知识,然后我们看看新的算法以及设计的新算法的效果。
基础知识回顾
FM的数学表达式为:
其中,
为点积操作,
为分解参数。
为全局bias,
为模型的线性部分,而我们此处
为FM算法的核心,我们发现,FM将所有向量的内积进行简单的相加,这种element-wise的交叉会丧失较多的信息,最终导致我们的模型信息浪费。
HRR最早是由Plate等人在1955年提出的,其核心思想是一系列用于模拟全息存储和检索的编码和解码操作,这里面最重要的两个算子为:
其中
表示循环相关算子(CCOR),
表示循环卷子算子(CCOV)。
上面两个算子有什么用呢?为什么会比我们的交叉点积的效果要好呢?我们先看下面一个关系:
其中为噪音,上面的式子也被称作为相关性提取(CCOV和CCOR可以作为编码解码对),我们再引入联想记忆运算符,一个记忆迹可以被扩展为trace 组合:
这样我们希望找到哪个都会相对容易,比如我们希望找到,那么我们只需要
就可以得到一个带有噪音的
.
最简单计算外积需要
的时间复杂度,压缩外积也是于洋,但是在这边,我们可以利用快速傅立叶变换在log-linear的运行时间内计算得到我们的结果,
这边§和
分别为傅立叶变换和逆傅立叶变换,为Hadamard乘积,最终我们取FFT的实数值作为输出。
到目前为止,我们知道了FM的问题,因为我们直接做了内积,因而丢失了较多的信息,同时我们知道了HRR的特性,包括它的计算时间可以通过快速傅立叶变换压缩为的时间复杂度,将时间复杂度转化为我们可以接受的范围。但是好像我们还不知道为什么这么做就可以有效果上的提升。
我们如果再看CCOV和CCOR的计算,发现它们就是在把外积压缩为向量表示,这又是一个非常吸引人的地方,一方面我们可以节省大量的内存,另外一方面,相较于FM直接内积求和,压缩外积可以获得更多的信息,得到更强的表示,因而大概率可以获得更佳的效果。
新模型
此处我们将HRR替换FM中的内积的形式,得到:
其中
表示FM公式的线性回归部分。当然我们可以使用inverse的算子对上面进行替换,于是我们得到:
HFM和memory models对联系是什么呢?在HFM中,成对对交叉是可以提取的,从HFM中,我们可以得到
其中
表示特征对
对交互,我们发现只需要
,我们就可以得到
的组合信息。
注意:在encoding-decoding的操作中,在梯度优化过程中(注意CCOV的梯度是CCOR),backward pass,模型可以学习参数向量之间的关系(也就是构建user-item对对关系)
End-to-End 推荐
下面我们看看怎么将该思路用于推荐系统,具体地框架可以参考下面的图片:
我们将该模块拆分为下面几个模块(注意我们此处假设我们只有一个三元组(p,q,r),p表示用户,q表示商品,r表示得分):
的向量;
,最后我们用
计算得到我们的结果并进行最后的输出。
和左图不一致的地方在于,我们没有直接将结果进行想加,相反地,我们使用MLP对Concate之后的向量进行处理,因为每一对交叉都会返回一个维的向量,所以最终我们得到一个
的值,于是我们最终的输出为:
其中
为每层的参数。最终HFM+的形式如下:
其中为HFM+模型的非线性部分。
实验观察
我们发现基本在三元组(用户,商品,打分)的数据集上,HFM+都取得了最佳的效果。
我们将latent变量的维度进行调整并比较在不同维度下模型的优势,我们发现在latent变量的维度小的时候,我们模型的提升是非常大的,而且随着latent变量的维度不断变大,我们的模型的效果在不断下降,这也很好理解,因为随着latent变量维度的变大,那么我们模型的表示能力也在不断变强,所以HGFM的优势会变小,但从实验上看,HFM和HFM+全都是有优势的。
sheng
我们绘制不同模型在不同的latent维度下的影响,我们发现HFM+基本总是能取得最佳的效果;而HFM在所有情况下都优于FM。
小结
原始的内积操作是element-wise的,从而使得我们丢失了非常多的信息,导致模型往往只能学到一般的结果,外积的话可以给我们带来不错的效果,但是却会耗费大量的内存以及时间,往往让我们有些难以接受,本文提出了一种新的算法HFM,将Holographic Reduced Representations用于FM中,因为HRR可以表示压缩的外积,可以帮助我们的模型获得更好地表示,从而拿到更加的效果,而新的HFM+则可以更好地处理非线性的问题,在大量的数据集上也都拿到了最佳的效果。
参考文献
个人非常建议大家实践一波,有意想不到的效果,也欢迎大家关注我们的公众号,多多交流,个人因为表现优良,现在已经被组织封为二品炼丹师啦。