當前位置:
首頁 > 最新 > 怎樣實現一個推薦系統

怎樣實現一個推薦系統

生如夏花

 生如夏花

朴樹 

00:00/04:54

怎麼樣實現一個推薦系統?總是有人在問,很多小夥伴比較關心,並且每個人都有自己認知。有人覺得演算法最重要、模型最重要、數據最重要、引擎最重要。

其實推薦系統最重要的事是,為人民服務或者說為用戶服務,為什麼這麼說?因為長遠看只有真正以用戶為中心、為用戶服務才是長遠的,以競爭對手為目標,以數據為目標最終都會失去用戶。

上邊扯的有點遠,做了將近兩年推薦系統。復盤一下,總結一下,對前邊一個梳理,為以後深入開發做個鋪墊。

推薦系統是一個相當複雜系統,分成好多多部分,每個部分都可以深入進行研究開發。從研發角度是包含底層模型研發、大數據研發、以及服務研發。

底層模型研發主要構建模型。通過大數據端處理數據以及特徵,存儲到redis 以及hbase等存儲中。服務端讀取各種找回數據以及找回特徵,載入模型進行打分計算。三方不是孤立的,而是及其緊密聯繫在一起的,一個有機整體才能有價值。

從架構角度看,包含機器學習相關架構、深度學習相關架構,這一塊大體上是訓練評估模型,以及形成相應模型使用方案。模型包含根據用戶歷史行為生成用戶畫像,在商品推薦中可能是品類偏好,在內容推薦場景下是標籤、主題、興趣偏好。文本領域垃圾內容識別,情感識別等等都會形成相應方案。

大數據相關架構,主要是hive離線計算,storm實時計算大數據組也在探索spark streaming等,核心是兩塊離線計算和事實計算,離線計算用戶相關離線榜單以及計算離線熱門數據,依據點擊量、瀏覽、購買,加購物車等指標來生成表單。

服務端相關架構,這塊可能大家覺得在推薦中不是很重要,其實還是很重要一塊,一是數據出口再此,再有就是將用戶離線、事實等各種數據整合到一起輸出,對於這些數據需要在服務端進行整合,對於離線用戶數據召回、實時數據召回數據拉取也需要用戶來時實時獲得,再有就是通過拉取用戶、素材、用戶素材交互、場景等多維度幾百個特徵通過模型進行預估,並且進行展示處理。

每一塊都是挺複雜,會遇到可行性、性能等等各種各樣問題。這是分開看每一大塊架構包含哪些內容。其實每一塊之間都是分不開的,需要有機配合、合理設計才能發揮出最大效果。

從數據流看,有兩層重要數據流,上報特徵數據流用於模型計算,這個包含app上報點擊數據以及服務端介面返回上報,兩個互相不可取代。客戶端上報涉及用戶點擊這個數據服務端無法獲取,服務端上報會進行各種特徵打標、以及各種取交集等計算為模型訓練做準備。這個數據需要數據端進行落到hdfs並且進行初步整理。模型端依賴上報數據進行模型計算,生成模型。存儲到redis等存儲中供線上服務使用。

很多同學都是看了《推薦系統實戰》這本書,想要搞推薦系統研發,書上寫的很多,和當前實際系統還是有一定差異。做了兩年推薦系統,發現其中很多東西還是很細,有些是依賴對於業務理解。希望對於大家了解推薦系統有一些幫助。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 互聯網開發者Club 的精彩文章:

redis導致線上服務每隔5分鐘可用率下降

TAG:互聯網開發者Club |