分析了自家150個ML模型之后,這家全球有名的旅行網(wǎng)站得出了6條經(jīng)驗教訓(xùn)
在許多媒體文章中,我們都能看到「機器學(xué)習(xí)賦能 XX 行業(yè)」的字眼,但這種「能量」究竟體現(xiàn)在哪些方面,企業(yè)在引入機器學(xué)習(xí)模型的過程中要注意哪些問題,很多文章都沒有說清楚。在今年的 KDD 大會接收論文中,全球最大的線上旅行代理網(wǎng)站 Booking.com(繽客網(wǎng))貢獻了一篇論文,分析了他們面向客戶的 150 個成功的機器學(xué)習(xí)應(yīng)用以及從中得到的六條經(jīng)驗教訓(xùn)。本文是對這篇論文的簡短總結(jié)。
「150 successful Machine Learning models: 6 lessons learned at Booking.com」是一篇絕佳的綜述,它結(jié)合了 Booking.com 大約 150 個面向客戶的成功的機器成功應(yīng)用以及從中得到的經(jīng)驗教訓(xùn)。奇怪的是,雖然論文的標題這么寫了,在正文中卻從未明確列出這 6 條經(jīng)驗教訓(xùn)。不過,我們可以從論文的劃分中推斷出這些部分,以下是我的解讀:
- 使用機器學(xué)習(xí)模型的項目會創(chuàng)造巨大的商業(yè)價值
- 模型的性能不等同于經(jīng)營業(yè)績
- 弄清你正在嘗試解決的問題
- 預(yù)測的延遲是個重要問題
- 及早獲取模型質(zhì)量的反饋
- 用隨機對照試驗測試你的模型的商業(yè)影響力(第二點中也有提到)
當然,這篇論文中的好建議可不止這六條。
我們發(fā)現(xiàn),發(fā)揮真實的商業(yè)影響力極為困難,更何況,將在建模方面所做的努力和觀測到的影響力之間的聯(lián)系分離開來好好理解原本就是一件難事。我們主要的結(jié)論是:要用機器學(xué)習(xí)打造出這 150 個成功的產(chǎn)品,其根本在于,要有一個迭代的、由假設(shè)驅(qū)動的流程,并結(jié)合其他學(xué)科。
別把這段引文解讀為不值得在機器學(xué)習(xí)上投資。與之相反,我認為正如 DevOps 的現(xiàn)狀報告中所提到的高效能組織具有的所有其它特質(zhì)一樣,提升一個組織設(shè)計、構(gòu)建以及在面向用戶的場景中成功部署機器學(xué)習(xí)模型的能力,對于提升該組織的競爭力有根本性的作用。(而且,如果能在未來的報告中看到有數(shù)據(jù)證實或者證偽那個假設(shè),不也是很有意思嘛?。?/p>
Booking.com 在構(gòu)建模型時需要解決那些問題?
你大概聽說過 Booking.com,「世界上最大的在線旅行社」。給用戶傳遞良好的旅行體驗是個有挑戰(zhàn)性的任務(wù),主要有以下幾個因素:
推薦的風(fēng)險很高——預(yù)訂到一個錯誤的住處,可比播放一部你不喜歡的電影糟糕多了!
用戶在預(yù)訂旅程的時候,對于他們真正期待的東西往往沒有給足信息。
住宿的供給受限,價位變動會影響住客的選擇傾向。
住客的選擇偏好在他們每次使用平臺的時候都可能發(fā)生變化(比如說,如果每年只預(yù)訂一兩次)。
住宿的相關(guān)信息過多,用戶無法及時消化。
這 150 個模型都是什么模型?
目前已經(jīng)有大約 150 個機器學(xué)習(xí)模型部署到了生產(chǎn)中,因此,機器學(xué)習(xí)已經(jīng)觸及了 Booking.com 用戶體驗的方方面面。有些模型非常具體,聚焦于特定背景下的特定情形;另外一些模型則像一個語義層,對某些在多種語境下都能派上用場的概念進行建模,比如基于用戶旅程的終點預(yù)測該用戶靈活性的模型。
Booking.com 所使用的模型可分為六個大類:
- 旅行者偏好模型:在語義層工作,對用戶的偏好做出各種預(yù)測。(如靈活度)
- 旅行者背景模型:同樣在語義層,預(yù)測旅程發(fā)生的背景(如家庭出行、與朋友出行、商務(wù)出行、……)
- 條目空間導(dǎo)覽模型:追蹤用戶的瀏覽記錄,使得推薦能整體考慮用戶個人歷史記錄和整個目錄。
- 用戶界面優(yōu)化模型:優(yōu)化背景圖片、字體大小、按鈕等 UI。有趣的是,「我們發(fā)現(xiàn)沒有某個特定的值是整體最優(yōu)值,所以我們的模型會根據(jù)背景和用戶信息,來確定最佳的用戶界面。」
- 內(nèi)容策展模型:策劃并選擇性地展示人工生成的內(nèi)容,如評論。
- 內(nèi)容擴充模型:計算一個旅程所含元素的附加信息,如當前哪些選擇物超所值,或者某個區(qū)域內(nèi)的價位趨勢。
經(jīng)驗教訓(xùn) 1:使用機器學(xué)習(xí)模型的項目會創(chuàng)造巨大的商業(yè)價值
在 Booking.com,以上各類模型都提供了商業(yè)價值。而相比其它那些沒有使用機器學(xué)習(xí)的成功項目,基于機器學(xué)習(xí)的項目往往創(chuàng)造出更高的回報。
圖 2:各類模型相對于影響力中位數(shù)的商業(yè)影響力
而一旦投入使用,除卻即刻的商業(yè)利益,它們往往會繼續(xù)成為產(chǎn)品進一步發(fā)展的基石。下圖顯示了一系列產(chǎn)品部署的影響力,每一個都基于前者,又繼續(xù)改善商業(yè)產(chǎn)出。
圖 3:關(guān)于某推薦產(chǎn)品的一系列實驗。每個實驗測試了一個專攻某個領(lǐng)域的新版本或某個機器學(xué)習(xí)問題的設(shè)定。條形的長度為相對于初版的觀測值(都有顯著的統(tǒng)計學(xué)差異)
經(jīng)驗教訓(xùn) 2:模型的性能不等同于經(jīng)營業(yè)績
Booking.com 通過隨機對照試驗衡量模型在某些商業(yè)指標上的影響力,以此來預(yù)估模型產(chǎn)生的價值。
我們有一項有趣的發(fā)現(xiàn):提高模型的性能未必就能增加商業(yè)價值。
原因可能有以下幾點:商業(yè)價值的飽和(無論你做什么,都沒什么再能榨取的了)、受眾較少導(dǎo)致的部分飽和(新老模型效果大致相同)、對某些不能成功轉(zhuǎn)化為商業(yè)指標(如轉(zhuǎn)化率)的間接指標(如點擊量)的過度優(yōu)化、以及下圖中所闡釋的恐怖谷效應(yīng)(人形玩具或機器人的仿真度越高人們越有好感,但當超過一個臨界點時,這種好感度會突然降低,越像人越反感恐懼,直至谷底,這種效應(yīng)被稱為恐怖谷)。
圖 5:恐怖谷:人們有時候并不喜歡太過精準的預(yù)測(基于馬爾科夫鏈的目的地推薦器)。圖中的用戶抱怨稱:「booking.com 怎么知道我在去薩爾斯堡之前要先去維也納?」
經(jīng)驗教訓(xùn) 3:弄清你正在嘗試解決的問題
在開始構(gòu)建模型之前,有必要花時間去對你要解決的問題做一個仔細的定義。
構(gòu)建問題的過程把某個商業(yè)案例或者概念作為輸入,把一個定義好的建模問題(通常是一個有監(jiān)督的機器學(xué)習(xí)問題)作為輸出,以此找到一個好的解決方案來為這個商業(yè)案例或概念建模。
有些令人驚嘆的改進并非來自于在給定體系下對模型進行優(yōu)化,而是來自于改變體系本身。比如,把基于點擊數(shù)據(jù)的用戶偏好模型改為基于住客評論數(shù)據(jù)的自然語言處理問題。
我們發(fā)現(xiàn),通常最佳的問題并不是那些我們能直接想到的,而改變問題的設(shè)定能有效解鎖隱藏價值。
經(jīng)驗教訓(xùn) 4:預(yù)測的延遲是個重要問題
關(guān)于性能對于商業(yè)指標的影響力,我們還有另一個重要的點。在一個介紹合成延遲的實驗中,Booking.com 發(fā)現(xiàn),如果延遲增加 30% 左右,轉(zhuǎn)化率就會下降 0.5%。「對我們的經(jīng)營來說,這是一個相關(guān)成本?!?/p>
對于機器學(xué)習(xí)模型來說,這個尤為相關(guān),因為它們需要強大的計算資源來做預(yù)測。即使是數(shù)學(xué)上簡單的模型,也有可能引入攸關(guān)結(jié)果的延遲。
Booking.com 采取多種方法降低模型引入的延遲,包括分發(fā)多個模型副本來達成橫向擴展、自研定制版線性預(yù)測引擎、更偏好參數(shù)少的模型、批量請求以及預(yù)計算和/或緩存。
經(jīng)驗教訓(xùn) 5:及早獲取模型質(zhì)量的反饋
當模型處理請求時,監(jiān)控輸出質(zhì)量非常重要,但至少有兩個問題不太好解決……
難以觀測到真實標簽,導(dǎo)致反饋不完整。
反饋延遲,比如,在用戶預(yù)訂時模型預(yù)測了用戶是否會留下評論,但直到旅行完成后才能評定這個預(yù)測是否準確。
Booking.com 在這樣的情形下有一招對于二分類問題效果不錯,就是看模型產(chǎn)生的回應(yīng)的概率分布?!赣幸粋€清晰穩(wěn)定點的平滑雙峰分布,大都表明模型能夠成功分辨兩個類別?!蛊渌螤睿ㄒ娤聢D)則表示這個模型或許遇到了一些困難。
圖 7:回應(yīng)分布圖的例子
……證據(jù)表明,對回應(yīng)分布的分析非常有用,幫助我們在早期就能夠探測出模型中的缺陷。
經(jīng)驗教訓(xùn) 6:用隨機對照試驗測試你的模型的商業(yè)影響力
這篇文章中考察的機器學(xué)習(xí)成功案例,大都伴隨著精巧的實驗設(shè)計出現(xiàn),有的實驗設(shè)計引導(dǎo)了開發(fā)的流程,有的則是為了檢測影響力。
文中提供了在不同情況下如何設(shè)定實驗的建議。
- 當不是所有被試都有資格參與某個變化的時候(比如他們沒有模型所需的特征),在有資格的被試子集里創(chuàng)建實驗組和對照組。
圖 8:對選擇性觸發(fā)的實驗設(shè)計
- 如果模型產(chǎn)生的結(jié)果只在一些情況下影響用戶體驗,那么進一步限定實驗組和對照組的范圍,使模型在這個范圍里能產(chǎn)生用戶可見的輸出(當然在對照組里看不到)。為了評估性能的影響,增加第三個控制組,完全不調(diào)用模型。
圖 9:對依賴模型輸出的觸發(fā)的實驗設(shè)計,以及衡量性能影響的控制組
- 比較模型的時候,我們感興趣的是兩個模型不一致的情況。我們使用只調(diào)用了當前模型的控制組(假設(shè)我們在測試比對當前模型和一個候選的改進版本)。這樣的話實驗設(shè)計就是這樣的:
圖 10:比較模型時的實驗設(shè)計
結(jié)語
由假設(shè)驅(qū)動的迭代和跨學(xué)科交融是我們用機器學(xué)習(xí)創(chuàng)造價值時的核心力量。我們希望這項工作能為其他機器學(xué)習(xí)從業(yè)者提供指引,并在這個專題上激發(fā)更多的探索。