欢迎关注: 阿里妈妈技术公众号
本文作者:怀人 阿里妈妈技术团队
点击率(CTR,Click-Through Rate)以及派生的各种用户行为概率(如商品购买率、推荐好友接受率、短视频3s曝光率等)是广告、推荐、搜索等互联网应用中大家耳熟能详的词汇。以点击率为例,如何建立高效的CTR预估模型是领域从业者们的核心能力,也是头部企业长期重兵投入、持续优化的核心技术。
近些年来,得益于深度学习带来的巨大红利,CTR预估建模技术发展迅速,顶会论文、技术博客等都有大量精妙而深刻的介绍,加之开源浪潮带来的工具普及,这项技术的入门似乎变得极其容易:跑跑已经发表甚至开源的论文模型,调一调结构,或根据自己的业务特点做一些微创新,总是能取得不错的结果。然而,隐藏在这些类似制造业的熟练工序背后,有很多基础性的、细思极恐的知识点,若缺失它们虽不至导致熟练工的技能立刻坍塌,但却总是让技术的大厦存在不小的裂缝。另一方面,产品、运营等角色往往对CTR模型的理解停留在似是而非的直观层面,也有必要做个严肃的普及。
今天我们不讲复杂的建模技术,仅来聊聊CTR模型背后的一些小知识。抛几个问题开开胃:
-
CTR的物理意义是什么?用户的点击概率可以被准确预测吗?
-
CTR模型为什么普遍采用二分类建模而不是回归建模?
-
训练集中竟然存在矛盾样本,传统machine learning任务似乎闻所未闻,如何理解?
-
为什么采用AUC指标来度量模型性能,而不是传统的模型准确率?
-
CTR模型的理论AUC上界是什么,跟什么相关,为什么会存在?
-
模型预测值的准确性是什么意思?为什么需要校准?校准背后的原理是什么?
1. CTR的微观不可预测性
不失一般性,下文统一以展示广告场景为例来做介绍。点击率,即发生点击的概率,度量的是“某时某刻某地用户对看到的某个广告点击的可能性”。那问题来了,这个可能性能否被准确预测?
简便起见,记“某时某刻某地用户看到某个广告”这个事件为E。根据大数定律,如果我们能够在平行空间将事件E独立运行 N次,并观察到其中T()次发生了点击。当N足够大时我们可以断言:
显然,随着N趋近于无穷大,这个值越逼近真实值。然而事与愿违:客观世界中,我们能且只能观察到事件E发生1次。换句话说,事件E 发生后点击概率的真实值(true-ground)我们永远无法获得,因此微观层面来看CTR是无法被准确预测的,我们的预测只是对真实值的某种猜测。
为了更准确地理解这个结论,我们给出数学化的描述。事件E发生后的结果只能是点击或不点击两种情况,我们用Bernoulli分布来刻画,对应参数为,其中x表示事件E的所有背景知识,包括用户信息、广告信息、场景及上下文信息,也