这是《深入点击模型》系列的第一篇文章,希望探讨搜索系统中扮演重要角色的点击模型,建模思路以及求解方法。整个系列会在我的专栏《算法工程两手抓》逐篇放出,多谢交流学习。
什么是点击模型
搜索引擎中,用户每天数以亿计的点击数据,是系统不断优化的有利数据。而将点击数据直接反馈到搜索引擎返回结果排序的模型,正是点击模型。
搜索引擎上线初期,点击数据稀少,排序依赖于 content-based 的相关性排序模型,就是说,用户搜索词与某一条搜索结果之间的内容相关性关系有多高,按照这个分数由高到低排序。相关性排序是一种先验模型,在建模时经常有不足之处(模型、特征、内容质量等假设不足)。此时,即使相关性模型判定分数更高,也未必保证结果更加符合用户的预期。
因此,点击模型基于点击数据这类后验知识,开始作为相关性模型的有力补充,发挥用处。一个搜索结果好与不好,不仅与相关性分数高低有关,同样与用户点击的多少有关。同一个搜索词下,用户点的多的,是优质相关结果的概率更大;而点击寥寥无几的,是劣质无关结果的概率更大。毕竟是用户“用脚投票”的结果,大多是可信的。
点击模型的问题
讲到这里,最朴素的点击模型便会诞生:把点击最多的搜索结果往上排,是不是就解决了问题?这样做肯定是有效的,但同样会带来很多问题。此处列举几个最主要的问题:
- 稀疏问题:大量的长尾数据、新产生的数据,无法获得足够置信的点击数据。
- 点击反作弊问题:雇佣大量虚假流量,进行“搜索-点击”的造假,利用点击模型,给某些并不相关的搜索结果增加曝光度。
- 冷启动问题:新内容或长尾内容由于缺乏用户行为,在点击模型中应该如何公平计算。
- 内部关联:相近或相同搜索词的多次点击,或单次搜索下的多次点击,应该视为整体建模。
- 偏置(bias)问题:bias 有几种不同的类型:
- attractive bias:用户一般会被标题党、图片等其他与相关性之外的信息干扰或“欺骗”,产生点击行为,此时的点击行为便是有偏的,需要区别对待。
- position bias:最简单的例子,根据生物信息捕捉,一般用户对搜索的头部结果的观察是充分的,而对尾部结果的观察是完全不够的,甚至压根就不观察,这对尾部结果是不公平的。即使同个结果,在不同位置上就会产生的点击数据也是不同的,需要区别对待。
- intent bias:同个搜索词,对不同人群来说,可能是完全不同的意思。举个真实的例子,搜索“灌篮”,80后可能是想找《灌篮高手》,而对00后可能是想找《这就是灌篮》。而搜索引擎在不同群体在不同场景获得的点击数据,需要区别对待。
当然,问题还有很多。这个系列里,我们会逐个认识几个经典的点击模型。这些问题,会或多或少地被这些模型解决。完美的模型并不存在,还需要我们的积极探索。
基础知识
点击模型的基础是概率图模型,不同假设带来不同的模型。常见行为(event)注明如下:
-
:某条搜索结果被用户检验的事件。