本文不涉及任何具體的業務和形態,沒有公開任何數據和需要保護的技術。
互聯網產品和算法的優化,是廣大程序員和產品經理的主要工作。但想準確衡量線上實驗效果,從來都不簡單。筆者將這些反直覺現象,總結成三個典型案例予以討論。然而它們的隱秘性一個比一個更大。
太長不看的,可以直接看精簡版:
左手倒右手:多個入口挨個優化,此消彼長,一年到頭大盤沒變
只看點擊率:用戶完成功能需要更多的操作,頁面越來越復雜,卻不自知
系統耦合:模型變差,但點擊率效率是漲的。最后發現是系統間耦合破壞實驗分層假設,流量分布發生了改變, 曝光PV比點擊PV跌得更多
大部分人只對delta(增量)有感知。第一版從0開始,很難做AB實驗,第一版做的太好了反而給后續的迭代攔路了,一定要做的足夠快(cha),然后快速迭代,這樣才能符合“互聯網思維”。
下面是正文。
1. 左手倒右手
通常,一個功能有多個入口。流量如同沙漏,一層層地從上往下漏:
例如有四個入口, 當D入口的樣式或算法改變,而用戶對新樣式很感興趣,就會到新入口D嘗試。于是A,B, C 的流量轉到了D,D點擊率置信提升。但是實驗掛載的指標常常只有D入口,總量無置信變化,卻又很難檢測出其他入口流量的下降。
隨著用戶對新入口的新鮮感逐漸降低,實驗變得不置信了,不過沒關系,實驗報告早就寫好了,推全了。?那下一次就是優化A了...最后結果是,忙活了一整年,發現整個大盤原地不動。此消彼長,彼消此漲。左手倒右手,樂此不疲。?就像不會游泳的人在游泳池里來回撲騰。
指標下鉆也是一樣,全局無變化,那么下鉆到某個特定口徑,就置信提升了。但原因可能只是流量從其他地方,流到了這個特定口徑中。??
其根本原因是,用戶需求量是相對穩定的。比如買鞋,只要經濟形勢沒有明顯變化,總量就是一億雙。每個用戶不論點了多少下,最終也只會成交比較確定的數目。?
悲觀地來說,可能80%的實驗都是左手倒右手;?樂觀地說,對全局大盤沒有影響的實驗也不能一棒子打死,如果原先的體驗短板被補齊了,這也是貢獻。?但從實驗測量的角度,怎么來判斷用戶是因為新鮮,還是真正的用戶體驗的提升呢?以筆者拙見:
增加流量系統的完整監控:即使是單入口實驗,也要去分析其他入口的流量和用戶流轉,并觀察足夠長的時間以確定用戶的對新樣式的接受度。
全局留白和長期實驗:?以年的單位,對所有實驗進行匯總,整體統籌的來看全年效果。
以上都提出要長期觀察,但是長期實驗是很難實施的,它極大地增加了實驗門檻和觀察時長,違背了互聯網“快即是好”的教義,你讓大家等三個月再給老板匯報嗎??
另外,長期實驗可能從根本上不可行:?物理實驗假設了系統的參數是確定和穩態的,但用戶實驗不是,用戶有記憶性,顯著地會受整體大盤,前期實驗和用戶習慣的影響:今天喜歡,明天就疲勞;?不僅如此,實驗分層的流量很可能會在收集和訓練時泄露,進而使得所有實驗效果在長期看會趨于平均。???這就導致了實驗在分桶和時間上耦合,?短期看有效果的實驗,長期看就未必有效果。
2. 點擊越多,產品越好??
如果說在老板那里獲得的最大收獲是什么,那應該是對指標口徑的嚴格要求了。?
一切優化都是需要指標的,而指標的定義和計算并不簡單,極大地影響了優化的實施和最終的效果。?指標是一切問題的開始。定義好的指標就解決了一半的問題,否則方案可以不用看了。
實際情況中,實驗測量天生受到了度量手段的限制,除了上面的長期性,?用戶需求不一定非要通過點擊來實現。可是大部分情況下,只有點擊和轉化才有埋點。這就造成了實驗指標度量不準的問題。我們舉三個例子:
一個音樂播放器,如果其團隊的KPI是應用打開次數。?那么在鎖屏界面的小banner播放器上,按鈕越少越好。?如果把“上一首”按鈕去掉,那么用戶就不得不進入APP再去點擊上一首,應用打開次數直線上漲。可是這樣的優化,除了增加用戶的操作步驟,有什么意義呢??
一個列表展示頁,如果因為某些標簽展示,導致關鍵信息如標題展示不全,用戶為了看清標題,就不得不點擊進入詳情頁,進而導致點擊率飆升,可是這是反用戶的。產品連最關鍵的信息都沒展示全,還談什么體驗?反過來說,很多產品優化,越是把豐富信息在列表頁展示出來,用戶在列表頁已經獲得了足夠信息,點擊就越少,最后線上點擊率爆降,那該實驗該推全嗎??
再一個大家熟知且可怕的例子,一個APP的廣告安裝引流:?直接最大化裝機量和展示量,只要能提升裝機量,那么其他問題就不是問題。那么各種五迷三道的事情就出現了:部分廠商的牛皮癬廣告,彈窗,自動安裝等,無所不用其極。
這本質是指標的設定和評價問題。以筆者拙見,?商業和戰略目標,業務目標,?產品目標,技術目標,?四者應該是有不同的推導邏輯的,甚至是完全不同的。?但現實情況是,技術背產品目標,產品背業務目標,最終全部坍縮到了某個特定的指標如點擊率上。?而一旦這個指標并不能完整地刻畫整個系統時,奇怪的事情就發生了。?
因為要最大化點擊率,所以頁面自然而然地進化地越來越復雜,入口越來越多。點擊是手段而不是目的,最后的轉化成交和用戶口碑和留存才是,我們卻常常搞混了目的和手段。?用戶迷失在信息的迷宮中,用大量無效的點擊換得了團隊的KPI。?反之,你要花大量的功夫給老板解釋,為什么點擊率降了還要推全?
?以筆者拙見, 有以下可能解法:
更完整和清晰的指標體系:??區分上述四個目標(商業/業務/產品/技術),完善推導思考,?并引入其他體驗指標。?搜索有滿意度評測,推薦有不感興趣的負反饋按鈕,以及用戶體驗評測和原聲反饋。當然期間遇到不少問題:雖然大部分體驗指標很難作為算法優化的目標;算法導致的個性化也使得評測變成了難題。?
提升測量的準確性:?例如盡可能地簡化反饋,將反饋行為和用戶必然使用路徑綁定在一起:如抖音的上下滑,婚戀匹配程序的左右滑。?喜歡即點擊,不喜歡即滑動,反饋越簡單,收集越準確。?不過很多產品的設計未必能如此極簡。??另外,似乎也沒有團隊或模型,專門研究用戶在“干什么”或“怎么想”。??排除隱私考慮,如果眼動甚至腦電能引入,優化便能上一個新的臺階。
引入帶約束的目標。?如最小化用戶成交所需的點擊和停留時長,可能真沒人這么使用。?工具屬性的產品,最大的價值就是讓用戶在盡可能方便簡單地使用,“用完即走”。??問題是,沒人甘心只做工具,所有的APP都想做平臺,總想讓用戶留下來,先看文章再點廣告。?負責工具的和負責商業化的,在企業里通常是兩個并行部門。?商業化部門看了這個指標直搖頭:你這老同志壞得很呢!用戶不點擊了,我們的飯碗怎么辦?
3. 指標耦合逆優化
這個問題相比前面兩個更難以察覺。實驗系統通過分層實驗和參數正交保證各系統的解耦。但當兩個算法模塊之間有內生的耦合性時,分層實驗的假設就被破壞了。
介紹一種典型情況:移動端搜索的分卡片feeds流。由于單個query會觸發多種類型的結果。因此會設計不同的卡片,卡片間通過效率預估進行“組間排序”,例如搜美團,對外賣感興趣的用戶美團外賣在前面,而對股票感興趣的則股票卡片在前面。?卡片在內部進行商品的“組內排序”。它們通常由不同團隊負責。
當上線新模型時,如果組內新模型效果發生變化,如將冷門商品排到前面,組間排序模型會預估卡片效率下降,進而使得整個卡片排名相對靠后,導致卡片曝光下降,?但本卡片點擊PV的下降程度反而比曝光量要小。分子分母都變小,而分母小的更多。
這就是耦合導致“指標逆優化”:組內模型效果變差,反而本卡片的點擊率提升!?
這種現象也很難觀察,?你說卡片的曝光PV降了呀??但因為搜索是分query的,以上現象可能只在一部分query上出現。卡片間的效率越相似的query,組間排序的震蕩反而會更大。?不下鉆根本發現不了。
算法優化,還得去摸清上下游系統的脾氣。系統間耦合使得問題變得撲朔迷離。實驗效果真的能反映真實的模型性能嗎?對此恐怕難有通用的解決方案。筆者拙見,先解耦,再優化。參考EM算法,先固定住一個優化另外一個。當然,首先是要發現問題,并說服上下游一起優化。
4. 算法的未來
現在,回到文章最前面的那張圖,應該就一目了然了。三個維度的耦合都可能存在,而現實中,多個維度的耦合甚至會同時發生,進而大大增加問題的復雜性。
產品和算法迭代還有其他問題,如:
大部分人只對delta(增量)有感知。第一版從0開始,很難做AB實驗,那么不論基線做得多好,都很難量化地作為迭代貢獻。第一版做的太好了反而給后續的迭代攔路了,一定要做的足夠快(cha),然后快速迭代,這樣才能符合“互聯網思維”。?
找軟柿子捏:?很多活動類的基線都是隨機,可是跟隨機比獲得100%提升,有意思嗎???這也是對第一點的延伸。
拿著錘子找釘子:搞出一個技術,然后往所有的業務上硬套。配合上多個優化點,最后起作用的很可能不是這個技術,而是特征或樣本優化
產品和算法脫節:?產品看絕對,?算法看相對。不論絕對指標跌得如何洪水滔天,算法依然可以講自己的故事,分享transformer可以堆疊多少層。?反過來,產品也不理解算法邏輯,認為算法就是沒有業務sense的“配置生成器”。?
實驗次數多了,指標關注多了,實驗系統總會發生第一類錯誤,總能找到置信上漲的實驗。只要實驗夠勤奮,就能通過反復的震蕩,來獲得N次實驗推全,而對大盤的影響可能并不顯著。
這涉及到非常復雜的問題,一篇文章必然無法講完。但是,我們能做哪些事情呢?首先是花時間去思考和揣摩更加科學、嚴謹和長期的指標體系。長期有耐心。對復雜系統心存敏感和敬畏。其次,?做產品和做算法不能純靠AB實驗;由于測量能力和準確性的限制,?過分依賴指標優化,會導致惡劣的產品和算法。深度學習和實驗系統的復雜性雖高,但不能成為懶惰的借口。只看指標,不做深入分析,就是鴕鳥心態。
我們可以明顯的看到,現有的算法還不夠好,?在與億萬用戶的交互過程當中,我們的算法還處在非常原始的狀態。小紅書的種草心智,大概率也不是由算法來獲得的。?算法只能follow和猜測,卻不能拿捏用戶的想法,更不能智能地影響它。?算法流量機制依然需要專家花大量的時間去設計。算法優化的公平性也逐漸提上日程,?其他例如算法歧視,和信息繭房,這些問題到現在也沒有明確的解法。
推而廣之,績效考核也是如此。人都是很聰明的,只要給他制定一個規則,他就能通過各種方式來破解這套規則,實現自身的利益最大化。雖然數據是金標準,可是數據也是人定出來和測算出來的。?我還是比較認可“過程和結果一樣重要”的理念。?目標要做牽引,而不是絕對要求:太過絕對的只關注指標的好壞,會讓動作變形。一個不好的過程獲得的好的指標,比好的過程獲得一般的指標,帶來的副作用更大。