还原了豆厂群里一次精彩的排序讨论:
“有 spam 的事情才是真正有商业价值的事情,与人斗其乐无穷,welcome to the real world!”
"@aaa: 求算法爸爸救命。
有N个ID,每个ID有ABC三个参数,由于参数大小影响流量分配,每个ID都有可能通过ABC中任意一项或两项来刷量。
求最合理客观的排序算法…… orz"
----
"@吃瓜群众: 看群名"
----
"@yyy: 排什么序?"
----
"@yyy: 问题没描述清楚,打回去重写"
----
"@nnn: 还是太模糊了。"
----
"@lllc: 每个ID都有可能通过ABC中任意一项或两项来刷(巨大的)量。换个角度就是每个ID至少有一项不能刷吧,最简单的思路是按照min(A,B,C)这项指标来排?"
----
"@吃瓜群众: 打回去与红包一起重发"
----
"@aaa: 等我想想怎么写orz"
----
"@xxx: 我理解的大概就是 广播有 回复 赞 转播,三个因子",
其中两个可以刷", 给广播热度排个序",
把刷量的影响降低到最小",
不知道理解没理解#### PM 的想法"
----
"@aaa: 有N个ID,每个ID有ABC三个参数,系统默认按照参数A对全部ID进行排序,由于参数大小影响流量分配,每个ID都有可能通过ABC中任意一项或两项来刷量。为了防止刷量,目前的办法是人肉全程通过遍历ABC三个参数的比例来判断是否作弊,但由于ABC的合理比例是在一定范围内波动的,因此人肉判断很不准确。
求最合理客观的排序算法…… orz"
----
"@aaa: 当前版本暂不支持查看此消息,请在手机上查看。"
----
"@吃瓜群众: 我是不是应该退回去"
----
"@吃瓜群众: 。。。那么多,手贱了我"
----
"@aaa: 记得加倍哟"
----
"@吃瓜群众: 我还是没看懂问题"
----
"@吃瓜群众: 这个描述跟之前没有区别啊"
----
"@吃瓜群众: 你就说你要干嘛吧"
----
"@吃瓜群众: 鱼总分析的差不多"
----
"@aaa: 小鱼的理解力一流"
----
"@yyyl: 每个ID都有可能通过ABC中任意一项或两项来刷量
肯定不能通过三项一起刷?"
----
"@吃瓜群众: 就是id通过三个参数排序,但是要尽量排除刷票嫌疑"
----
"@aaa 基本可以当作不会"
----
"@yyyl: 按普成老师的说法,min(A,B,C) 最简单"
----
"@群众: 但是不能简单min吧"
----
"@aaa: 直接min的话不行"
----
"@lllu: 因为目前你不知道三个数据的量级"
----
"@nnn: 先把scale 拉平,然后用几何平均。"
----
"@yyyl: 我认为起码比现在有效"
----
"@lllc: 给一个策略,在给反馈看想朝哪边优化"
----
"@lllu: 比如一个点赞,一个访问量"
----
"@aaa: ABC的数量级很悬殊"
----
"@lllc: min是标准化之后"
----
"@lllu: 访问量会远远高于赞的数量"
----
"@aaa: nnn好帅"
----
"@yyy: 没啥完全客观的算法,如果刷两者能反推感知出来你的评价策略,就可以针对性调整刷量策略。这么简单的评价策略一定会被反推出来"
----
"@ggg: 听起来,你现在又开始工作了。然后还是个直播?"
----
"@yyy: 反作弊策略。首先是必须要保密,不能让别人知道;其次是得是动态的,静态策略一定会被反推出来。"
----
"@aaa: 拉平参数再平均,排序会好一些,但其实没法识别作弊"
----
"@aaa: 为何不是电商"
----
"@xxx: 可以像##一样嘛。, 让你们刷,排序出来之后,我说谁刷了谁就刷了,然后给你 -100", 不服滚别玩"
----
"@xxx: 哈哈哈哈哈"
----
"@aaa: = ="
----
"@ggg: 我理解,电商不需要这么去控制流量机制"
----
"@aaa: 还是觉得拉平再ABC平均不行,", 这样做的策略,最终结果就是所有ID都去刷", 因为只要刷,就可以拉高排序"。 ID们都是理性的个体",求爸爸们再支招"
----
"@ggg: 你这思路就是在处理一个高流量作弊的分配问题啊
你还是直接说现状吧"
----
"@lllc: 给刷量降权?高于某个阈值显著判定为刷,直接给负权重"
----
"@xxx: 我总觉得这是个无解题呢..."
----
"@nnn: 别再界面上暴露你的ABC参数(至少别暴露全部),如果全部暴露了,引入DEF"
----
"@xxx: 3 选 2 能刷,anti spam 才是出路吧..."
----
"@nnn: 避免rank 操纵,一是隐藏使用的参数,二是使用尽可能多的参数。"
----
"@xxx: 其实淘宝就是这样的,购买量、好评率、下单率 共同决定宝贝排序,破解的办法就是严惩刷单,一旦发现后果严重。但是隐蔽地刷,还是会刷上来"
----
"@aaa: 现状就是作弊严重,现在都是人肉全程通过遍历ABC三个参数的比例来判断是否作弊,但由于ABC的合理比例是在一定范围内波动的,因此人肉判断很不准确。比如运营经验判断A:B通常在 0.8~1.2之间是合理的,但这太不科学了"
----
"@xxx: 一个魔高一尺道高一丈的问题,可能无法通过一个公式一劳永逸,要长期斗争哇..."
----
"@ggg: 确定核心指标,确定核心指标的常态/非常态 阈值。然后高于阈值的减权"
----
"@ggg: 1个核心"
----
"@aaa: 而且运营最多识别出作弊者,根本没有办法做去掉作弊后的客观排序"
----
"@xxx: anti spam 吧,把 spam 都清了,spam 相关商品降权,spam 的 ABC 全剪掉..."
----
"@ggg: 或者换个思路:
每个ID,给一个红利峰值。
到了峰值,就减权"
----
"@aaa: 问题是,怎么降权,降多少"
----
"@aaa: 也不需要,不能极端处罚"
----
"@lllc: 没有任何数据,完全没法抽象谈怎么降权、降多少(*@ο@*) 哇~"
----
"@ggg: 这是算法搞定的。算法都是黑盒的。从来不知道沙沙怎么处理这些事。也从来不知道真正有作用没有[擦汗]"
----
"@yyyl: 从anti的角度能发现啥么?"
----
"@aaa 实际情况是,如果处罚过激,那么id直接会恶意spam"
----
"@aaa: 比如我帮你刷,然后你被办"
----
"@mmm: 跳出abc参数,通过用户行为找个指标呢?类似场景发生在安卓渠道方刷假流量上,每日留存、日时长都可以造假,但设备号等很难,就可以通过重复设备号剔除假流量。"
----
"@lllc: 捧杀……"
----
"@aaa: id之间会恶意zpam"
----
"@fff: 别黑。再搓的算法,如果它是算法的话,都会有一个基本的衡量标准的。"
----
"@aaa: 不不爱民,设备号最容易刷"
----
"@aaa: ##公司的设备号总数有##亿"
----
"@yyy: 所以关键是策略需要长久维护"
----
"@xxx: 淘宝现在恶意黑也没什么好办法,不过恶意黑的成本比给自己加 spam 高多了,这么干的人还是在少数,可以通过客服渠道解决,如果真的有投诉"
----
"@mmm: 我指的是这个思路…并不是它们刷什么参数,你就堵什么参数"
----
"@sss: ABC三个参数是比值之类的还是绝对量之类的数呢"
----
"@ssa: 有作用。。。我每次上线一个算法是会做离线测试的。。谢谢。。。。"
----
"@aa: 如果id总数是几亿,恶意黑是少数"
----
"@aaa: 但如果id总数是几百呢"
----
"@aaa: abc都是整数"
----
"@sss: 用户一次只能给这些整数+1对吧"
----
"@aaa: 可以加10000"
----
"@mmm: 我觉得这算法你不如找个信得过的并懂算法的人,把业务逻辑详细的告诉他,再由他想对策。可操作的空间很大,并不局限在几个参数。"
----
"@ggg: 1. 你的红利,给abc三个指标哪个带来影响?
2. 假设是A,那么BC两个指标,是其他用户贡献的么?
3. 如果是,那么去判断其他用户群的行为。来决定真实数据。
走anti的思路"
----
"@nnn: 所以重点还是避免让他们知道排序规则。"
----
"@sss: 一个用户一次给这些参数的贡献也是不均匀的?"
----
"@aaa: 我的解决方案是id直接竞价排名,但现在各种原因做不了", 因为刷量的目的是获利",但我自己也清楚现在不能做",毕竟不是淘宝"
----
"@nnn: Google News,Quora 都尽量模糊且抽象描述自己的排序标准。。另外,特别高的数据也不一定就是spam,因为互联网上本来头部就是会被特别放大。"
----
"@lllc: 是电商么?"
----
"@aaa: 和电商的逻辑类似"
----
"@lllc: 所以,在反作弊之前,得先定义一个正常用户的模式"
----
"@aaa: 曝光越多,数值越大,获利也越多"
----
"@lllc: 或者用点击流判定是否spam?"
----
"@aaa: 正常用户的ABC之间的比例是波动的"
----
"@ggg: 那还是找参数和用户之间的关系吧"
----
"@ggg: 运营去辅助判断“作品”的好坏,是否合规"
----
"@lllc: 如果是电商,浏览,收藏,购买,评价等等等等,不止 ABC 三项"
----
"@lllc: 正常用户这三个指标的比例有波动,有没有可能识别出其他指标相对稳定?"
----
"@lllc: 或者分类排序?"
----
"@aaa: ABC已经是作弊成本比较高的参数了,引入别的参数,只会拉低作弊成本", 而且其它参数的比例没有什么规律"
----
"@nnn 对外展示的每个数据都会引诱作弊行为。对外暴露内容,或最近访问者,不暴露访问总量,会直接取消作弊意愿,然后隐藏你的排序公式。"
----
"@www: 逻辑上你需要区分两个目的,一个是你希望鼓励的行为,这个代表你产品的价值观;另一个是你希望抑制的行为,这个代表你的实施手段。这两个目的虽然在很多方面做法有一致性,但本质上是不同的,可以看做是搜索里面的 ranking 部分和SEO 规范部分"
----
"@www: 一般来说,ranking 部分的优化目标是不会轻易变的,算法部分可以做很多尝试,但基本上围绕相对稳定的目标来进行的,比如收入、点击、PV,传播等等,如果你们有运营的同事做数据标定,建议采用 learning to rank 的方法,这个也是目前公认比较有效的方法来做有明确优化目标排序的方式"
----
"@www: 但如果你们没有特别明确的目标,就是大家其实对什么排前面什么排后面没有明确的看法,可以再多收集些数据看看"
----
"@aaa: 唔,貌似确实想到一些思路"
----
"@aaa: 谢谢www"
----
"@aaa: [亲亲]"
----
"@www: 至于 anti-spam 部分,是没有一劳永逸的方式的,这是个彼此消长的过程,在可容忍的范围内不必太过纠结;如果的确发现是个大问题,需要专门找人来做,基本上是个人肉特征工程+合适的算法工具+快速迭代的事情。"
----
"@www: 另外,有 spam 的事情才是真正有商业价值的事情,与人斗其乐无穷,welcome to the real world!"
----
"@吃瓜群众 welcome to the real world!"
----
"@吃瓜群众: 有 spam 的事情才是真正有商业价值的事情,与人斗其乐无穷,welcome to the real world!"
----
"@aaa,其实我觉得竞价排名很棒,反正刷量是为了获利,无法收回成本的话自然就降低了刷量的动力"
----
"@aaa: 设定鼓励的行为给我不少启发"