计算广告之CTR预估-FM模型解析

原文:Factorization Machines

地址:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.393.8529&rep=rep1&type=pdf

一、问题由来

   在计算广告和推荐系统中,CTR预估(click-through rate)是非常重要的一个环节,判断一个商品的是否进行推荐需要根据CTR预估的点击率来进行。传统的逻辑回归模型是一种广义线性模型,非常容易实现大规模实时并行处理,因此在工业界获得了广泛应用,但是线性模型的学习能力有限,不能捕获高阶特征(非线性信息),而在进行CTR预估时,除了单特征外,往往要对特征进行组合。对于特征组合来说,业界现在通用的做法主要有两大类:FM系列与DNN系列。今天,我们就来分享下FM算法。

二、为什么需要FM

    1、特征组合是许多机器学习建模过程中遇到的问题,如果对特征直接建模,很有可能会忽略掉特征与特征之间的关联信息,因此,可以通过构建新的交叉特征这一特征组合方式提高模型的效果。

    2、高维的稀疏矩阵是实际工程中常见的问题,并直接会导致计算量过大,特征权值更新缓慢。试想一个10000*100的表,每一列都有8种元素,经过one-hot独热编码之后,会产生一个10000*800的表。因此表中每行元素只有100个值为1,700个值为0。特征空间急剧变大,以淘宝上的item为例,将item进行one-hot编码以后,样本空间有一个categorical变为了百万维的数值特征,特征空间一下子暴增一百万。所以大厂动不动上亿维度,就是这么来的。

    而FM的优势就在于对这两方面问题的处理。首先是特征组合,通过对两两特征组合,引入交叉项特征,提高模型得分;其次是高维灾难,通过引入隐向量(对参数矩阵进行矩阵分解),完成对特征的参数估计。

三、原理及求解

    在看FM算法前,我们先回顾一下最常见的线性表达式:

    其中w0 为初始权值,或者理解为偏置项,w为每个特征xi 对应的权值。可以看到,这种线性表达式只描述了每个特征与输出的关系。

    FM的表达式如下,可观察到,只是在线性表达式后面加入了新的交叉项特征及对应的权值。

求解过程 :   

    从上面的式子可以很容易看出,组合部分的特征相关参数共有n(n−1)/2个。但是如第二部分所分析,在数据很稀疏的情况下,满足xi,xj都不为0的情况非常少,这样将导致ωij无法通过训练得出。

为了求出ωij,我们对每一个特征分量xi引入辅助向量Vi=(vi1,vi2,?,vik)。然后,利用vivj^T对ωij进行求解:

    

    那么ωij组成的矩阵可以表示为:

    那么,如何求解vi和vj呢?主要采用了公式:

    具体推导过程如下:

四、参数求解

    利用梯度下降法,通过求损失函数对特征(输入项)的导数计算出梯度,从而更新权值。设m为样本个数,θ为权值。

    其中,是和i无关的,可以事先求出来。每个梯度都可以在O(1)时间内求得,整体的参数更新的时间为O(kn)。

原文地址:https://www.cnblogs.com/Jesee/p/11165489.html

时间: 2024-10-10 15:51:57

计算广告之CTR预估-FM模型解析的相关文章

CTR预估---传统模型

传统CTR预估模型包括:LR.FM.GBDT等,其优点是:可解释性强.训练和部署方便.便于在线学习. (一)CTR预估 1.在cost-per-click:CPC广告中广告主按点击付费.为了最大化平台收入和用户体验,广告平台必须预测广告的CTR,称作predict CTR:pCTR.对每个用户的每次搜索query,有多个满足条件的广告同时参与竞争.只有pCTR x bid price最大的广告才能竞争获胜,从而最大化eCPM:eCPM=pCTR x bid 基于最大似然准则可以通过广告的历史表现

CTR预估评价指标介绍

1 离线指标 1.1 LogLoss 1.1.1 KL散度 logloss使用KL散度来计算.设样本的真实分布为P,预测分布为Q,则KL散度定义如下: 这里可以通俗地把KL散度理解为相同事件空间里两个概率分布的相异情况.KL散度越小,预测分布越接近真实分布. KL散度的物理意义是:使用分布Q来对真实分布为P的事件进行编码,导致平均编码长度增加了多少.具体解释可见百度和知乎. 1.1.2 CTR中KL散度的计算 CTR预估中,测试集中每个样本是一条广告,它有一个真实的点击率tctr和一个预测的点击

(读论文)推荐系统之ctr预估-Wide&Deep模型解析

在读了FM和FNN/PNN的论文后,来学习一下16年的一篇Google的论文,文章将传统的LR和DNN组合构成一个wide&deep模型(并行结构),既保留了LR的拟合能力,又具有DNN的泛化能力,并且不需要单独训练模型,可以方便模型的迭代,一起来看下吧. 更好的阅读体验请点击这里. 原文:Wide & Deep Learning for Recommender Systems 地址: [https://arxiv.org/pdf/1606.07792.pdf](https://arxiv

【转】- 从FM推演各深度CTR预估模型(附代码)

从FM推演各深度CTR预估模型(附代码) 2018年07月13日 15:04:34 阅读数:584 作者: 龙心尘 && 寒小阳 时间:2018年7月 出处: 龙心尘 寒小阳 原文地址:https://www.cnblogs.com/suanec/p/9328336.html

闲聊DNN CTR预估模型

原文:http://www.52cs.org/?p=1046 闲聊DNN CTR预估模型 Written by b manongb 作者:Kintocai, 北京大学硕士, 现就职于腾讯. 伦敦大学张伟楠博士在携程深度学习Meetup[1]上分享了Talk<Deep Learning over Multi-field Categorical Data – A Case Study on User Response Prediction in Display Ads>.他在2016 ECIR发表

为什么CTR预估使用AUC来评估模型?

ctr预估简单的解释就是预测用户的点击item的概率.为什么一个回归的问题需要使用分类的方法来评估,这真是一个好问题,尝试从下面几个关键问题去回答. 1.ctr预估是特殊的回归问题 ctr预估的目标函数为 f(x)=P(+1|x) 特殊之处在于目标函数的值域为[0,1],而且由于是条件概率,具有如下特性 如果将ctr预估按照一般的回归问题处理(如使用Linear Regression),面临的问题是一般的linear regression的值域范围是实数域,对于整个实数域的敏感程度是相同的,所以

CTR预估中GBDT与LR融合方案

http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm 1.背景 CTR预估,广告点击率(Click-Through Rate Prediction)是互联网计算广告中的关键环节,预估准确性直接影响公司广告收入.CTR预估中用的最多的模型是LR(Logistic Regression)[1],LR是广义线性模型,与传统线性模型相比,LR使用了Logit变换将函数值映射到0~1区间 [2],映射后的函数值就是CTR的预估值.LR,逻辑

深度学习在CTR预估中的应用

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 一.前言 二.深度学习模型 1. Factorization-machine(FM) FM = LR+ embedding 2. Deep Neural Network(DNN) 3. Factorisation-machine supported Neural Networks (FNN) 4. Product-based Neural Network(PNN) 5. Wide & Deep Lear

log loss与ctr预估

ctr预估是工业界做推荐.广告等的基本问题,下面以熟悉的推荐场景为例,目标是提高abtest的线上指标,时长.互动和留存,反应到ctr模型的评估指标,可以是auc,logloss,ngcd等,auc反映了模型区分正负例的能力,auc提高不一定对应到线上指标提示,可能只是对item的预估分更准,对一个user来说排序能力并没有提高,这里很有考究,可以看看其他博客. 通常判断一个模型性能,除了auc.rigloss还要看 calibration,训练数据集的正负里比例和预估分均值是否一致,接近1才认