美文网首页机器学习与数据挖掘
FM与FFM的在线召回工程实现

FM与FFM的在线召回工程实现

作者: xiiatuuo | 来源:发表于2019-03-25 15:36 被阅读0次

前记

这篇文章其实是对俊林全能的FM模型沉重的FFM模型工程实现的个人理解和整理。这两篇文章写得非常通俗易懂,强烈推荐。

问题

1. FM和FFM为什么要做在线召回?

  • 我理解是1)加上上下文特征(比如4G),离线召回没办法考虑到这些特点。2)更为实时的特征需要考虑(比如播放数、转评赞数等)

2.FM在线向量检索主要是考虑了二阶项,怎么融入一阶项呢?

我们在Criteo数据集合的实验结果也证明:如果是FM模型,一阶项是有用的,去掉一阶项,只保留二阶项,AUC大约会掉1个绝对百分点,对于CTR来说,这个差距还是很明显的;而如果是采用DeepFM模型,则FM部分是否保留一阶项对最终结果没有什么影响,这说明DNN的隐层有效地将一阶项的作用吸收掉了。


图片.png
图片.png

上面两个图的方案都可以。

3. 在线向量检索怎么考虑特征域内部的特征交叉

图片.png

在用户的二阶项embedding后添加两位:一位就是用户侧内部特征组合得分,在对应的物品侧位置,增加一位,值设置为1。这样的话,在Faiss做内积的过程中,就将用户侧内部特征组合得分计入;类似地,在物品侧也可以如此炮制。这样就将U和I的内部特征组合融入FFM召回模型中了,FM模型也是一样的道理。

4. 在线向量检索怎么融入上下文特征?

  • FM因为平方项是所有向量都累加,所以操作比较暴力:1)所有上下文向量求和得到综合的上下文向量C。2)将在线算好的上下文向量C和这个用户的事先算好存起来的用户兴趣向量U进行内积计算Score=<U,C>;3)将U和C向量累加求和,利用(U+C)去Faiss通过内积方式取出Top K物品
  • FFM:1)一组是用于拿Context特征和用户特征域的特征进行特征组合用的,不依赖和物品发生关系,在用户侧在线计算完成,拿到用户特征和context特征进行內积计算(因为跟物品无关,所以其实不影响物品排序,如果是召回阶段使用FM/FFM,是可以不考虑引入的);2)第二组是拿Context特征和物品特征域的特征进行特征组合用的,这个类似用户特征与物品特征组合,离线把特征埋入物品特征中,在线获取特征与用户特征进行组合,一起去相似检索;3)第三组是Context特征用于自身内部特征组合用的,跟用户内部特征或者物品内部特征一样,可以实时计算好放入在线检索向量中

相关文章

  • FM与FFM的在线召回工程实现

    前记 这篇文章其实是对俊林全能的FM模型和沉重的FFM模型工程实现的个人理解和整理。这两篇文章写得非常通俗易懂,强...

  • FM与FFM

    FM算法旨在解决稀疏数据下的特征组合问题。 多项式模型的特征组合要求两个特征都是非零的,但是在实际工程中的稀疏数据...

  • FM、FFM

    FM(Factorization Machines) FM主要目标是:解决数据稀疏的情况下,特征怎样组合的问题。 ...

  • 推荐系统学习过程中看到的博客和文章

    FM、FFM与DeepFM https://www.hrwhisper.me/machine-learning-f...

  • FFM的原理介绍及实现

    一.FFM原理介绍 FFM(Field-aware Factorization Machine)是对FM的改进,我...

  • FM、FFM、DeepFM

    1. CTR预估综述 点击率(Click through rate)是点击特定链接的用户与查看页面,电子邮件或广告...

  • FM&FFM

    参考:http://www.52caml.com/head_first_ml/ml-chapter9-factor...

  • 072 FM&FFM

    FM和SVM多项式核差异 SVM多项式核函数 上式中可以看出多项式核起到对特征交叉的作用,但是当样本中存在大量的稀...

  • 转《FM,FFM,DeepFM》

    本文仅为记录学习FM、FFM、DeepFM过程中的一些理解,并不会涉及太多公式细节推导,细节方面可以参考 深入FF...

  • FFM在CTR任务中的应用

    序 FFM是FM的一个变种算法,通过引入field的概念,FFM把相同性质的特征归于同一个field。不同fiel...

网友评论

    本文标题:FM与FFM的在线召回工程实现

    本文链接:https://www.haomeiwen.com/subject/unytvqtx.html