《推薦系統》:有一種書讓我們完成到科班的跨越

李潔發表於2013-06-07

非常有幸先讀到了這本書的中譯版,來說說我的感受吧。

一般來說,我接觸過的程式設計師大多屬於兩種,第一種是經過良好的大學教育,另一種是可能畢業後誤打誤撞進入了程式設計師這個行業。從心底來講,我個人傾向於前者,因為他們一般具有很棒的計算機基礎,可是我又捨不得後者,因為他們又有著豐富的專案經驗。我接觸過很多在校的學生,包括已經工作過的人,我提問,如果某個大學來招你做計算機系的老師,那麼你會選擇教哪一門課?關於這一門課你的教學思路是什麼?如果組內希望你做一次關於推薦系統的分享講座,你會怎麼安排目錄計劃?這個問題目前為止我很少遇到能答得很棒的人。

推薦系統在國內的起步時間較晚,與軟體工程,計算機視覺,搜尋技術等國內已經成熟的專業不同,很少有實驗室來專門來做推薦系統的研究,大多數做推薦系統的人都是半路出家,當然其中也包括我自己。往往的情況都是原公司,或者實驗室希望做一個推薦相關的事情,那麼找一個有興趣並且有一定演算法基礎的人去做這個事兒,這個人也往往是看幾篇關於推薦系統的文章,大部分是協同過濾,或者矩陣分解,然後做出一個結果,具體怎麼優化或者還需要做什麼,這些都以後遇到問題再說。

而這樣就造成了很多計算機科班出身的人,在推薦系統領域卻成了半路出家,理論決定實踐,實踐又反作用於理論,對於當前的很多網際網路公司的工作人員而言,有著很多的資料讓你去折騰,所以瓶頸並不在於實踐上,往往在於理論和體系的欠缺。

現用現查所造成的情況是缺少一個對推薦系統整體的把控,說到推薦系統和推薦演算法,近年來除了Boosting, SVM和Deep Learning算是三個跨時代的演算法,最多再算上SVD++,其餘很少有演算法有著質的突破,大多大同小異。那麼決定一個推薦系統好壞的原因,已經從拼演算法模型到了拼資料,拼產品,拼細節,拼系統架構,再到對推薦系統的整體設計,而這些都需要對業務的理解和對推薦系統整體的理解和把控。

這本書最大的優點是對推薦系統的整理都做了一個很好的概括,從基本的協同過濾,Content-based,降維。再到對當前推薦系統弊端的分析,然後引入Knowledge-based的“推薦系統“,到推薦演算法的混合,再到推薦系統的評估以及推薦系統的攻擊防禦。最後簡單介紹語義網和移動網際網路大環境下的推薦系統需要注意和考慮的點。幾乎整理了一個推薦系統所涉及到的每一個模組。為讀者上了一個很好的推薦引擎架構課。

不過我個人並不建議把這本書作為學習推薦的第一本書,因為這本書對於初學者來說有些過於複雜了,畢竟時常出現的數學公式可能會讓人望而生卻。對於初學者的第一本書,無論是《集體智慧程式設計》還是項亮的《推薦系統實踐》都是很棒的入門書。

而這本書是我目前認為最好的初學者的第二本書,在對推薦系統有著初步瞭解的情況下對推薦系統整體有一個瞭解和把控,然後接下來再針對每一章所提出的問題,以及細節去專門看對應的書或者是paper,或者再去讀大名鼎鼎的Recommender System Handbook,一定會讓你受益匪淺。 enter image description here

作者:飛林沙

(轉載自豆瓣網http://book.douban.com/review/5874982/ )

相關文章