A robust ranking algorithm to spamming
论文链接 http://iopscience.iop.org/0295-5075/94/4/48002
周涛博文:http://blog.sciencenet.cn/home.php?mod=space&uid=3075&do=blog&id=562170周涛的方法如下:
恶意用户是一个让所有互联网商家和普通用户头痛的问题,除非你本人就是恶意用户。大家不妨想想淘宝上通过虚假购买和虚假评分打造出来的皇冠商家,微博上面的僵尸粉和水军……当然,恶意用户可能也没有那么可恶,也许他只是乱评论乱打分,扰乱网络生态环境,但是依然在某种程度上伤害到我们获取信息的准确性上。
我们可以用一个简单的数学模型来刻画这种互联网上普遍的评分行为。用一个二部分图,一部分节点是用户,另外一部分节点是对象,譬如商品、电影、书籍等等,用户可以给自己看过的电影,购买过的商品打分。正常的用户会根据商品的质量进行评分,当然,每个人都会有误差了;而恶意用户可能会表现为:随机乱打分,故意给一个集合里面的商品打高分,故意给一个集合里面的商品打低分……我们要做的事情就是,建立一个Reputation system(信誉系统,这是我认为在互联网时代特别重要的),能够给出对象质量和用户评价准确程度(可信度或者信誉度)的排序。
我们的基本方法是迭代寻优(Iterative Refinement)。简单地说,就是对象的质量是由用户打分的加权平均决定的,其中信誉度高的用户权重大;而用户的权重又是根据他的若干打分是否整体上较符合对象的质量来决定的。所以,这是一个迭代的方程,最终会收敛。我们的算法不管是在人工生成的数据,还是MovieLens和Netflix在线电影观看的真实数据上,效果都比原来的方法要好。
个人观点:这是个很有意思的方法,其实他一方面去除了恶意评价,同时,也去除了个性话观点,使对某个物品的评价归于大众化,也就是少数人服从大多数人规律。这个是不是好呢? who knows? 不是也有人说其实世界上的真理往往掌握在少数人手中吗? 其实,生活中本来就没有尽善尽美,人类总是在做权衡的事,在某个时刻寻求最大的利益点。
别人的评价:
1、如何分辨恶意用户与正常用户?比如对榴莲这种水果,喜欢的人可能打满分,不喜欢的人可能会打零分,这样的例子会有很多,如何去区分?
2、恶意用户与正常用户之间有没有一个明确的辨别标准?有些恶意评分行为可能只是偶然性的。
3、如何建立切实有效的信誉系统?如果信誉低是否对用户利益得失有影响?
4、信誉高的用户权重大,会不会造成“垄断”行为?会不会误导大众?例如现在微博上粉丝数高的用户(实际上很多都是刷出来的)利用微博进行营销(比如团购)。
5、最重要的是算法是死的,人是活的。这是一个互相博弈的过程。