做爲一個CS專業的本科畢業生, 當初進入互聯網領域時只是一個電商業務的RD開發工程師, 後來機緣巧合之下轉向了大數據領域, 後來又進入到了推薦系統的相關開發工做。回顧這些年的工做, 總結了一些經驗, 但願對那些有志於進入推薦系統相關領域的同窗有一些幫助。算法
推薦/搜索/廣告 是目前機器學習成熟落地的三大馬車, 對各個互聯網公司商業變現有着重要的意義, 這三個業務在維度上有一些區別,好比搜索的目標是下降延時增大query的相關性, 廣告的目標是增大CTR, 視頻推薦系統的目標是播放時長點擊等綜合指標。可是從數據流和系統工程架構上看, 又很是類似。網絡
對於想接觸或者剛接觸推薦系統的同窗來講, 應該都看過下面這兩本書架構
一個比較大的問題是, 若是沒有參與到實際的推薦系統開發, 或者沒有牛逼實驗室的Buff下, 感受每一章都能看的明明白白, 可是想本身寫一個簡單的推薦系統時卻無從下手, 沒法想象像美團阿里頭條的推薦系統究竟是如何落地的。機器學習
我的觀點認爲致使這種狀況的緣由有如下幾點ide
1. 推薦系統是一個系統學習
推薦系統首先是一個系統, 做爲有盈利的互聯網公司的核心, 就註定在總體架構上十分的複雜, 好比涉及到NLP, 召回, 排序, 接日誌洗日誌算模型, 書上說的推薦方式都是單一的, 好比利用CF(協同過濾) 進行推薦, 在實際落地中推薦的召回通常是有多路的, 這樣纔會有多樣性。(書中甚至幾乎沒有提到過候選集這種每一個推薦系統都存在的東西)大數據
2. 與算法關聯緊密設計
推薦系統是算法落地比較早的領域之一, 對於 LR, GBDT, FM 這類傳統機器學習算法有着大規模的應用, 傳統機器學習的一大基礎能力就是特徵工程, 這個跟我的的領域知識極爲相關, 網上的資料不多, 幾乎是小圈子裏的屠龍之技, 具體的工業實現各家又不同,可供參考資料特別少。而對於深度學習模型來講, 要是想tf寫個代碼一跑ctr直接就升幾個點, 哪一個是癡人說夢, 具體的網絡設計到底能有什麼效果與你的業務模式, 行爲數據有很大關係, 有很大可能你上的deepFM還不如你的LR+GBDT日誌
3. 數據問題orm
對數據的重視程度, 首先, 若是是一個小系統, 好比只有幾萬PV, 根本談不上用推薦系統提高效果, 工業界的推薦系統, 日誌就是血液, 包括曝光日誌, 點擊日誌, 收藏日誌等等行爲日誌, 天天的日誌量會很大, 這些日誌一方面用於更新模型, 另外一方面進入實驗統計平臺, 計算各個算法在過去時間的效果。另外諸如FM因子分解機模型, 若是你的日誌不多, 那就是一個超級超級稀疏的矩陣, 最後算出來的模型效果也不會很好, 特別是如今深度學習在工業街普遍落地的狀況下(Wide & Deep), 缺乏大規模日誌的推薦系統就是無水之源無根之木。
由於這些緣由, 因此我建立了這個公衆號 【推薦系統與機器學習】, 但願可以分享一下工業界推薦系統的一些經常使用架構, 基礎知識, 以及在信息檢索領域前沿的一些研究和進展,但願與你們共同進步。
長按二維碼關注
推薦系統與機器學習
ID: RecomAI