《深度學習推薦系統》閱讀筆記 1.互聯網的增長引擎—推薦系統

第一章 互聯網的增長引擎—推薦系統

近期把王喆老師的著作《深度學習推薦系統》閱讀了一遍,受益良多。爲了再深入吸收書中的實戰經驗,決定從頭到尾梳理一遍書中的我認爲的重要知識點,並對書中介紹較少的細節進行補充,同時補充一些代碼來解釋某些理論。

推薦系統的意義

“推薦”是目前互聯網應用中不可或缺的技術手段。購物、閱讀和學習,都要面對網絡上大量的良莠不齊的內容。推薦系統從來沒有像現在這樣影響着人們的生活。從用戶和公司的兩個角度可以闡述推薦系統存在的意義:

  1. 用戶:推薦系統解決在“信息過載”的情況下,用戶如何高效獲取感興趣信息的問題。
  2. 公司:推薦系統解決產品能夠最大限度的吸引用戶、留存用戶、增加用戶粘性、提高用戶轉化率的問題,從而達到公司商業目標連續增長的目標。
    結合用戶和公司角度的優化目標來看,YouTube視頻推薦的優化目標體現的非常充分。作爲一家以廣告作爲主要收入來源的公司,商業增長的關鍵在於用戶對視頻的觀看時長,所以在YouTube的推薦系統中,優化目標就是觀看時長,而非傳統推薦系統中的“點擊率”。它將點擊率與觀看時長結合,使用加權邏輯迴歸方法並在serving時轉換後的指數值進行推薦,推導後能發現建模目標就是觀看時長。後續將會詳細介紹YouTube的建模方式,感興趣的讀者可以先先閱讀論文原文《Deep Neural Network for YouTube Recommenders》。

推薦系統的架構

推薦系統邏輯框架

推薦模型的輸入是用戶、物品、場景信息以及候選的物品,根據模型輸出值的大小,按照序列對物品進行排序。

在這裏插入圖片描述

推薦系統的技術架構

推薦系統中,容易想到的着重解決的問題主要有兩類:

  1. 數據和信息相關的問題:如何存儲、更新和處理用戶、物品和場景信息?
  2. 算法和模型相關的問題:模型如何訓練、預測和達到更好的效果?
    “數據和信息”包括:數據離線批處理、實時流處理的數據流框架;
    “算法和模型”包括:訓練、評估、部署和線上推斷。

數據部分

推薦系統的數據部分主要負責信息的收集和處理。按照實時性排序:

  1. 客戶端及服務器端實時數據處理:包含客戶端的數據收集、服務器端的日誌輸出等等;
  2. 流處理平臺準實時數據處理:包含通過storm、spark、flink等處理後生成的模型實時特徵等;
  3. 大數據平臺離線數據處理:包含生成模型離線訓練樣本等;
    推薦系統的數據部分是推薦系統的水源。

模型部分

推薦系統的模型部分是推薦系統的主體。模型的結構一般包括:召回層、排序層和補充策略與算法層。
召回層:利用高效的召回規則、算法或簡單的模型,快速從海量的候選集中召回用戶可能感興趣的物品;
排序層:利用排序模型對初篩的候選集進行精排序;
補充策略與算法層:“再排序層”,爲了兼顧結果的多樣性、新鮮度等指標,結合補充的策略與算法對推薦列表進行一定的調整,最終形成用戶可見的推薦列表。
對於模型來說,訓練方法有兩種:離線訓練和在線更新。離線訓練的特點是可以利用全量樣本的特徵,使得模型逼近全局最優點。在線更新可以準實時地消化新的數據樣本,更快地反映新的數據變化趨勢,滿足模型實時性的要求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章