Amazon 的推薦系統到底行不行?
本文轉載自? ResysChina ,作者? @clickstone ,極客公園已獲得轉載授權。
亞馬遜在業內有「推薦系統之王」之稱,亞馬遜有 35% 的銷售額是與推薦系統相關的 [1]。但是最近,微軟的研究員 Amit Sharma 發表了一篇 paper《Estimating the causal impact of recommendation systems from observational data》[2],對這個事情提出了質疑。這篇論文分析了 Amazon 上 4000 種不同商品的相關數據,認為與我們通常歸因于推薦系統的點擊次數相比,實際上僅有四分之一真正是由推薦系統引起的,其他四分之三和推薦并沒有關系。
論文里舉了一個例子,如下圖左圖,大家主要看一下紅圈標明的地方,這是 Amazon 的單品頁上非常重要的一個推薦位「Frequently Bought Together / 經常一起購買的商品」。冬天來了,小明想買一頂帽子御寒,他在 Amazon 上看中了圖中的這頂帽子,這個時候 Amazon 向小明推薦說,買這頂帽子的人通常還會買紅圈里的那副手套,而恰好小明也需要一副手套,所以就一起下單了。例子中手套的銷售通常被認為是推薦系統的作用。
而論文作者的觀點是,即使沒有推薦,如上圖右圖,小明因為御寒的需要,一樣會尋找并購買一副手套,因此這種購買不應該計入推薦系統。作者把沒有推薦系統就不會發生的點擊稱為「因果性點擊」,而把上例中小明購買手套的點擊成為「便利性點擊」——有沒有推薦系統手套的購買都會發生,推薦系統僅僅是帶來了「便利性」。論文試圖用實驗的方法來證明,推薦系統帶來的絕大部分點擊都是這種「便利性點擊」,因此推薦系統的價值很大程度上被高估了。
為了干這個事情,論文作者發明了一種稱為「Shock-IV」的測量方法。論文的實驗數據來自于 Bing 工具條用戶的真實訪問日志,包括了 210 萬匿名用戶在 2013-14 年間的 9 個月時間內對 Amazon 上 140 萬商品的訪問記錄,并以推薦系統中最最常見的推薦形態「Customers who bought this also bought / 買了還買」作為評價目標。具體的細節我這里略去不表了,有興趣的同學可以自己去讀一下 paper。論文的結果如下圖。
圖中顯示了使用 Shock-IV 方法得到的因果性點擊率(CTR)的估計值(綠色曲線),同時為了對比,還給出了把便利性點擊計算在內的推薦系統點擊率(紅色虛線)。可以看到,例如書這個品類,因果性點擊率只有 5%,而我們通常認為 10% 以上點擊是來自于推薦系統。對于不同的商品類別,相比于推薦系統真實有效的點擊,即因果性點擊,我們通常會高估了 200% 的推薦效果。接下來是論文的常見套路之列舉不足,然后給出了結論,他們使用的 Shock-IV 這套實驗方法是相當 data-driven 的,有很大的應用價值應該推而廣之。
有人把這個實驗結果 po 到了 Quora 上 [3],結果推薦領域的大神 Xavier Amatriain 怒了。
熟悉推薦領域的人想必都知道 Xavier 的大名,他上一份工作是 Netflix 推薦團隊的負責人,現在是 Quora 的工程 VP。Xavier 之所以對這篇論文很不滿,一個重要的原因是他認為原論文的作者是在他們領域里受到尊重的研究人員,而這篇論文本身卻既不嚴謹又缺乏行業認知,大牌研究人員發布不靠譜的結論,誤導性非常大,因此他有必要站出來撥亂反正。
針對前文中「帽子-手套」的例子,Xavier 認為原論文提出的問題——如果沒有推薦用戶會怎么做——是毫無意義的。在沒有推薦的時候,用戶會有兩個選擇:1)自主選擇其他一副手套;2)拋棄你的服務,去別的地方。實際上,第二個選擇是非常值得關注的,且與原論文的另一大缺陷相關:僅是簡單地使用 CTR 來評估推薦系統。一個推薦系統的好壞不僅僅取決于有一個更好或更壞的 CTR,非常重要的一點是,它有助于減輕用戶尋找到「正確選擇」的負擔。假設兩個網站 A 和 B,在網站 A 里用戶 3 秒內就找到了他想要的東西,而在網站 B 需要 3 分鐘,那么顯而易見地用戶會更經常使用 A 網站。換句話說,推薦系統帶來的不僅僅是簡單的點擊,更重要的是讓用戶「重復使用」。
原論文中對「推薦」的定義太過狹隘,暫且不說現如今很多搜索結果都是個性化過的,像 Amazon 這樣的網站,推薦幾乎已經無所不在了。而「便利性點擊」恰恰正是推薦系統所追求的目標之一。推薦系統讓用戶生活更容易、更便利,從長期上看,用戶因此會購買更多商品,或者對服務的滿意度更高。所以從實踐意義上看,原論文定義的問題根本就是個杯具。當我們使用 A/B 測試衡量一個推薦系統的效果時,我們更加看中的是推薦是否讓用戶「爽」了,用戶使用服務爽了,就會帶來更多的活躍與營收。「便利性」不是給推薦系統添亂,它是使用推薦系統應該具備的固有益處。
另外,原論文中說因為數據層面的限制他們做不了在線的 A/B 測試,很多人很多場景也都做不了,因此它們提出的 Shock-IV 可以作為推薦系統 A/B 測試的一種替代方案。Xavier 的意思是,你們別鬧了,并給出了他之前在前東家 Netflix 的一個案例,在「 Netflix 推薦系統的最新解讀:算法、商業價值與創新 」一文中,Netflix 發現個性化技術可以顯著提高推薦影片的被接受度(Take-Rate),即推薦給用戶的影片真正被播放的比率。Netflix 做了一個對比分析,見下圖,黑色線是基于熱門度的曲線,紅色線是基于個性化 PVR(Personalized Video Ranker)指標的曲線,個性化推薦使得接受度有了巨大的提升。而且除此之外,比接受度提高更有意義的是,優秀的推薦技術使得用戶的參與度(觀看時長)與退訂率都受益匪淺。Netflix 的月退訂率很低(很小的個位數百分比),大部分是因為支付的問題,真正主動選擇退訂的非常少。通過在個性化推薦領域的多年耕耘,月退訂率得以降低了可觀的百分比。月退訂率的降低,一來有效延長了會員的付費存續期,二來也降低了為彌補流失用戶所要付出的成本。
Xavier 列舉了他認為原論文中的不妥之處,包括:
- 實驗的設定根本就是錯的;
- 對于推薦系統工作方式的假設也是錯的;
- 核心概念的定義過于苛刻,與應用的現實場景脫節;
- 實驗受到了這么多的假設和約束,但沒有發現這些限制有任何好處;
- 由于實驗方法的這些限制,需要仔細考慮實驗結果的局限性;
- 最后得到的實驗結果,并沒有與任何公認的結果進行對比。
在 Quora 的回答里,Xavier 圍繞這些問題一一進行了反駁,內容很長,建議大家去仔細讀一讀原答案,對大家學習理解推薦系統會非常有幫助。
其實關于如何評價推薦系統的作用,很早以前在 ResysChina 論壇里同學們也有過很多的討論。比如,如果以 CTR 為考核指標,把豆瓣電影單品頁中「喜歡這部電影的人也喜歡」這部分換成推薦熱門電影,這樣這部分的點擊率會提高很多。但如果考察用戶點擊的深度,即點擊了推薦項之后又繼續沿此路徑發生了多少次點擊,推薦系統給出的結果就要遠超熱門結果了。所以推薦系統從長期用戶價值來看更有用處。
Amazon 對待推薦系統價值的認知,《一鍵下單》書中有一段 Amazon 創始人貝索斯自己對它的評價:
我想我們能做的就是利用先進技術,例如聯合過濾(推薦系統最經典的算法)以及其他技術來加快找書速度。打個比方,如果你今天走進一家書店,發現一本讓你靈魂出竅的書的可能性是 1/1000,我們想利用技術來了解你本人,并使這種機會增加到 1/300,然后是 1/100。經過幾年的努力以后,使這個概率變成 1/50,等等。這將為人們創造巨大的價值。再偉大的商人也沒有機會逐個地了解他們的顧客,而電子商務要使這成為可能。
而且貝索斯還曾拿推薦系統作為武器來制衡供應商,《一網打盡》中提到過這個事情:
亞馬遜在和大型出版商談判的時候,就會使用他們的「推薦系統」作為殺手锏。如果出版商沒有達到他們的要求,亞馬遜就威脅將他們的書從人機自動化推薦系統中撤下,這也就意味著他們將不會向客戶推薦這本書。最開始出版商根本不知道亞馬遜這樣做會有什么效果,他們大多數人不知道他們銷售額增長的原因正是因為他們處于顯眼的推薦位置。亞馬遜通過這種方法來展示其強大的市場力量。如果一家出版商不妥協,亞馬遜就會關閉推薦其書目的算法,出版商的銷售額一般會下降 40%。然后,通常 30 天左右出版商就會回過頭來說,「哎喲,我們怎么做這項工作?」
這個故事也從側面印證了原論文的假設是多么不靠譜。簡單講,這篇被批判的 paper 最大的問題之一,就是把推薦僅當做「買了還買」這么一項功能來看,推薦系統現在絕不僅僅是一個算法或者一項功能了,它承載著傳遞用戶價值的重大作用。
最后,關于「買了還買」這個推薦領域的經典應用,在 Greg Linden 的《Early Amazon》[4] 也里有過相關的內容,推薦給大家:
亞馬遜有一個廣為人知的功能,「買過某本書的顧客還買過」。這是發現相關書籍的絕佳途徑。
在內部,我們管這個功能叫做「相似推薦」。通過使用這個功能,不斷地從一本書跳轉到另一本書,叫做「相似推薦漫游」。
這個功能的第一版是一位叫做 Eric 的攻城獅開發的,他很聰明,開發經驗也很豐富。和 Eric 一起工作的感覺很棒,從他身上我學到了很多。
第一版的相似推薦功能非常受歡迎。但是它有一個問題,即所謂的「哈利波特問題」。
嗯,是的,就是那個哈利波特。哈利波特是那種老少通殺的暢銷書,孩子會買它,大人也會買它,所有人都會買它。
然后你可以任選一本書。當你關注買了這本書的顧客還買過其他哪些書的時候,放心吧,其中的大多數顧客都買過哈利波特。
這種相似推薦是沒有太大用處的。你感受一下,當你在瀏覽《The Psychology of Computer Programming》這本書的時候,給你推薦哈利波特是不是挺沒用的。如果能夠推薦《Peopleware》和《The Mythical Man Month》,就有用多了。
要解決這個問題并不像乍看起來那么簡單。有一些顯而易見的解決方案會帶來另外的問題,其中一些甚至比哈利波特問題本身還要嚴重。
通過大量的實驗,我發明了一種新的相似推薦方法,工作得相當不錯。新方法給出的相似推薦,更新穎也更有幫助。而且與此同時,我還對程序性能做出了一些提升。整個過程非常有趣。
當這個新版本的相似推薦功能上線之后,貝索斯沖入我的辦公室,跪倒在我面前,向我高呼,「你丫的酷斃了!你丫的酷斃了!」
我和我的小伙伴們都驚呆了,不知道該作何反應,即使到現在回想起來,仍然會覺得手足無措。那一刻,永遠地停留在了我的記憶中。
對《Early Amazon》全系列感興趣的,請關注 ResysChina 微信公眾號,回復「amazon」即可。
參考資料:
[1] https://www.quora.com/Was-Amazon-s-recommendation-engine-crucial-to-the-company-s-success
[2] https://medium.com/ @amit_sharma/how-much-traffic-do-recommender-systems-actually-cause-2e0c6708801f
[3] https://www.quora.com/What-do-Recommender-Systems-experts-think-of-the-Estimating-the-causal-impact-of-recommendation-systems-from-observational-data-paper
[4] http://glinden.blogspot.com/2006/03/early-amazon-similarities.html
頭圖來自? mashable