前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >效果远超FM,CF最新利器HFM!

效果远超FM,CF最新利器HFM!

作者头像
炼丹笔记
发布2021-05-14 15:43:46
9160
发布2021-05-14 15:43:46
举报
文章被收录于专栏:炼丹笔记

Holographic Factorization Machines for

Recommendation

背景

这是一篇关于特征交叉方式处理的论文,实践的价值很大,二阶的特征交叉能为我们模型带来非常大的帮助,因为二阶的特征交叉可以很好地捕捉特征之间的两两交叉关系,但在实践生产中我们做的最多的就是直接做向量间的内积,最典型的就是工业界常用的双塔模型,用户侧作为一端,商品侧作为另一端,然后两端的特征进行内积,最后直接相加或者吧两两点积的结果输入到下一层,不过在非常多的工作中,我们也发现两两向量的内积会丢失非常多的信息,我们也发现在很多情况下,我们对两个向量做外积,然后把外积展开输入到下一层的效果要比内积的效果更好,但也会带来一个问题,就是计算量和存储量会爆炸,因而工业界更加倾向于前者,那么有没有一种其他的方法,使我们能在可以接受的时间复杂度,然后又可以拿到相较于内积更好的结果呢?这就是本文的核心!!!

接下来我们先回顾一些基础以及背景知识,然后我们看看新的算法以及设计的新算法的效果。

基础知识回顾

FM(Factorization Machines)

FM的数学表达式为:

其中,

为点积操作,

为分解参数。

为全局bias,

为模型的线性部分,而我们此处

为FM算法的核心,我们发现,FM将所有向量的内积进行简单的相加,这种element-wise的交叉会丧失较多的信息,最终导致我们的模型信息浪费。

HRR(Holographic Reduced Representation)

HRR最早是由Plate等人在1955年提出的,其核心思想是一系列用于模拟全息存储和检索的编码和解码操作,这里面最重要的两个算子为:

其中

表示循环相关算子(CCOR),

表示循环卷子算子(CCOV)。

联想记忆

上面两个算子有什么用呢?为什么会比我们的交叉点积的效果要好呢?我们先看下面一个关系:

其中为噪音,上面的式子也被称作为相关性提取(CCOV和CCOR可以作为编码解码对),我们再引入联想记忆运算符,一个记忆迹可以被扩展为trace 组合:

这样我们希望找到哪个都会相对容易,比如我们希望找到,那么我们只需要

就可以得到一个带有噪音的

.

计算HRR

最简单计算外积需要

的时间复杂度,压缩外积也是于洋,但是在这边,我们可以利用快速傅立叶变换在log-linear的运行时间内计算得到我们的结果,

这边§和

分别为傅立叶变换和逆傅立叶变换,为Hadamard乘积,最终我们取FFT的实数值作为输出

压缩外积

到目前为止,我们知道了FM的问题,因为我们直接做了内积,因而丢失了较多的信息,同时我们知道了HRR的特性,包括它的计算时间可以通过快速傅立叶变换压缩为的时间复杂度,将时间复杂度转化为我们可以接受的范围。但是好像我们还不知道为什么这么做就可以有效果上的提升。

我们如果再看CCOV和CCOR的计算,发现它们就是在把外积压缩为向量表示,这又是一个非常吸引人的地方,一方面我们可以节省大量的内存,另外一方面,相较于FM直接内积求和,压缩外积可以获得更多的信息,得到更强的表示,因而大概率可以获得更佳的效果。

新模型

HFM

此处我们将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表示得分):

HFM模型(图的左边)
  1. Embedding Layer:我们将用户和商品分别通过embedding操作得到我们的dense实数表示,假设我们用户和商品在embedding之后得到

的向量;

  1. HFM Layer:我们使用HFM对其进行操作,我们得到

,最后我们用

计算得到我们的结果并进行最后的输出。

  1. 模型优化&学习:最后我们使用cross_entropy作为最终loss,直接使用nn相关的优化算法进行优化即可;
HFM+模型(图的右边)

和左图不一致的地方在于,我们没有直接将结果进行想加,相反地,我们使用MLP对Concate之后的向量进行处理,因为每一对交叉都会返回一个维的向量,所以最终我们得到一个

的值,于是我们最终的输出为:

其中

为每层的参数。最终HFM+的形式如下:

其中为HFM+模型的非线性部分。

实验观察

HFM是否取得了最佳的效果?--是的!

我们发现基本在三元组(用户,商品,打分)的数据集上,HFM+都取得了最佳的效果。

HFM是否改善了FM的表示能力?--是的!

我们将latent变量的维度进行调整并比较在不同维度下模型的优势,我们发现在latent变量的维度小的时候,我们模型的提升是非常大的,而且随着latent变量的维度不断变大,我们的模型的效果在不断下降,这也很好理解,因为随着latent变量维度的变大,那么我们模型的表示能力也在不断变强,所以HGFM的优势会变小,但从实验上看,HFM和HFM+全都是有优势的。

参数对于模型性能的影响

sheng

我们绘制不同模型在不同的latent维度下的影响,我们发现HFM+基本总是能取得最佳的效果;而HFM在所有情况下都优于FM。

小结

原始的内积操作是element-wise的,从而使得我们丢失了非常多的信息,导致模型往往只能学到一般的结果,外积的话可以给我们带来不错的效果,但是却会耗费大量的内存以及时间,往往让我们有些难以接受,本文提出了一种新的算法HFM,将Holographic Reduced Representations用于FM中,因为HRR可以表示压缩的外积,可以帮助我们的模型获得更好地表示,从而拿到更加的效果,而新的HFM+则可以更好地处理非线性的问题,在大量的数据集上也都拿到了最佳的效果。

参考文献

  1. Holographic Factorization Machines for Recommendation:https://www.aaai.org/ojs/index.php/AAAI/article/view/4448
  2. FM因子分解机系列简介:http://litowang.top/2018/07/29/factorization-machine/

个人非常建议大家实践一波,有意想不到的效果,也欢迎大家关注我们的公众号,多多交流,个人因为表现优良,现在已经被组织封为二品炼丹师啦。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 炼丹笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FM(Factorization Machines)
  • HRR(Holographic Reduced Representation)
  • 联想记忆
  • 计算HRR
  • 压缩外积
  • HFM
  • 关联键值存储
    • HFM模型(图的左边)
      • HFM+模型(图的右边)
      • HFM是否取得了最佳的效果?--是的!
      • HFM是否改善了FM的表示能力?--是的!
      • 参数对于模型性能的影响
      相关产品与服务
      文件存储
      文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档