Transfer learning在知心商业广告点击率预估中的应用

知心商业广告也是按照点击收费的广告,为了收益最大化,点击率预估准确与否就很重要了,大家应该都知道商业广告点击率预估有一套很有效的机器学习的方法。但是,与传统的凤巢/网盟广告不大一样,知心广告存在多种展现形式,并且不断有新的展现形式加入,这就会频繁的出现“冷”启动,数据少的问题,但是这个冷启动并不是完全的冷启动,因为虽然有多种展现形式,我们的广告库是同一套。我们希望充分利用这个特性,把别的场景上的模型的知识迁移到数据量较少的场景上。

我们先简单回顾下一个典型的广告点击率模型的几个要素: 首先是样本:一个广告的一次展现构成一个样本 然后是特征:这里一般包括ID类的非泛化特征+泛化特征 最后是模型:凤巢是经历了LR到GBDT再到DNN的过程,本文主要建立在LR的基础上做的实验。

好的,回到我们的问题,我们的问题是有好多个点击率预估模型(一个场景对应一个模型),我们怎么利用广告库是同一套的特性,用样本充分的场景的数据/参数解决样本不充分的场景的点击率预估问题,这就是学术界研究的transfer learning。

首先学术界的问题定义:有两个数据集,一个是大一些的数据集,我们管他叫source,还有一个是小一些的数据集,我们管他叫target,我们的目的是希望通过某种相似性,把source上的知识迁移到target上,能让target数据集上的模型更好。什么叫知识迁移呢,有两种基本思路,一个是借数据,借数据的思想是说source上有一些数据可以适当转换一下拿过来和target上的数据一起训练;一个是借参数,借参数的思想是说source上训练出来的模型的参数可以改改给target用。其中instance-base和feature-base都是借数据的思想,而parameter-base是借参数的思想。

第一个是借数据的思路,借数据要解决的一个根本问题是怎么把source上的P_s(x, y)转换成target上的P_t(x, y),我们是主要采用Alex Smola的blog上提到的一个方法,对source和target做一个二分类模型,从而估算P_t(x, y)/P_s(x, y),然后这个方法想象起来很美好,现实却很骨感,我们发现这个方法非常不稳定,不管用什么相似度去衡量,总是不可避免的会引入误差,而误差起的负作用往往会比新样本带来的新feature的效应更大,导致效果不好。所以总结一句就是借数据很难,难在怎么引入合理的相似性假设。

第二个是借参数的思路,什么叫借参数呢,直白的讲就是认为S上参数和T上的参数存在某种相似性,什么叫相似呢,就是他们在某些特征的weight上是一样的(近似的),我们叫做common-part,然后再某些特征的weight是不一样的,分别是source和target独有权重。那具体是怎么做的呢,学术上是怎么做的:让thetas和thetat分别代表s和t上的权重,他们又可以进一步拆分为common-part和individual part,我们的优化目标是s和t上的loss的和最小,而这种拆分一般是通过约束加进去的,就是是一种multi-task的思想。在实际操作的过程中,我们借用了百度已有的一套增量学习框架,直观解释就是首先在source上训练出参数,由于source的数据多,所以这个参数variance会比较小,但是如果作为target上的参数,会带来一些bias,因此我们在该参数的基础上,对target的数据在做一次训练,目标函数有两部分,第一部分的业务含义为新参数在source上的拟合,第二部分的业务含义为新参数在target上的loss及其约束,这个式子还有一个理解,就是如果以bayes的观点来看前面两项就表示w的先验分布,即target的参数的先验分布是一个均值为w*的高斯分布。我们比较下这个公式和学术上公式的区别,就是会发现common-part和individualpart似乎没有体现出来啊?而从业务的角度来讲,这个是个比较合理的解释,怎么合理呢?我举个例子,比如不同的搜索query在不同的场景,他们对ctr的影响应该是一致的,平均意义来讲,不管在哪个场景,“性病怎么治疗”的平均ctr和“感冒怎么治疗”的平均ctr的比值应该是相似的,落到模型上来说,他们对应的weight应该是相似的,也就是我们说的common-part,那我们怎么做呢? 我们实现的方法是在source训练的时候,只训练“可迁移”的特征,也就是common-part的部分,在target上把所有特征带进去训练,这样就能近似保证common-part一样,individual-part有一定的差异。

最后小结下自己理解的借数据和借参数的理论分析:

Instance Base和Feature Base的本质都是Target样本不够,需要借数据,适用场景为Model初始阶段,只有Target自身样本的增加能显著带来auc提升,instance base/feature base才有可能有效 果 原因是借来的样本本身会带来一定的噪音,没有很完美的方案解决,因此学术界用instance/feature base解决的都是target上没有label的case,如果target上本身的数据的增加对auc都无帮助,那么带有噪音的数据就更不会有好的收益。

Parameter Base的本质是Source和Target在参数上有一定的相似性,因此即使样本足够,parameter base也可能会带来增益,原因是如果真的具有相似性,数据充分的source训练的参数更稳定,在此基础上针对target的数据做微调有助于提升target参数的稳定性。


【预告】 首届中国人工智能大会(CCAI 2015)将于7月26-27日在北京友谊宾馆召开。机器学习与模式识别、大数据的机遇与挑战、人工智能与认知科学、智能机器人四个主题专家云集。人工智能产品库将同步上线,预约咨询:QQ:1192936057。欢迎关注。

大会官网链接:http://ccai2015.csdn.net

原文发布于微信公众号 - 人工智能头条(AI_Thinker)

原文发表时间:2015-07-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

学界 | DeepMind解密黑箱的第一步:原来神经网络的认知原理和人类是一样的!

AI 科技评论按:因为AlphaGo而名声大噪的人工智能公司DeepMind近期发表了一篇论文介绍自己在神经网络的解释性问题上最新探索。论文被ICML接受后,D...

3347
来自专栏机器之心

自然语言处理最新教材开放下载,乔治亚理工大学官方推荐

1383
来自专栏华章科技

大规模知识图谱的构建、推理及应用

随着大数据的应用越来越广泛,人工智能也终于在几番沉浮后再次焕发出了活力。除了理论基础层面的发展以外,本轮发展最为瞩目的是大数据基础设施、存储和计算能力增长所带来...

1162
来自专栏SimpleAI

错看一头大象后,这个AI“疯了”!

在一项新的研究中,计算机科学家发现,人工智能无法通过儿童可轻松完成的“视力检测”。

862
来自专栏云时之间

深度学习与神经网络学习:(1)小小的开始

其实说深度学习,之前或多或少之前也学过一些,比如像经常在TensorFlow用的CNN卷积神经网络和RNN递归神经网络以及LSTM等,再有就是现在学术界比较热的...

6347
来自专栏企鹅号快讯

转行数据挖掘和机器学习(四)

目前从纯数学专业转行到机器学习领域已经有两年半了,又到了该总结转行经验和个人成长的时候。笔者在公司里面已经做过智能推荐系统,智能安全系统和智能运维系统。除此之外...

2148
来自专栏云时之间

深度学习与神经网络学习:(1)小小的开始

大家好,这一篇文章算是深度学习这一个开始 其实说深度学习,之前或多或少之前也学过一些,比如像经常在TensorFlow用的CNN卷积神经网络和RNN递归神经网络...

4506
来自专栏CVer

你现在应该阅读的7本最好的深度学习书籍

原标题: The 7 best deep learning books you should be reading right now 原作者: Adrian ...

2.7K19
来自专栏携程技术中心

干货 | 大规模知识图谱的构建、推理及应用

作者简介 李健,携程度假研发部研发总监,2013年底加入携程,在数据挖掘分析、人工智能方面有一定的实践与积累。 随着大数据的应用越来越广泛,人工智能也终于在几番...

1K11
来自专栏AI研习社

学不学吴恩达 deeplearning.ai 课程,看完这篇你就知道了

AI 研习社按:本文的作者是 Thomas Treml,是一名具有社会学背景的数据科学自由职业者。他在 Medium 上分享了自己学习 deeplearning...

1101

扫码关注云+社区

领取腾讯云代金券