文章链接:

https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/41159.pdf

补充:https://courses.cs.washington.edu/courses/cse599s/14sp/scribes/lecture20/lecture20_draft.pdf

  • abstract

  FTRL-proximal在线学习算法得到的模型更稀疏、收敛性质更佳,使用各坐标单独的学习率。

  • introduction

  扩展性问题

  省内存、效果分析、置信度预估、校准、特征管理

  • brief system overview

  revenue = bid price * ctr

  目标:预估ctr = P(click | q,a)

  特征:query,ad creative text,ad metadata等

  方法:regularized logistic regression(正则化逻辑回归,rLR)

  平台:Photon(谷歌流式特征平台)

  训练方式:DistBelief(谷歌训练平台),Downpour SGD

  重点考虑:稀疏性、线上预估阶段延时

  • online learning and sparsity

  对于大规模在线学习,以LR为例的广义线性模型(generalized linear models)很有优势。十亿维特征,非零值只有几百维,每个样本只读一遍。

  LogLoss(logistic loss):

  梯度:

  OGD(online gradient descent)适合此类问题,但难得到稀疏解。直接在loss上加L1惩罚不能得到稀疏解(?)

  FOBOS和truncated gradient可得到稀疏解,RDA进一步平衡正确率和稀疏性。为了同时拥有RDA的稀疏性(sparsity)和OGD正确性(accuracy)提升,提出FTRL-Proximal。可简单理解为OGD上增加正则项,但是由于各维度独立更新参数w,因此方便引入L1正则。

  

  

  lambda_1 = 0时两者得到相同参数向量序列,但FTRL-Proximal使用lambda_1 > 0很好地得到稀疏解。

  迭代中每维只需要存一个值,更新w方式:

  

  因此对比OGD保留w,FTRL-Proximal内存中只保留z。算法1额外增加了逐维学习率调整,并支持L2正则,存储-eta_t*z_t而非z_t

  

  —— experimental results

  FTRL-Proximal with L1显著优于RDA和FOBOS,并且很好平衡accuracy和model size。

  每维参数不为零要求至少见过k次特征数值。

  —— per-coordinate learning rates

  逐维设定学习率显著提升效果(高频特征学习率低):

  

  alpha最优值和数据有关,beta取1足够好。效果相对全局唯一学习率AucLoss下降11.2%。

  • saving memory at massive scale

  包括相似item分组,randomized rounding,L1正则。

  —— Probabilistic Feature Inclusion

  有些模型情形,十亿级别样本中,一半特征数值只出现一次。

  1)Poisson Inclusion:以概率p添加特征

  2)Bloom Filter Inclusion:Counting Bloom Filter,设定阈值n

  

  两种方法都不错,BF方式有更好的均衡性(RAM saving和loss)

  

  —— encoding values with fewer bits

  【TODO】(没有效果损失)

  

  —— training many similar models

  【TODO】

  —— a single value structure

  【TODO】

  —— computing learning rates with counts

  【TODO】

  —— subsampling training data

  1)保留至少点击一个ad的query

  2)按概率r采样无点击ad的query

  采样query是合理的,因为包含通用特征query phrase。但是要纠偏,对于每个样本计算loss(梯度同理)提权:

  

  得到相同的期望loss。试验显示激进的下采样对accuracy影响甚微。

  • evaluating model performance

  AucLoss = 1 - AUC,LogLoss,SquaredError

  —— progressive validation

  计算评估度量(metrics)在country、query topic、layout等维度

  只在最近的数据上度量

  绝对度量是有误导性的。输出不点击可以预估为接近50%,可以预估为2%。明显2%更好,所以需要LogLoss这种度量。而且需要在country、query等细分维度做度量。

  相对度量也有必要:对比基线(baseline)的相对数值。

  —— deep understanding through visualization

  大致是可视化细分维度的各种指标

  —— confidence estimates

  accuracy的预期,用作给explore/exploit算法做参考。本文提出uncertainty score。核心思想是每维保存一个uncertainty counters n_{t,i},用来做学习率调整。大的n_i得到一个小的学习率,因为参数很可能足够精确了。

  LogLoss的梯度叫log-odds score = (p_t - y_t),绝对值<=1。假设特征向量长度x_{t,i}<=1,我们能做到根据一个样本(x,y)来预测log-odds。做简化lambda_1 = lambda_2 = 0,如此FTRL-Proximal等效于OGD。

  令,结合

  

  

  —— calibrating predictions

  增加校准层(calibration layer)将预估ctr调整到观测ctr。

  拟合校准函数,p是预估ctr。用Poisson regression在额外的数据上拟合。也可以用单调递增的分段线性函数(折线)或者分段常数函数拟合。比如用isotonic regression(加权最小二乘法拟合)。相对而言分段线性函数能对高和低的边界区域有效纠偏。

  但是没有有效的理论保证校准有效。

  • automated feature management

  将特征空间组织成各种信号(signals),比如ad words、country,能转换为实数特征。为了管理signals和models,做了metadata index。

  • unsuccessful experiments

  —— aggressive feature hashing

  一些文献声称的feature hashing(用作省内存)的方式在试验中无效。因此保存可解释(即non-hashed)的特征数值向量。

  —— dropout

  对特征采样的尝试往往是负向的

  —— feature bagging

  k overlapping subsets of feature space做bagging,结论是大概0.1%-0.6%负向。

  —— feature vector normalization

  往往负向。

Ad Click Prediction: a View from the Trenches (2013)论文阅读的更多相关文章

  1. 【Paper】Deep & Cross Network for Ad Click Predictions

    目录 背景 相关工作 主要贡献 核心思想 Embedding和Stacking层 交叉网络(Cross Network) 深度网络(Deep Network) 组合层(Combination Laye ...

  2. 论文阅读(Xiang Bai——【arXiv2016】Scene Text Detection via Holistic, Multi-Channel Prediction)

    Xiang Bai--[arXiv2016]Scene Text Detection via Holistic, Multi-Channel Prediction 目录 作者和相关链接 方法概括 创新 ...

  3. AD阶段分类论文阅读笔记

    A Deep Learning Pipeline for Classifying Different Stages of Alzheimer's Disease from fMRI Data -- Y ...

  4. 论文阅读:Learning Attention-based Embeddings for Relation Prediction in Knowledge Graphs(2019 ACL)

    基于Attention的知识图谱关系预测 论文地址 Abstract 关于知识库完成的研究(也称为关系预测)的任务越来越受关注.多项最新研究表明,基于卷积神经网络(CNN)的模型会生成更丰富,更具表达 ...

  5. 各大公司广泛使用的在线学习算法FTRL详解

    各大公司广泛使用的在线学习算法FTRL详解 现在做在线学习和CTR常常会用到逻辑回归( Logistic Regression),而传统的批量(batch)算法无法有效地处理超大规模的数据集和在线数据 ...

  6. 在线最优化求解(Online Optimization)之五:FTRL

    在线最优化求解(Online Optimization)之五:FTRL 在上一篇博文中中我们从原理上定性比较了L1-FOBOS和L1-RDA在稀疏性上的表现.有实验证明,L1-FOBOS这一类基于梯度 ...

  7. 各大公司广泛使用的在线学习算法FTRL详解 - EE_NovRain

    转载请注明本文链接:http://www.cnblogs.com/EE-NovRain/p/3810737.html 现在做在线学习和CTR常常会用到逻辑回归( Logistic Regression ...

  8. Logistic Regression的几个变种

    原文:http://blog.xlvector.net/2014-02/different-logistic-regression/ 最近几年广告系统成为很多公司的重要系统之一,定向广告技术是广告系统 ...

  9. Kaggle : Display Advertising Challenge( ctr 预估 )

    原文:http://blog.csdn.net/hero_fantao/article/details/42747281 Display Advertising Challenge --------- ...

随机推荐

  1. 一些..C#知识点总结

    C# 知识点汇总 (其实C#与Java多少有区别,对于咱这个幼儿园大班生来说) 1.认识C#程序 (1)namespqce关键字 namespqce(命名空间)是C#组织代码的方式,它的作用类似于Ja ...

  2. zrender源码分析--初探如何画一个圆

    今天是想看看使用zrender框架如何去,画一个圆,再加“circle”的文字在圆心. 然后开始代码: 如何部署代码,让zrender跑起来这边就不说了,官方例子就有写,地址是:https://git ...

  3. ACM 韩信点兵 、n的另一种阶乘、6174的问题

    3.6174问题 描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作.例如,从1234出发,依次可以得到4321- ...

  4. Reactor模式和NIO(转载二)

    本文可看成是对Doug Lea Scalable IO in Java一文的翻译. 当前分布式计算 Web Services盛行天下,这些网络服务的底层都离不开对socket的操作.他们都有一个共同的 ...

  5. delphi实现窗体组建随窗体大小改变而改变

    在网上查了许多资料去论述如何在dephi中去实现组件随窗口大小的变化而变化,然都不尽如人意.有人说用组件的align + anchors 这两个属性去控制,但是我用了之后,让我大惊失色.把anchor ...

  6. docker+selenium Grid搭建自动化分布式测试环境

    自动化测试需要考虑到兼容性的时候,之前的做法是每个执行机上安装不同版本的浏览器,实际上这样做会很浪费硬件资源,现在有了docker容器化技术,让一切变得简单. 工具清单: 语言:python 2.7 ...

  7. Java集合框架(Collection Framework)学习之 Collection与Map概貌

    写过Java的人都知道Java集合类,也用过Java集合类.Java集合类位于 java.util 这个包下,就像它的包名暗示的那样,Java集合类就是一套工具.它就像工匠的工具箱一样,它能给使用它的 ...

  8. 【Newtonsoft.Json.dll】操作列表JSON数据

    JObject data = JObject.Parse(json); JArray array = JArray.Parse(data["list"] + "" ...

  9. 为啥我的Andrid百度SDK不能正常运行?

    首先,百度SDK运行时候需要加载API Key,这个API Key是通过百度账号在百度里面申请到的,但是很可能大家没有注意到百度这个API Key申请的过程,其中很重要的一个步骤没有做好,而导致不能正 ...

  10. Hibernate Update方法提交错误

    最近用通用Dao更新对象,报了以下错误 Row was updated or deleted by another transaction (or unsaved-value mapping was ...