我的产品记(5)群里的一次排序讨论

还原了豆厂群里一次精彩的排序讨论:

“有 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: 设定鼓励的行为给我不少启发"

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 131,793评论 18 138
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 30,623评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,332评论 0 11
  • 第二章 从商品说起 商品的分类: 一、类目:类目就是一个纯粹的分类,像“服装、电器、手机”等这样分下...
    huiyuansu阅读 862评论 0 1
  • Java技术与Java虚拟机 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由...
    一W句代码阅读 309评论 0 2