淘宝相关工作人员透漏,在反作弊的评测中,评测算法上线前的准确率时,使用最多的是单纯随机抽样和分层抽样。这两种方法都属于随机抽样方法,也就是照随机的原则,即保证总体中每个单位都有同等机会被抽中的原则抽取样本的方法。 

一、    反作弊算法评测概况

反作弊,简单理解就是“打击作弊”,对使用各种作弊手段达到搜索排名靠前的行为进行处理。目前有标题滥用关键词、虚假交易、广告商品等11类作弊类型,具体请参考淘宝帮派http://bangpai.taobao.com/group/thread/400769-271003118.htm。

在淘宝海量的宝贝中,要把有作弊行为的宝贝识别出来,不可能靠人肉case by case的寻找,而是通过总结宝贝的特征,用算法来实现批量处理。而算法是否可靠,则需要人工来验证,当人工验证的准确率达到预期的指标后,算法才能上线生效,对作弊宝贝进行处理。

二、    为什么用随机抽样

在前面说到,随机抽样是“保证总体中每个单位都有同等机会被抽中”的抽样方法。在一个算法中,宝贝是通过同一个算法逻辑来识别的,大家都“生而平等”,想要知道这些宝贝的状况,用到随机抽样中的单纯随机抽样和分层抽样即可。

三、    具体操作方法举例

1.       单纯随机抽样

单纯随机抽样:从总体中抽取一定比例的样本。比如算法A,召回了5万宝贝(召回:即算法识别了5万作弊宝贝,称作召回),我们从中抽取1%的样本量进行评测,来估算算法的准确率。

这种抽样方式适合召回数量不多,算法逻辑较为单一,召回总体无法再区分的评测。

2.       分层抽样

分层抽样:先依据一种或几种特征将总体分为若干个子总体,每一子总体称作一个层;然后从每层中随机抽取一个子样本,这些子样本合起来就是总体的样本。稍微不同的是,一般的分层抽样重视的是整个样本的评测结果,而算法评测中,更重视单个子样本的评测结果。这是在算法准确率评测中使用最频繁的抽样方法。

适用场景1:算法逻辑一致,分层变量清晰且相对独立。

拿“标题滥用关键词”的算法来说,算法逻辑中滥用的关键词有“非”(非檀木匠),“比”(比江南布衣美),“不是”(不是百丽/达芙尼),这里分层就可以以关键为依据分成3个子总体,3个子总体各自抽自身数量的1%,合成一个总样本。当然每个子样本都设有一个下限,当1%不足下限时,自然补足,这样相对能保证评测结果的可信度。(为何是1%的比例,又说来话长,是根据经验在人力与置信度之间取的平衡点,暂不坠述。)

 

适用场景2:算法逻辑一致,分层变量本身有连续性。

“标题滥用关键词”分层后,各子总体之间比较独立,没有连续性。而“虚假交易”算法的分层维度往往是数值,有一定的连续性。如,根据识别特征的不同,不同数值水平的宝贝或卖家会体现出明显的差异性,所以需要分阈值区间进行数据提取。

   像这种连续性的变量,应该怎么来分层呢?总不能有50个变量值我们分50个子总体来进行评测与统计。所以在目前的评测中,我们一般用到2种划分方法。

(1)分层后,每个子总体的召回数量相近。

假设以下1-10是一个连续的变量:


从表格可以看出,以“每个子总体的召回数量相近”的原则来分层的话,区间应该是:1,(2,5],6以上。当然,临界点的数据能取到一个舒适的数值就最好不过了,比如,取5的倍数、10的倍数等,这也是为什么上表不取“变量6”为临界点的原因。

(2)借助算法的其他维度分层。

假设算法中有一个主变量,有一个辅助变量,则可以根据辅助变量来分层:

 

总得来说,分层抽样的好处在于:

A.        清晰的看到子总体个自的算法准确率,其中一个子总体没有达到指标时,可以更有针对性的进行算法调优,来达到预期的指标,免去了对整个召回大动干戈。

B.        假设其中一类无法达到指标,又没有调优的空间,可以暂时不处理,先处理已达到指标的类型。免去了因一种类型导致整体准确率未达到指标而无法上线的情况。

C.        当算法召回量过于庞大,需要较长的时间停留在评测环节时,可以用分层的方法,把召回分成几个部分,评一部分,流动到下一环节,逐步在线上生效,不至于将“战线”拖得太长。

     以上是今天所诠释的内容,我们做淘宝卖家不容易可是作为淘宝本身也同样不内容、望年底驭宝网络能再接再厉、GO啦。