4 我们能否有更好的付钱方式
允许跳过没有把握的问题
付钱问题实际上有利益冲突在里面,数据标记人员希望用最小的努力拿到最大化的收益;雇主希望花最少的钱让他们出最好的活。
一个好的付钱机制需要协调这个矛盾,达到双赢。为解决这个问题我们需要用数学刻划两个概念,一个是“真实性“(truthful)准则;一个是“没有免费的午餐”(no-free-lunch)准则。
“真实性”准则假设每个人在回答问题时会有一个信心(confidence)值,在0~1之间。如果他的信心值不到一定程度,他就不应该回答这个问题;反之,如果他的信心值足够大,就应该回答这个问题。我们要设置一个付钱的机制,使得给你标记数据的人,能与你的想法互相配合;否则,这只会是我们自己的一厢情愿。
我举一个例子解释一下真实性准则。比如说我们让人去标记一下这个狗是什么种类。假设我们设定了一个信心值是50% (注意到随机猜的正确率是1/3, 小于50%)。第一个人认为,自己只有30%的几率会达到一个正确的答案。由于30% 小于给定的50%, 他就应该如实选择“我不确定“。第二个人觉得自己有90%的几率答案会是对的,由于90% 大于50%,这种情况下她应该回答这个问题。
“没有免费的午餐“准则决定在什么情况不付钱: 如果一个雇员的所有没有跳过去的问题的回答都是错的,就不付钱。这样的雇员没有给我们带来任何价值。
现在的问题是我们要找到一个付钱的方式,同时满足“真实性”和“没有免费的午餐”;也就是说,使得雇员心甘情愿做你想做的事情,而且没做好的话就拿不到钱。一般来说,付钱的方式还不能太复杂,最好用简单的加法和乘法就能解决。
这个是我们的付钱方式,一种乘法机制,或者叫做“翻倍或归零”:如果一个人犯了任何错误的话,就没有钱了,否则的话拿到的收入采用乘积的方式往上增长。
归零或让人会觉得很残酷。这里需要解释几件事。
(1)在做数据标记时,雇员可以跳过没有把握的问题,他的收入不受影响。
(2)众包中我们往往会把巨大的数据标记任务分解成很多小任务。每个小任务几分钟之内就可以完成。如果没有拿到钱,也是几分钟之内没有拿到钱。一旦没有拿到钱,众包人员知道自己做错事情了,会从中吸取教训,在下一轮里面做的更好。
(3)我们可以给每个雇员固定的收入,只是用这个方式计算额外收入或者奖金,就像你在公司工作的情况下,你的收入会分成好两部分——基本工资与奖金。
让我用例子解释实际上如何使用这个付钱机制。在众包之前需要很清楚地告诉雇员钱是怎么付的。回到图像标记这个问题上,我们或许给定这样的付钱规则:刚开始是1分钱,对每个正确的答案拿的钱就翻倍,如果有任何的答案是错的情况下,钱就归零了;如果跳过问题的话,不影响付钱。
比如第一个人前两个答案是对的,收入等于1 ×2 ×2。后三个答案跳过去了。跳过去时收入不受影响(等价于乘1),所以总共拿到4分钱。第二个人两个答案是对的,两个没有回答,一个是错的。在这个情况下收入是零,因为错了一道题。
我们在亚马逊众包平台上做了实验,发现使用这种付钱方式能够把数据标注的错误率甚至可以降低60%。有没有其他的付钱方式同时满足“真实性”和“没有免费的午餐“这两个准则?令人惊奇的是,理论上可以证明,我们的付钱方式是唯一的可以满足这两个准则的付钱方式。我们还有另外一个定理,假设有一个人所有的问题都跳过去,我们的付钱方式也是唯一地能够给这些人付最少钱的方式。可能有人会好奇,为什么这个人什么问题都不回答也给钱?理论上我们证明了一个不可能性定理:如果一个人什么问题都不回答就不给钱的话,那样的付钱机制一定不能满足“真实性”。
允许选择一个子集 (subsetselection)
我们可以把刚才的方案做进一步的延伸。在许多情况下,雇员不知道真实的答案是什么,但是知道哪些答案是错的。比如这个狗的问题,他确信最后一个答案肯定是错的,但是不肯定正确的答案到底是第一个还是第二个,于是,他就把前两个答案都选上。这信息对我们来说是有用的,因为他排除了第三个答案。如果他把所有答案都选上了,相当于他没有回答这个问题或者说把这个问题跳过去了。
在这种情况下,我们有一种类似的付钱方式。我们现在有一个表示子集的大小,全部答对的情况下拿到的总收入是A,选择的子集越大的话,拿到的钱越少。如果这个选择的子集没有包含正确的答案,就不给钱。在这里我们类似地定义“真实性”和“没有免费的午餐”这两个准则,并获得类似的定理。
众包数据标记时如果你没有精力抽查,你可以再雇另外一批人帮你抽查结果,类似于每年你去开机器学习大会,你会发现大会主席不可能评价每篇论文该收还是不收,会雇佣一些论文审查人员审查论文。写论文的作者在这里相当于提供数据标签的人,论文审查人员相当于这里审查别人答案的人,大会主席就是你自己。在这种情况下我们也需要设计一个不同的付钱方式。
(本报告根据速记整理)