1、快看漫畫個性化推薦探索與實踐 夏 博 2 0 1 9 年 9 月 目錄 一、業務介紹 二、技術挑戰 三、技術探索 四、總結與未來規劃 目錄 一、業務介紹 二、技術挑戰 三、技術探索 四、總結與未來規劃 了解快看漫畫 ? 中國新生代內容社區和原創IP平臺 ? 截至2019年7月總用戶量已經突破2億,注 冊用戶量突破1億,月活突破4000萬 ? 絕大多數用戶屬于高活躍、高粘性的95后、 00后 ? 被 QuestMobile 等機構評為“最受 00 后 歡迎的產品 快看漫畫推薦業務 ? 長漫畫 ? 短漫畫 ? 圖文帖子 ? 視頻帖子 ? 人 精準匹配 內容 內容形式推薦業務場景 首頁個性 推薦ta
2、b 世界頁推 薦tab 帖底相關 推薦 發現頁推 薦tab 目錄 一、業務介紹 二、技術挑戰 三、技術探索 四、總結與未來規劃 內容形式多樣 長內容短內容 ? 漫畫、小說等 ? 大塊時間,閱 讀周期長 ? 連續性、周期 性、多章節多 興趣點 ? 短視頻、新聞資訊、 用戶帖子等 ? 碎片化時間,閱讀時 間短 ? 興趣點通常單一 ? 技術上如何捕捉長內容的 連續性、周期性、多興趣 點等特點? ? 快看漫畫既有長內容又有 短內容,如何較好的融合 兩類內容? 挑戰: 內容風格獨特 圖像文本 ? 漫畫圖像 ? 帖子圖片 ? 帖子內容 ? 彈幕 ? 評論 ? 如何進行漫畫類圖像內容 理解? ? 獨特社區文
3、化,新生代文 化“暗語”,給文本內容理解 帶來挑戰 挑戰: 目錄 一、業務介紹 二、技術挑戰 三、技術探索 四、總結與未來規劃 算法方面的探索 系統架構方面的探索 推薦算法演進 前深度學習時代深度學習時代 協同過濾 FM,FFM LR GBDT FNN Wide&Deep DeepFM XGBoost DIEN ? 可解釋 ? 易訓練 ? 易部署 ? 效果更好 ? 算法平臺搭建周 期更長 ? 難以解釋和干預 快看推薦算法迭代 基于內容協同過濾XGBoost深度學習 2019年前2019年上半年2019年到現在未來 基于內容的推薦 標簽 用戶偏好 內容理解 興趣模型 推薦 結果 ? 基于已有標簽
4、快速實現推 薦功能 ? 可解釋性強 優點: 閱讀歷史 快看漫畫標簽體系 ?作品基礎維度 ?用戶分發維度 ?內容創作維度 搞笑 日常 青春 治愈 彩色 單元劇 中性 青少年 現代 青春成長 學生 兄妹 校園 陽光 逗比 用戶興趣模型 ?相關行為 ?行為粒度(作品or章節) ?章節數量 ?興趣衰減 ?作品熱度 用戶興趣 恐怖0.5 搞笑0.6 玄幻0.4 熱血0.8 懸疑0.6 作品興趣度標簽興趣度 閱讀 關注 點贊 評論 分享 基于內容推薦總結 ? 非常依賴標簽 ? 推薦粒度較粗,召回不足 ? 缺乏新穎性 DAU人均閱讀 次數率提升35% 缺點: 基于協同過濾 ?基于物品的協同過濾(Item-B
5、ased) ?基于用戶的協同過濾(User-Based) ?基于模型的協同過濾(Model-Based) KNN召回 基于用戶的協同算法用戶相似度計算量巨大? ANN(Approximate Nearest Neighbor) nmslib vs. faiss 單機CPU的benchmark 訓練集:1,183,514 維度:200 近鄰數:100 Nmslibfaiss 實現語言C+C+ Python綁定 GPU支持 HNSW算法 其他算法 VP-Tree, NAPP, SW-graph LSH IVF(IndexIVFFlat) IVFADC(IndexIVFPQ) , IVFADC-R(
6、IndexIVFPQR) KNN召回 Faiss IndexIVFFlat 訓練&建索引 1.聚類(聚類中心存儲在量化器quantizer中) 2.找到每個向量最近的聚類中心點 3.建立倒排id list 4.建立倒排code list 搜索topK 1.搜出查詢向量最近的n個聚類中心點ID及對應的距離 2.構建k個元素最大堆 3.Id對應的倒排list每個向量計算距離后放入最大堆 4.堆排序 Faiss IndexIVFPQ 更加復雜,計算殘差,通過構建二級索引加速計算 基于協同過濾總結 DAU人均閱讀 次數提升31% ? 傾向于推薦熱門內容 ? 對新用戶和新內容不友好 ? 相似矩陣的計算量
7、大 缺點: 召回排序模型 Content-based CTR預估 UserCF ItemCF Items Data Items Items Items Items Items SVD ALS FM Items 召回層排序層 常用CTR預估算法 = 1 1 + = 0+ =1 + =1 =+1 , = 0+ =1 + =1 =+1 , , LR FM & FFM DNN GBDT CTR預估 算法模型優勢劣勢低階特征 表達 高階特征 表達 LR 1)模型簡單,善于處理離散化特征 (包括id類特征); 2)容易實現分布式,可處理大規模 特征和樣本集 1)特征需要離散化; 2)特征之間在模型中是孤立
8、的,需要做大 量特征工程來做特征交叉 XGBoost 1)樹模型具有一定的組合特征能力; 2)善于處理連續特征,可進行特征 篩選,人工特征工程量少 1)具有很強的記憶行為,不利于挖掘長尾 特征; 2)組合特征的能力有限 FM&FFM 1)可以自動進行特征間的組合, 2)通過引入特征隱向量,加速了訓 練的復雜度,善于處理稀疏數據 1)工作量接近深度學習,效果不如深度學 習 2)FFM計算復雜度高 DNN 1)可直接輸入原始特征,減少交叉 特征選擇 2)效果好 1)可解釋性差 2)模型可能較大,調參復雜,需要較大的 工程支持 CTR預估 算法模型優勢劣勢低階特征 表達 高階特征 表達 LR 1)模
9、型簡單,善于處理離散化特征 (包括id類特征); 2)容易實現分布式,可處理大規模 特征和樣本集 1)特征需要離散化; 2)特征之間在模型中是孤立的,需要做大 量特征工程來做特征交叉 XGBoost 1)樹模型具有一定的組合特征能力; 2)善于處理連續特征,可進行特征 篩選,人工特征工程量少 1)具有很強的記憶行為,不利于挖掘長尾 特征; 2)組合特征的能力有限 FM&FFM 1)可以自動進行特征間的組合, 2)通過引入特征隱向量,加速了訓 練的復雜度,善于處理稀疏數據 1)工作量接近深度學習,效果不如深度學 習 2)FFM計算復雜度高 DNN 1)可直接輸入原始特征,減少交叉 特征選擇 2)
10、效果好 1)可解釋性差 2)模型可能較大,調參復雜,需要較大的 工程支持 召回排序模型總結 DAU人均閱讀 次數提升36.6% 現狀和問題: ? 特征還需要進一步挖掘 ? 模型的訓練效率有待提升 ? 探索嘗試新模型提升效果 算法方面的探索 系統架構方面的探索 架構的重要性 算法是大腦,架構是骨架,如果沒有好的推薦系統架構,算法很難 落地 好的推薦系統需要具備的特質: ?實時響應請求 ?及時、準確、全面的記錄用戶反饋 ?優雅降級 ?快速迭代推薦策略、算法 經典Netflix推薦系統架構 ?離線層 o 不用實時數據,不提供實時服務 ?近線層(準實時層) o 使用實時數據,不保證實時服務(秒級) o
11、 近在線計算的完成是為了響應用戶事件, 增量學習算法很 適合應用在接近在線計算中 ?在線層 o 使用實時數據,要保證實時服務(毫秒級) o 在線服務的各組件要滿足SLA對可用性和響應時間的要求 快看推薦系統架構 IOS/Android/WebIOS/Android/Web 服務端(漫畫,社區) 推薦引擎 熱度池 精品池 運營池 興趣 召回 相似 召回 PredictorPredictor kNNkNN FlumeFlume KafKafk ka a 標簽索引向量索引 數 據 指 標 監 控 服 務 監 控 FlinkFlink SqoopSqoop UserHistoryUserHistory
12、 推薦結果追蹤 模型訓練 UserProfileUserProfile 特征工程 實時用戶畫像 歷史用戶畫像 動態文檔 靜態文檔 SparkSpark DocumentDocument HDFSHDFS 業 務 庫 客戶端 算法模型 標簽權重調參工具 UserCFUserCF ItemCFItemCF User2UserUser2User 排序 召回 基礎服務 工具 在線層近線層離線層其他 AB實驗平臺 ?產品各層級自上而下統一的實驗標識, 方便聯動 ?隨機分組方式 設備隨機 用戶隨機 流量隨機 ?通過實驗分層支持正交實驗 ?支持互斥實驗 ?確保流量調整時用戶穩定落在某一分組 12345 12
13、345 12345 20% 4% UI層 推薦策略層 推薦算法層 1234 1234 X實驗Y實驗 正交 互斥 AB實驗平臺 ?指標計算 可配置的指標類目 增長率(相比對照組的) 顯著性(增長是否足夠明顯P-Value) 有效性(計算結果是否可靠Power) Power功效顯著描述 0.8, 1)SS非常有效 0.5, 0.8)S有效 0,0.5)N無效,建議繼續實驗 P-Value統計顯著描述 0, 0.01SS非常顯著 (0.01, 0.05S顯著 (0.05, 1)N不顯著 推薦結果追蹤 ?推薦結果Debug的困難 個性化推薦鏈路長、涉及多個端的開發 推薦結果提供可解釋性 Bad cas
14、e發生時候的上下文丟失 Bad case引起的原因錯綜復雜 ?如何解決?追蹤工具 支持歷史推薦結果查詢 支持推薦結果溯源 歷史畫像Snapshot 用戶對推薦結果的行為 推薦引擎 LogConsumer HBase 客戶端 Monitor Kafka 目錄 一、業務介紹 二、技術挑戰 三、技術探索 四、總結與未來規劃 總結 ? 介紹快看和快看的推薦業務 ? 從算法和系統兩方面介紹了快看推薦 技術在起步階段的一些探索 ? 介紹了大規模K近鄰計算方法、AB實 驗平臺搭建等常用技術的落地方案 未來規劃 ? 內容理解是推薦業務的基石,目前這塊兒還比較 欠缺,未來將探索漫畫領域的圖像和文本內容理 解技術 ? 傳統機器學習方法探索充分之后將嘗試深度學習 推薦算法,以期更好的推薦效果