還原了豆廠群里一次精彩的排序討論:
“有 spam 的事情才是真正有商業(yè)價值的事情焕参,與人斗其樂無窮,welcome to the real world!”
"@aaa: 求算法爸爸救命鸿捧。
有N個ID搓劫,每個ID有ABC三個參數,由于參數大小影響流量分配熄赡,每個ID都有可能通過ABC中任意一項或兩項來刷量玩裙。
求最合理客觀的排序算法…… orz"
----
"@吃瓜群眾: 看群名"
----
"@yyy: 排什么序兼贸?"
----
"@yyy: 問題沒描述清楚段直,打回去重寫"
----
"@nnn: 還是太模糊了。"
----
"@lllc: 每個ID都有可能通過ABC中任意一項或兩項來刷(巨大的)量溶诞。換個角度就是每個ID至少有一項不能刷吧鸯檬,最簡單的思路是按照min(A,B,C)這項指標來排?"
----
"@吃瓜群眾: 打回去與紅包一起重發(fā)"
----
"@aaa: 等我想想怎么寫orz"
----
"@xxx: 我理解的大概就是 廣播有 回復 贊 轉播螺垢,三個因子"喧务,
其中兩個可以刷", 給廣播熱度排個序"枉圃,
把刷量的影響降低到最小"功茴,
不知道理解沒理解#### PM 的想法"
----
"@aaa: 有N個ID,每個ID有ABC三個參數孽亲,系統默認按照參數A對全部ID進行排序痊土,由于參數大小影響流量分配,每個ID都有可能通過ABC中任意一項或兩項來刷量墨林。為了防止刷量,目前的辦法是人肉全程通過遍歷ABC三個參數的比例來判斷是否作弊犯祠,但由于ABC的合理比例是在一定范圍內波動的旭等,因此人肉判斷很不準確。
求最合理客觀的排序算法…… orz"
----
"@aaa: 當前版本暫不支持查看此消息衡载,請在手機上查看搔耕。"
----
"@吃瓜群眾: 我是不是應該退回去"
----
"@吃瓜群眾: 。痰娱。弃榨。那么多,手賤了我"
----
"@aaa: 記得加倍喲"
----
"@吃瓜群眾: 我還是沒看懂問題"
----
"@吃瓜群眾: 這個描述跟之前沒有區(qū)別啊"
----
"@吃瓜群眾: 你就說你要干嘛吧"
----
"@吃瓜群眾: 魚總分析的差不多"
----
"@aaa: 小魚的理解力一流"
----
"@yyyl: 每個ID都有可能通過ABC中任意一項或兩項來刷量
肯定不能通過三項一起刷梨睁?"
----
"@吃瓜群眾: 就是id通過三個參數排序鲸睛,但是要盡量排除刷票嫌疑"
----
"@aaa 基本可以當作不會"
----
"@yyyl: 按普成老師的說法,min(A,B,C) 最簡單"
----
"@群眾: 但是不能簡單min吧"
----
"@aaa: 直接min的話不行"
----
"@lllu: 因為目前你不知道三個數據的量級"
----
"@nnn: 先把scale 拉平坡贺,然后用幾何平均官辈。"
----
"@yyyl: 我認為起碼比現在有效"
----
"@lllc: 給一個策略,在給反饋看想朝哪邊優(yōu)化"
----
"@lllu: 比如一個點贊遍坟,一個訪問量"
----
"@aaa: ABC的數量級很懸殊"
----
"@lllc: min是標準化之后"
----
"@lllu: 訪問量會遠遠高于贊的數量"
----
"@aaa: nnn好帥"
----
"@yyy: 沒啥完全客觀的算法拳亿,如果刷兩者能反推感知出來你的評價策略,就可以針對性調整刷量策略愿伴。這么簡單的評價策略一定會被反推出來"
----
"@ggg: 聽起來肺魁,你現在又開始工作了。然后還是個直播隔节?"
----
"@yyy: 反作弊策略鹅经。首先是必須要保密寂呛,不能讓別人知道;其次是得是動態(tài)的瞬雹,靜態(tài)策略一定會被反推出來昧谊。"
----
"@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: 其實淘寶就是這樣的,購買量他巨、好評率充坑、下單率 共同決定寶貝排序,破解的辦法就是嚴懲刷單染突,一旦發(fā)現后果嚴重捻爷。但是隱蔽地刷,還是會刷上來"
----
"@aaa: 現狀就是作弊嚴重份企,現在都是人肉全程通過遍歷ABC三個參數的比例來判斷是否作弊也榄,但由于ABC的合理比例是在一定范圍內波動的,因此人肉判斷很不準確。比如運營經驗判斷A:B通常在 0.8~1.2之間是合理的甜紫,但這太不科學了"
----
"@xxx: 一個魔高一尺道高一丈的問題降宅,可能無法通過一個公式一勞永逸,要長期斗爭哇..."
----
"@ggg: 確定核心指標囚霸,確定核心指標的常態(tài)/非常態(tài) 閾值腰根。然后高于閾值的減權"
----
"@ggg: 1個核心"
----
"@aaa: 而且運營最多識別出作弊者,根本沒有辦法做去掉作弊后的客觀排序"
----
"@xxx: anti spam 吧拓型,把 spam 都清了额嘿,spam 相關商品降權,spam 的 ABC 全剪掉..."
----
"@ggg: 或者換個思路:
每個ID劣挫,給一個紅利峰值册养。
到了峰值,就減權"
----
"@aaa: 問題是压固,怎么降權球拦,降多少"
----
"@aaa: 也不需要,不能極端處罰"
----
"@lllc: 沒有任何數據帐我,完全沒法抽象談怎么降權坎炼、降多少(*@ο@*) 哇~"
----
"@ggg: 這是算法搞定的。算法都是黑盒的拦键。從來不知道沙沙怎么處理這些事点弯。也從來不知道真正有作用沒有[擦汗]"
----
"@yyyl: 從anti的角度能發(fā)現啥么?"
----
"@aaa 實際情況是矿咕,如果處罰過激,那么id直接會惡意spam"
----
"@aaa: 比如我?guī)湍闼⒗桥ィ缓竽惚晦k"
----
"@mmm: 跳出abc參數碳柱,通過用戶行為找個指標呢?類似場景發(fā)生在安卓渠道方刷假流量上熬芜,每日留存莲镣、日時長都可以造假,但設備號等很難涎拉,就可以通過重復設備號剔除假流量瑞侮。"
----
"@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: 我覺得這算法你不如找個信得過的并懂算法的人怒炸,把業(yè)務邏輯詳細的告訴他带饱,再由他想對策≡母可操作的空間很大勺疼,并不局限在幾個參數。"
----
"@ggg: 1. 你的紅利捏鱼,給abc三個指標哪個帶來影響执庐?
2. 假設是A,那么BC兩個指標导梆,是其他用戶貢獻的么轨淌?
3. 如果是,那么去判斷其他用戶群的行為看尼。來決定真實數據递鹉。
走anti的思路"
----
"@nnn: 所以重點還是避免讓他們知道排序規(guī)則。"
----
"@sss: 一個用戶一次給這些參數的貢獻也是不均勻的藏斩?"
----
"@aaa: 我的解決方案是id直接競價排名躏结,但現在各種原因做不了", 因為刷量的目的是獲利"狰域,但我自己也清楚現在不能做"媳拴,畢竟不是淘寶"
----
"@nnn: Google News,Quora 都盡量模糊且抽象描述自己的排序標準兆览。屈溉。另外,特別高的數據也不一定就是spam抬探,因為互聯網上本來頭部就是會被特別放大语婴。"
----
"@lllc: 是電商么?"
----
"@aaa: 和電商的邏輯類似"
----
"@lllc: 所以,在反作弊之前砰左,得先定義一個正常用戶的模式"
----
"@aaa: 曝光越多匿醒,數值越大,獲利也越多"
----
"@lllc: 或者用點擊流判定是否spam缠导?"
----
"@aaa: 正常用戶的ABC之間的比例是波動的"
----
"@ggg: 那還是找參數和用戶之間的關系吧"
----
"@ggg: 運營去輔助判斷“作品”的好壞廉羔,是否合規(guī)"
----
"@lllc: 如果是電商,瀏覽僻造,收藏憋他,購買,評價等等等等髓削,不止 ABC 三項"
----
"@lllc: 正常用戶這三個指標的比例有波動竹挡,有沒有可能識別出其他指標相對穩(wěn)定?"
----
"@lllc: 或者分類排序立膛?"
----
"@aaa: ABC已經是作弊成本比較高的參數了揪罕,引入別的參數,只會拉低作弊成本"宝泵, 而且其它參數的比例沒有什么規(guī)律"
----
"@nnn 對外展示的每個數據都會引誘作弊行為好啰。對外暴露內容,或最近訪問者儿奶,不暴露訪問總量框往,會直接取消作弊意愿,然后隱藏你的排序公式闯捎。"
----
"@www: 邏輯上你需要區(qū)分兩個目的椰弊,一個是你希望鼓勵的行為,這個代表你產品的價值觀瓤鼻;另一個是你希望抑制的行為男应,這個代表你的實施手段。這兩個目的雖然在很多方面做法有一致性娱仔,但本質上是不同的,可以看做是搜索里面的 ranking 部分和SEO 規(guī)范部分"
----
"@www: 一般來說游桩,ranking 部分的優(yōu)化目標是不會輕易變的牲迫,算法部分可以做很多嘗試,但基本上圍繞相對穩(wěn)定的目標來進行的借卧,比如收入盹憎、點擊、PV铐刘,傳播等等陪每,如果你們有運營的同事做數據標定,建議采用 learning to rank 的方法,這個也是目前公認比較有效的方法來做有明確優(yōu)化目標排序的方式"
----
"@www: 但如果你們沒有特別明確的目標檩禾,就是大家其實對什么排前面什么排后面沒有明確的看法挂签,可以再多收集些數據看看"
----
"@aaa: 唔,貌似確實想到一些思路"
----
"@aaa: 謝謝www"
----
"@aaa: [親親]"
----
"@www: 至于 anti-spam 部分盼产,是沒有一勞永逸的方式的饵婆,這是個彼此消長的過程,在可容忍的范圍內不必太過糾結戏售;如果的確發(fā)現是個大問題侨核,需要專門找人來做,基本上是個人肉特征工程+合適的算法工具+快速迭代的事情灌灾。"
----
"@www: 另外搓译,有 spam 的事情才是真正有商業(yè)價值的事情,與人斗其樂無窮锋喜,welcome to the real world!"
----
"@吃瓜群眾 welcome to the real world!"
----
"@吃瓜群眾: 有 spam 的事情才是真正有商業(yè)價值的事情些己,與人斗其樂無窮,welcome to the real world!"
----
"@aaa跑芳,其實我覺得競價排名很棒轴总,反正刷量是為了獲利,無法收回成本的話自然就降低了刷量的動力"
----
"@aaa: 設定鼓勵的行為給我不少啟發(fā)"