京東推薦系統中的機器學習與大規模線上實驗

京東推薦系統中的機器學習與大規模線上實驗

京東推薦系統中的機器學習與大規模線上實驗

京東推薦系統中的機器學習與大規模線上實驗

摘要

機器學習是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。

大咖演講視頻

http://t.cn/R0iNjZ4

頁面越簡潔越好?

對於一個互聯網產品來說,是不是越簡潔越好呢?

微軟的必應搜索原來的界面非常混雜,後來為了讓頁面更加簡潔,他們把所有瀏覽器自帶的廣告全部屏蔽,只保留原始的自然搜索結果以及少量它們自己的搜索廣告。就在那一年,整個必應的搜索廣告收入提升了47%。

但是也有反例。2014年的亞馬遜和如今的京東淘寶都差不多,是一個花裡胡哨的頁面,有很多導航欄,不會浪費任何一點空間。後來他們的設計師想要做一個簡潔的頁面,讓用戶可以直奔主題進行購物,所以就把頁面改得非常簡潔,看起來的確非常符合工程師文化了,可頁面改版後他們的訂單卻出現了大幅度下跌。

新開一個頁面好不好?

2008年,MSN在Hotmail上實驗了點擊鏈接新開一個tab功能,郵箱人均打開量提升8.9%。2011年,MSN在其搜索頁面上重複這個實驗,同樣帶來了5%的提升,這是MSN歷史上最成功的實驗。

另一個反例則是In easy,是美國的一個二手貨交易小網站,他們的實驗平臺做得非常好。當時也做了類似的事情,就是在用戶搜索完之後開出一個新的彈窗,用戶可以在兩個窗口之間進行鑑別和比較,非常方便。但是當這個做完之後,他們的整個搜索用戶流失率提升到了71.52%。

無限下拉頁面

Ineasy認為,以前用戶要從第一頁看到第二頁的時候需要點擊“下一頁”,會帶來用戶等待和流失的情況。於是他們做了一個讓頁面自然往後滑動,無需點擊的方案。沒想到這個舉措導致整個用戶的購買率降低了22%。

我們在京東的購物車推薦頁面也使用了這個方案,將購物車推薦改為了無限下拉模式。而這卻是我們史上最成功的推薦產品實驗,在這個實驗期間出現了50%的收入提升。

以上幾個案例表明,同樣的策略,在A成功,但並不代表在B也能成功;以前成功不代表現在也能成功,反之亦然。有的時候我們甚至不知道為什麼會成功或失敗。

因為一件事情的影響因素太多了,我們要知道到底是什麼原因導致的成功,需要去做嚴格的因果推斷。A/B實驗是最好的因果檢驗工具。

微軟實驗平臺的大總監在2010年提出了“Hippos are dangerous!”,意思就是在一個公司裡,如果只聽最高層那個人的想法其實是很危險的。大多數互聯網產品是要面對全中國很多用戶,而最高層的想法只能代表一小部分人群。

如果有可能,無論要進行什麼改變都要先做A/B實驗。


A/B實驗核心三要素

利用統計學的思想,我們認為在實驗設計中,包含了實驗對象、實驗因素和實驗效應。

而實驗對象可以類比為A/B測試中的分流,實驗因素類比為單因素,實驗效應類比為指標。

  • 分流

我們要做隨機分流,保證不同簇群間的用戶可能會有差異但能夠通過不同的隨機進行消減。

通過AA實驗驗證多層實驗的正交性,並計算最少實驗流量。

京東推薦系統中的機器學習與大規模線上實驗

我認為分流還需要有一個均等原則。京東在去年年底進行了為期十天的實驗,測試組最初只有5%的流量,然後對比線上的大流量。一開始我們認為A算法一定比B算法要好,它也的確有更優異的表現。之後在逐漸放量的過程中,因為我們的實驗日期是2016.12.10~2016.12.20,在這期間包含了“雙十二”。在A的量最小的時候正好處於“雙十二”期間,到後來大家的荷包都被抽乾了進入低潮期,我們的流量變大了,所以雖然A的每一天都比B要好,但是平均意義上比B要差。這點給我帶來的啟示就是儘量不要在特殊的日子進行發佈或者做灰度測試。

  • 單因素

我建議實驗因素越簡單越好,一次只測試一個因素。一旦確認了一個因素的正面影響,就馬上開始下一個。這樣帶來的時間縮減,比一開始花三個月時間把整套體系建完再上線要好很多。

  • 指標

著名的邏輯學大師Peter Drucker說過,“If you can’t measure it,you can’t improve it.”

我們首先要找到一個衡量的方法,然後就能通過各種方法進行優化。

要衡量優化指標,就需要引入假設檢驗,計算置信區間。要明確區分隨機因素和真實影響。重大提升出現的概率不到1/500,而且在一個成熟系統中,基本上都被做過了。大多數的增長都是緩慢的累積,因此方向比努力更重要。

多個指標的平衡

業界的做法:其它指標沒有下降,或者下降不顯著的情況下,另一些指標上升,即可認為是一次成功的實驗。不允許用降低一個指標來提升另一個。

學界的做法:使用機器學習的方法,學出指標之間的最佳組合,以進行最好的區分。

京東推薦系統中的機器學習與大規模線上實驗


我們成功的實驗

個性化VS非個性化:個性化為我們的整個搜索引流帶來了劇烈的提升。

機器學習VS規則:從規則版本變為機器學習版本,曾為我們的購物車推薦帶來了很大的提升。

深度學習VS機器學習:從機器學習到深度學習,給我們的廣告收入帶來了一定的提升。

我們現在做的強化學習正在為我們的首頁用戶粘性帶來不可估量的提升。

這一切實驗都告訴我們,更深的數據挖掘、更細緻的模型、更廣的覆蓋和更實時的響應,都能給我們的持續增長帶來無限可能。

機器學習實踐要點

我認為機器學習無非是建立一個Y=f(X)函數,Y是優化目標,f是模型,而X是怎樣去做特徵。

Y:深入理解你的metrics,調整正負樣本的權重很重要,加入人工標註。

f:只要確定了目標,要找一個合適的模型是不難的。

X:我們要做大量的特徵工程。這裡再提出一個feature log的工作,很多工程師的工作都是在清洗數據、拼接數據、找很多不同的信息然後把它佈置上線。在佈置上線的過程中,我們把所有特徵的取值直接記錄下來。這有兩個好處,第一個好處是在下一次進行模型訓練的時候不用自己拼接,只要把這個log抽出來,工程師的工作可能會從原來90%的數據清洗+10%的數據建模變成了50%的拼接,剩下的50%全部用於建模。

另外它還可以保證線上線下的一致性。最後還是要不斷進行優化。

最後的一點建議

一旦有了點子,越早開始試驗越好。一次只改動一個地方。

線上線下一致性非常重要。無論工程師的水平有多高,實現都很可能是有問題的。

如果一個實驗一開始就不奏效,除非查到實現bug。不然繼續等待下去,它也一定不會奏效。

性能監控越實時越好,產品數據分析t+1天絕對是必要的。

我今天的分享就到這裡,謝謝大家!

相關推薦

推薦中...