新入手一本《美團機器學習實踐》,讀完覺得很有意思,把一部分內容分享給大家。
這本書分為六部分,第一部分是通用流程,講的是機器學習在實踐中應用的通用流程,有些經驗之談很有意思;第二部分講的是資料探勘,主要包括使用者畫像、POI實體連結和評論挖掘;第三部分是搜尋和推薦,顧名思義,講的是美團中的應用的搜尋和推薦架構;第四部分計算廣告;第五部分講的是深度學習;第六部分講的是演算法工程。
第一部分和第五部分屬於通用流程,有一些實踐中應用的經驗值得學習,不過相對而言,要想了解這些部分不如去看專講這些的書籍。第六部分筆者個人也覺得較為平常,要想了解這些東西更推薦去閱讀專門講並行機器學習的部分。真正出彩的在於第二、三、四部分,或者說,凡是涉及到POI和O2O的部分都非常值得一讀!
美團可以說是當之無愧的國內最大的POI和O2O應用的公司,他們在這方面的經驗積累極多,架構非常漂亮,而且即使我這個不大瞭解這方面的人讀起來,也能對機器學習在POI和O2方面的應用有大致的瞭解。接下來筆者將介紹一些自己覺得很有趣的部分。
POI實體連結
坦率地說,第二部分中,使用者畫像部分的架構最令我覺得出色,但最有參考價值的部分是POI實體連結。做使用者畫像和評論挖掘的公司很多,但美團的POI演算法卻很有可能是國內最好的。
POI在這本書裡代表一個資訊實體,比如在酒店業務中就代表一個酒店。維護一個優質的POI資訊庫是一切演算法的基礎。美團在這一部分討論的是這樣一個問題:美團已經有的POI資訊庫,稱為庫存POI;需要錄入的POI資訊庫,稱為待選POI庫。待選POI庫中的大部分POI都可能本來就在庫存POI中,只是名稱、描述、資訊等可能不同,一個在應用中比較重要的問題就是將待選POI庫對應到庫存POI庫中去。
以酒店業務為例,金泉假日酒店和金泉商務賓館可能是同一家實體,要怎麼把它們對應起來呢?從名稱相似度上入手是大家都想得到的解決方案,但是這個方法未必準確,因此就需要引入其他資訊,比如地址、電話、經緯度等。在這個場景中還有一個問題要關注,即不能進行全量比較,否則我們就將得到一個複雜度至少為待選POI庫大小*庫存POI庫大小的演算法,這個複雜度在實踐中是不可接受的。那麼美團的方案是什麼呢?
第一步:縮小候選集
- 通過聚類的方式進行POI聚合:即首先在城市維度進行聚合
- 建立倒排索引,縮小比較候選集
第二步:相似度比較
這一步有兩個方法:
- if-else連擊,即通過一連串if-else條件判定是否同一實體
- 相似度打分:對不同POI的每一個維度進行打分,加權比較相似度
具體流程
這一工作的具體流程為: 資料清洗-》特徵生成(各種不同模組)-》模型選擇與效果評估
他們的候選模型包括GBDT,SVM,LR等,不算複雜,但是講到了不少實踐中的細節。
O2O場景下的搜尋
O2O場景下的搜尋比普通的搜尋問題有意思,因為它是深度依賴於當前環境的。使用者在日本、在北京、在武漢搜同一個詞往往代表著不同的意思。使用者在中午搜美食、下午搜美食、晚上搜美食,往往期待得到的美食推薦完全不相同。使用者搜地點時未必想找地點,也可能是找地點附近的餐廳或酒店。這些問題對搜尋系統提出了非常高的要求。
在美團中,搜尋引擎要解決的主要問題如下:
- 如何定義使用者的查詢意圖?
- 如何識別使用者的查詢意圖?
- 如何將使用者的查詢意圖連結到特定實體?
- 如何引導使用者完成搜尋?
這本書對這些問題的解決方法都做了詳細的解釋。筆者就不在這裡詳細描述了。而另一個問題是搜尋結果的排序方式,美團認為自己的搜尋排序場景主要有如下四個特點:
- 移動化:使用者的位置不斷移動,並且距離是排序的重要因素
- 場景化:使用者在家、工作地點、戶外或者店內,這些不同場景對於使用者意圖的理解是非常重要的
- 本地化:搜尋查詢的目標往往是本地化的
- 個性化:使用者偏好較為明顯
針對這些特點,美團實現了自己的搜尋排序框架。
O2O場景下的推薦
美團認為O2O下的推薦與其他推薦的主要區別包括如下三點:
- 地理位置因素
- 使用者歷史行為:與其他的推薦場景不同,使用者在同一家店的復購可能性很高
- 實時推薦:一是需要考慮使用者的實時地理位置,二是需要考慮消費的實時性,在O2O場景下,使用者從考慮消費到最終下單的時間非常短
美團使用的仍然是經典的推薦框架,包括召回和排序兩個階段:
- 召回階段:召回策略包括基於協同過濾的召回、基於位置的召回、基於搜尋查詢的召回、基於圖的召回和基於實時使用者行為的召回
- 排序階段;排序模型仍然是經典的模型,沒有什麼特別之處,特徵則包括:item維度的特徵、使用者維度的特徵、使用者和item的交叉特徵、距離特徵和場景特徵。
從行文來看,推薦並不是美團最重視的入口。
O2O場景下的廣告營銷
O2O場景下的廣告營銷主要具有如下特點:
- 移動化:主要體現在精確性、即時性和互動性三個方面
- 本地化:美團發現超過90%的交易中使用者和商家的距離小於3公里
- 場景化:移動條件下的場景比web條件下更為精確
- 多樣性:O2O模式面對的商戶各種各樣,需求差異很大
綜合這些特點,美團的廣告排序機制非常有趣,它可以實現一些在web條件下根本不可能實現的需求:例如分辨哪些是流失單,流失到了哪個競爭對手手裡。我不在這裡贅述它的具體內容,但整體而言還是很有意思。
總結
從個人角度來說,這本書最大的價值在於視野擴充。不同的場景下,演算法要面對的問題千差萬別,有些問題往往是不做這些的人根本想不到的。很多時候,發現問題、定位問題的價值比解決問題還要高。所以,多看看不同場景下的演算法應用是非常有幫助的,與各位讀者共勉。要是有機會的話,我們下次再分析一下美團的使用者畫像架構。