日萌社
人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度學習實戰(不定時更新)
1.1 推薦系統簡介
學習目標
- 瞭解推薦系統概念及產生背景
- 記憶推薦系統工作原理及作用
- 瞭解推薦系統與web項目區別
1 推薦系統概念及產生背景
個性化推薦(推薦系統)經歷了多年的發展,已經成爲互聯網產品的標配,也是AI成功落地的分支之一,在電商(淘寶/京東)、資訊(今日頭條/微博)、音樂(網易雲音樂/QQ音樂)、短視頻(抖音/快手)等熱門應用中,推薦系統都是核心組件之一。
-
什麼是推薦系統
沒有明確需求的用戶訪問了我們的服務, 且服務的物品對用戶構成了信息過載, 系統通過一定的規則對物品進行排序,並將排在前面的物品展示給用戶,這樣的系統就是推薦系統
-
信息過載 & 用戶需求不明確
- 分類⽬錄(1990s):覆蓋少量熱門⽹站。典型應用:Hao123 Yahoo
- 搜索引擎(2000s):通過搜索詞明確需求。典型應用:Google Baidu
- 推薦系統(2010s):不需要⽤戶提供明確的需求,通過分析⽤ 戶的歷史⾏爲給⽤戶的興趣進⾏建模,從⽽主動給⽤戶推薦能 夠滿⾜他們興趣和需求的信息。
-
推薦系統 V.S. 搜索引擎
搜索 推薦 行爲方式 主動 被動 意圖 明確 模糊 個性化 弱 強 流量分佈 馬太效應 長尾效應 目標 快速滿足 持續服務 評估指標 簡明 複雜
2 推薦系統的工作原理及作用
-
推薦系統的工作原理
- 社會化推薦 向朋友諮詢, 社會化推薦, 讓好友給自己推薦物品
- 基於內容的推薦 打開搜索引擎, 輸入自己喜歡的演員的名字, 然後看看返回結果中還有什麼電影是自己沒看過的
- 基於流行度的推薦 查看票房排行榜,
- 基於協同過濾的推薦 找到和自己歷史興趣相似的用戶, 看看他們最近在看什麼電影
-
推薦系統的作用
- 高效連接用戶和物品
- 提高用戶停留時間和用戶活躍程度
- 有效的幫助產品實現其商業價值
-
推薦系統的應用場景
3 推薦系統和Web項目的區別
- 通過信息過濾實現目標提升 V.S. 穩定的信息流通系統
- web項目: 處理複雜業務邏輯,處理高併發,爲用戶構建一個穩定的信息流通服務
- 推薦系統: 追求指標增長, 留存率/閱讀時間/GMV (Gross Merchandise Volume電商網站成交金額)/視頻網站VV (Video View)
- 確定 V.S. 不確定思維
- web項目: 對結果有確定預期
- 推薦系統: 結果是概率問題
1.2 推薦系統設計
學習目標
- 瞭解推薦系統要素
- 記憶推薦系統架構
1 推薦系統要素
- UI 和 UE(前端界面)
- 數據 (Lambda架構)
- 業務知識
- 算法
2 推薦系統架構
-
推薦系統整體架構
大數據Lambda架構
-
Lambda架構是由實時大數據處理框架Storm的作者Nathan Marz提出的一個實時大數據處理框架。
-
Lambda架構的將離線計算和實時計算整合,設計出一個能滿足實時大數據系統關鍵特性的架構,包括有:高容錯、低延時和可擴展等。
-
分層架構
- 批處理層
- 數據不可變, 可進行任何計算, 可水平擴展
- 高延遲 幾分鐘~幾小時(計算量和數據量不同)
- 日誌收集: Flume
- 分佈式存儲: Hadoop
- 分佈式計算: Hadoop、Spark
- 視圖存儲數據庫
- nosql(HBase/Cassandra)
- Redis/memcache
- MySQL
- 實時處理層
- 流式處理, 持續計算
- 存儲和分析某個窗口期內的數據(一段時間的熱銷排行,實時熱搜等)
- 實時數據收集 flume & kafka
- 實時數據分析 spark streaming/storm/flink
- 服務層
- 支持隨機讀
- 需要在非常短的時間內返回結果
- 讀取批處理層和實時處理層結果並對其歸併
- 批處理層
-
Lambda架構圖
推薦算法架構
- 召回階段 (海選)
- 召回決定了最終推薦結果的天花板
- 常用算法:
- 協同過濾
- 基於內容
- 排序階段 (精選)
- 召回決定了最終推薦結果的天花板, 排序逼近這個極限, 決定了最終的推薦效果
- CTR預估 (點擊率預估 使用LR算法) 估計用戶是否會點擊某個商品 需要用戶的點擊數據
- 策略調整
- 推薦系統的整體架構