-->

AI内参_44_042_如何评测搜索系统的在线表现

你好,我是洪亮杰。

今天我和你分享的主题是如何评测搜索系统的在线表现。

我在本周前面的两篇文章中为你讲解了基于二元相关和基于多程度相关原理的线下评测指标。

利用这些指标研发人员在半个世纪的时间里开发了一代又一代的搜索系统。

这些指标和系统也都在不断的演化。

虽然我们这周讲过的这些指标都很有指导意义,但大多数指标被提出来的时候,都是基于线下的静态数据集,并不是真正去检测用户和系统的互动。

那有什么样的方法来评测搜索系统的在线表现呢?为了回答这个问题,我们今天就来探讨一下进行在线评测的几个话题。

我们先回到整个评测指标的初衷。

为什么要进行线下测试呢?第一个原因是在信息检索系统的开发时期还很难做在线可控实验研发人员还没有开发出值得依赖的手段来判断用户的行为。

因此啊在那个年代,比较可靠的方法就是调查问卷和后来开发出来的线下静态评测。

可以说,这些手段都是真正了解用户行为的一个代理要进行评测。

不管是线下还是线上,另外一个原因就是我们需要某种手段来分辨两个系统的好坏,从而能够不断的通过这种手段来改进系统,做到数据驱动。

那么能够正确观测两个系统,不同的工具就是在线可控实验,有时候又称作在线实验,或者也叫做在线AB实验。

在线可控实验其实是建立因果联系的重要工具,也可以说是唯一完全可靠的工具。

这里面的基础是统计的假设检验,具体来说就是我们针对访问网站或者应用的人群进行某种划分。

一般情况下是平均随机划分,百分之五十的用户进入划定的一个群组叫做控制组。

而另外百分之五十的用户进入另外一个群组,叫做对照组。

控制组和对照组的唯一区别在于所面对的系统。

假设有一个搜索系统,我们想对其中的某个部分进行改进,那么我们可以保持住其他的部分,让这个希望得到改进的部分成为唯一的独立变量。

也就是在整个实验设置中的变量。

这样我们就希望看到能否通过在线实验以及假设检验的工具来认定这个独立变量是否会带来系统性能上的提高或者降低。

这里面还有一个需要提前确定的那就是需要评测的指标,特别是用户指标,比如网站的点击率,搜索的数量等等。

这些指标我们称之为依赖变量。

说白了,我们就是希望能够在独立变量和依赖变量之间,通过假设检验建立联系。

虽然在概念上很容易理解,在线可控实验,但在实际操作中会面临很多挑战。

虽然在理想状态下,我们可以把用户五五对分,让用户分别进入控制组和对照组。

然而,现实中,经过随机算法分流的用户群,在这两个群组中很可能并不呈现完全一样的状态。

什么意思呢?举个例子,比如在控制组中,相比于对照组而言,可能存在更多的女性用户,或者是在对照组中可能存在更多来自北京的状户。

在这样的情况下,依赖变量,比如网站点击率在控制组和对照组的差别,就很难完全解释为独立变量之间的差别。

也就是说,如果控制组下的点击率比对照组高,是因为我们更改了系统的某部分产生了差别呢?还是因为这多出来的女性用户呢,又或者是因为女性用户和系统的某些部分的交互产生了一定复杂的综合结果导致的呢。

这就比较难说清楚了。

对于刚才说的有更多来自北京的用户,这个例子也是一样的。

当然在现实中,如果说我们依然可以比较容易的通过算法来控制一两个额外的变量,使得在控制组和对照组里面这些变量的分布相当。

那么面对十几种重要变量,例如年龄、性别、地域、收入、层级等等。

要想完全做到两边的分布相当难度很大。

即便我们能够做到通过随机算法通得已知变量在两个群组中的分布相当,我们依然不能对当前还未知的变量进行这样的操作。

因此啊,如何处理因人群特性所带来的对结论的影响,使现实中人群实验的难点之一。

在线实验的难点之二是我们有可能很难做到如设想中的那样,让系统的某个部分成为控制组和对照组中唯一的独立变量。

即便是刨除了刚才所提到的独群差异,在现代网站或者应用中有很多服务子系统页面模块,同时在为整个网站服务话。

这些服务务系系统、用户模块块有不同同前端系统、统后端系系统很可访,属于不同的品品工程团队。

然而,用分都希望望够做自己的可控实验,希望自己改进的部分是唯一变化的独立变量。

然而我们从宏观的角度去看,如果每个部分分在做自己的实验验,而我们实验验前基本单元依旧是每网用户的话,就很难难证用户户间间控控组。

那举例子,如果用户一进入入首页控控组组然访访问搜索页面的对照组,继而离开了网站。

而用户二直接访问了帮助页面的对照组,然后访问了搜索页面的控制组组,用用户和用户。

二这两个用户最终产生的点击率的差别,就很难从他们访问网站页面的过程中得出结论。

即便是在有大量数据的情况下,我们也很难真正去平衡用户。

在所有这些页面的组别之间的关系,实际上如何能够有效的进行在线实验,包括实验设计、实验、评测等,都是非常前沿的研究课题,每年在KDDWSDMICML等学术会议上都有不少新的研究成果出炉。

另外一个话题就是我们还可以利用因果推论对实验结果进行分析。

所以今天的最后,我想再提一下因果推论,因果推论不是普通的统计教科书内容,也不在一般工程类学生接触到的统计内容之内。

然而,这个领域在最近几年受到了机器学习界越来越多的关注。

因此,了解因果推论,对于学习机器学习的前沿知识来说,也很有必要。

像我们刚才提到的种种实验中产生的用户特征不平均,实验之间可能存在关系等。

在这些方面,我们都可以利用很多因果推论的工具进行分析。

另外,对于工程产品而言,并不是所有的情况都能够通过AB测试来对一个希望测试的内容模型或者产品设计。

在一定时间内找到合理的结果,有很多情况下是不能进行测试的。

因此,在不能进行测试的情况下,还能通过数据研究得出期望的结果。

也就是说,我们能否模拟在线实验,这就是因果推论的核心价值。

一般而言,在机器学习中,需要因果推论的场景也很常见。

比如我们需要用数据来训练新的模型或者算法。

这里面的数据采集自目前线上的系统。

然而,现在的线上系统是有一定偏差的,那么这个偏差就会被记录到数据里。

在此因果推论就为机器学习带来了一系列工具,使得在一个有偏差的数据中,依然能够无偏差的进行训练以及评测模型和算法。

今天呢我为你讲了在现代搜索技术中如何利用在线实验,特别是可控实验来评价我们构建的系统。

一起来回顾一下要点。

第一,详细介绍了在线实验的一些因素,并分析了在线实验中可能产生的用户不平衡以及实验有相互作用的问题。

第二,简短的提及了现在利用因果推论来进行在线实验数据分析以及偏差调整的一个思路。

最后给你留一个思考题,如何建立在线实验评测结果和线下指标,比如NDCG之间的关系呢?欢迎你给我留言,和我一起讨论。