新入手一本《美團機器學習實踐》,讀完以爲頗有意思,把一部份內容分享給你們。web
這本書分爲六部分,第一部分是通用流程,講的是機器學習在實踐中應用的通用流程,有些經驗之談頗有意思;第二部分講的是數據挖掘,主要包括用戶畫像、POI實體連接和評論挖掘;第三部分是搜索和推薦,顧名思義,講的是美團中的應用的搜索和推薦架構;第四部分計算廣告;第五部分講的是深度學習;第六部分講的是算法工程。算法
第一部分和第五部分屬於通用流程,有一些實踐中應用的經驗值得學習,不過相對而言,要想了解這些部分不如去看專講這些的書籍。第六部分筆者我的也以爲較爲日常,要想了解這些東西更推薦去閱讀專門講並行機器學習的部分。真正出彩的在於第2、3、四部分,或者說,凡是涉及到POI和O2O的部分都很是值得一讀!架構
美團能夠說是當之無愧的國內最大的POI和O2O應用的公司,他們在這方面的經驗積累極多,架構很是漂亮,並且即便我這個不大瞭解這方面的人讀起來,也能對機器學習在POI和O2方面的應用有大體的瞭解。接下來筆者將介紹一些本身以爲頗有趣的部分。框架
坦率地說,第二部分中,用戶畫像部分的架構最令我以爲出色,但最有參考價值的部分是POI實體連接。作用戶畫像和評論挖掘的公司不少,但美團的POI算法卻頗有多是國內最好的。機器學習
POI在這本書裏表明一個信息實體,好比在酒店業務中就表明一個酒店。維護一個優質的POI信息庫是一切算法的基礎。美團在這一部分討論的是這樣一個問題:美團已經有的POI信息庫,稱爲庫存POI;須要錄入的POI信息庫,稱爲待選POI庫。待選POI庫中的大部分POI均可能原本就在庫存POI中,只是名稱、描述、信息等可能不一樣,一個在應用中比較重要的問題就是將待選POI庫對應到庫存POI庫中去。學習
以酒店業務爲例,金泉假日酒店和金泉商務賓館多是同一家實體,要怎麼把它們對應起來呢?從名稱類似度上入手是你們都想獲得的解決方案,可是這個方法未必準確,所以就須要引入其餘信息,好比地址、電話、經緯度等。在這個場景中還有一個問題要關注,即不能進行全量比較,不然咱們就將獲得一個複雜度至少爲待選POI庫大小*庫存POI庫大小的算法,這個複雜度在實踐中是不可接受的。那麼美團的方案是什麼呢?搜索引擎
這一步有兩個方法:排序
這一工做的具體流程爲: 數據清洗-》特徵生成(各類不一樣模塊)-》模型選擇與效果評估索引
他們的候選模型包括GBDT,SVM,LR等,不算複雜,可是講到了很多實踐中的細節。深度學習
O2O場景下的搜索比普通的搜索問題有意思,由於它是深度依賴於當前環境的。用戶在日本、在北京、在武漢搜同一個詞每每表明着不一樣的意思。用戶在中午搜美食、下午搜美食、晚上搜美食,每每期待獲得的美食推薦徹底不相同。用戶搜地點時未必想找地點,也多是找地點附近的餐廳或酒店。這些問題對搜索系統提出了很是高的要求。
在美團中,搜索引擎要解決的主要問題以下:
這本書對這些問題的解決方法都作了詳細的解釋。筆者就不在這裏詳細描述了。而另外一個問題是搜索結果的排序方式,美團認爲本身的搜索排序場景主要有以下四個特色:
針對這些特色,美團實現了本身的搜索排序框架。
美團認爲O2O下的推薦與其餘推薦的主要區別包括以下三點:
美團使用的仍然是經典的推薦框架,包括召回和排序兩個階段:
從行文來看,推薦並非美團最重視的入口。
O2O場景下的廣告營銷主要具備以下特色:
綜合這些特色,美團的廣告排序機制很是有趣,它能夠實現一些在web條件下根本不可能實現的需求:例如分辨哪些是流失單,流失到了哪一個競爭對手手裏。我不在這裏贅述它的具體內容,但總體而言仍是頗有意思。
從我的角度來講,這本書最大的價值在於視野拓展。不一樣的場景下,算法要面對的問題千差萬別,有些問題每每是不作這些的人根本想不到的。不少時候,發現問題、定位問題的價值比解決問題還要高。因此,多看看不一樣場景下的算法應用是很是有幫助的,與各位讀者共勉。要是有機會的話,咱們下次再分析一下美團的用戶畫像架構。