[044]利用FFM做新闻源评级一算法调研

本文介绍了FFM(Field-aware Factorization Machines)算法在新闻源评级中的应用,探讨了FFM的主要特点,如SSE加速和交叉验证参数选择,并提到了美团点评技术团队使用FFM进行CTR预估的成功案例。核心思想涉及特征的独热编码和矩阵分解,以及使用logistic loss和L2正则化的二元分类问题。
摘要由CSDN通过智能技术生成

FFM简介

源码使用台湾大学LIBFFM

http://www.csie.ntu.edu.tw/~cjlin/libffm/
LIBFFM是一个解决领域感知分解机的开放源码工具( field-aware factorization machines (FFM))。它已经赢得了最近的两个点击率预测( click-through rate prediction)比赛冠军。

它支持:l2正则化logistics损失函数(l2-regularized logistic loss)。

主要特点:

1)只用SSE结构来加速向量运算
2)使用交叉验证做参数选择
3)在硬盘上学习,比在内存中处理更大的数据

下载:

注意:FFM容易过拟合,在使用之前先阅读README。
下载链接:
zip
tar.gz
github

README

过拟合和早停止

为了避免过拟合,我们推荐提供一个验证集,使用-p参数,可以使用‘–auto-stop’参数,来在程序迭代到最好的验证损失的时候停止。

 > ffm-train -p va.ffm -l 0.00002 --auto-stop tr.ffm

安装

要求:LIBFFM 是用C++ 写的,需要C++11和OpenMP运行环境。

数据格式:

LIBFFM的数据格式为:

<label> <field1>:<index1>:<value1> <field2>:<index2>:<value2> ...
.
.
.

field和index都是非负整数。

训练和预测

- `ffm-train'
  usage: ffm-train [options] training_set_file [model_file]
  options常用参数:
  -l 正则化参数(默认0.00002  -t 迭代次数
  -s 线程数
  -p 验证集路径
  -v 交叉验证分数
  --auto-stop 达到最好的验证损失时停止,必须有-p选项
-   `ffm-predict'

    usage: ffm-predict test_file model_file output_file

使用

Google过程中发现美团点评技术团队,也会用FFM算法做ctr预估,并效果很好,更主要的该团队将技术以博客的形式分享给大家,并讲述的很详细,值得称赞!

美团点评的点击率CTR(click-through rate)和转化率CVR(conversion rate)使用了该模型。
其在数据量比较大并且特征稀疏的情况下,仍然能够得到优秀的性能和效果。美团点评技术团队在搭建DSP(Demand Side Platform)的过程中,探索并使用了FM和FFM模型进行CTR和CVR预估,并且取得了不错的效果。
预估CTR/CVR,业界常用的方法有人工特征工程 + LR(Logistic Regression)、GBDT(Gradient Boosting Decision Tree) + LR[1][2][3]、FM(Factorization Machine)[2][7]和FFM(Field-aware Factorization Machine)[9]模型。在这些模型中,FM和FFM近年来表现突出,分别在由Criteo和Avazu举办的CTR预测竞赛中夺得冠军[4][5]。

核心思想:

所有categorical类型的特征,需要经过独热编码(One-Hot Encoding)转换成数值型特征。大部分样本数据特征是比较稀疏的。
多项式模型是包含特征组合的最直观的模型。对于二阶多项式模型,组合特征的参数一共有n*(n-1)/2个,任意两个参数都是独立的。然而,在数据稀疏性普遍存在的实际应用场景中,二次项参数的训练是很困难的。
因此,所有二次项参数 wij 可以组成一个对称阵 W(为了方便说明FM的由来,对角元素可以设置为正实数),那么这个矩阵就可以分解为 W=VTV,V 的第 j 列便是第 j 维特征的隐向量。换句话说,每个参数 wij=⟨vi,vj⟩,这就是FM模型的核心思想。

此FFM模型采用logistic loss作为损失函数,和L2惩罚项,因此只能用于二元分类问题。

详细介绍可进美团点评技术团队 查看。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值