最近开始接触 CTR 预估,在极客时间上订阅了一个视频课程,《深度学习应用实践 60 讲》,第一部分就是深度学习在 CTR 预估任务中的应用。讲师是张俊林,新浪微博 AI Lab 资深算法专家,曾在阿里巴巴、百度、用友任职资深技术专家和技术总监。这个课程是线下课程的录播视频,可以看到老师讲课的实际场景。张老师讲课思路清晰,循循善诱,听起来很容易懂,我自己非常受益,把前面的一节整理出来,如果你也正在研究 CTR 预估,希望对你有用。
张老师解释得很直白,CTR 预估就是这样的任务:给定用户(User),给定一个商品(Product),给定了一定的环境,来看用户会不会买这个商品,买商品的概率有多高;或者说给用户推荐一个电影,用户会不会看这个电影,看的概率有多高。
我想,这个任务理解起来很容易,但是知易行难,怎么实现才是最关键的。
了解了定义,就要看看 CTR 预估都会用在哪里了。
CTR 预估比较通用,所以它的应用范围就非常广,张老师举了 3 个例子,分别是计算广告、推荐系统和信息流排序。
计算广告是比较典型的 CTR 预估应用场景,比如有很多广告,哪些广告用户会点呢?
推荐系统有很多方法去做,但是这个问题也可以转化成 CTR 预估的一个任务。比如豆瓣的电影推荐,你推荐的电影用户会不会去看?着就是一个典型的把推荐问题转换成 CTR 预估任务的例子。
这里就要训练一个模型,X 代表训练数据的输入,Y 代表输出,Y 的取值是 1 到 5,1 代表用户极度不喜欢这个电影,绝对不可能看,5 代表用户非常喜欢这个电影,肯定会看。训练这个模型的关键在于 X,也就是输入特征。可以把输入分成几类特征,比如用户 ID,电影 ID,过去给哪些电影打过什么样的分,什么时间打的等等。
信息流最近两年比较火,包括百度、头条、微博都在做信息流。信息流是干什么呢?老师举了一个微博场景下的例子。比如你在微博关注了很多人,他们会有很多信息发布出来,那么优先给你展示哪些内容你可能会点呢?这就涉及到怎么为那些推送给你的信息流进行重新排序。
CTR 预估有三大特征,第一个就是具备大量的离散特征。什么是离散特征?对比连续特征一起来看就很容易理解。拿上面电影推荐的例子来说,对看过电影的打分就是连续特征,什么时间打的就是离散特征。具体来说,假设给电影打分的范围是 0 到 1 之间,打分这个特征就是在这个区间里面,什么值都可能,这就叫连续特征;对比来看,打分的时间,就是 1 到 24 个小时里面取一个,这就叫离散特征。
第二个特征是存在大量高维度的稀疏特征。从上面例子里的用户 ID 来看,什么叫高维度呢?假设有一亿用户,那就是一亿维的,所以叫高维度;什么叫稀疏呢?就是一亿维里面只有一个位置是 1,其他全是 0,这就是稀疏。原来,我常常听到的系统百亿级特征量是这么来的,之前是真的觉得很玄。
第三个就是特征工程很重要,特征组合对于效果很关键。什么叫特征组合呢?就是两个特征组合起来效果会非常明显。比如说一个人的性别是一个特征,买商品的时间是另外一个特征,那“性别”+“时间”这两个特征组合起来,就是非常强的预测用户会不会买东西的一个组合特征,比如女性在双十一的晚上一定是购买概率相当高。
特征工程很重要,那么特征挖掘一般都做什么呢?挖掘特征包含两类工作,一类就是找出以前没有用到的单一特征;第二类就是找有效的组合特征。
最后,用一张图总结一下这一节的内容。
课程已经上线「极客时间」App,各位读者可以扫描图片中的二维码免费试看课程。
扫码免费试看课程,或者点击「阅读原文」查看课程。