1. 程式人生 > >《推薦系統實踐》__第7章__推薦系統例項

《推薦系統實踐》__第7章__推薦系統例項

目錄

7.1 外圍架構

7.2 推薦系統架構

7.3 推薦引擎架構

7.3.1 生成使用者特徵向量

7.3.2 特徵-物品相關推薦

7.3.3 過濾模組

7.3.4 排名模組


7.1 外圍架構

資料的收集與儲存

  • 實時資料:資料庫mysql或快取redis中
  • 非實時資料:分散式檔案系統(如HDFS中)

7.2 推薦系統架構

推薦系統聯絡使用者和物品的方式主要有3種:

可以抽象為一種方式:基於特徵的推薦系統架構。那麼核心任務有兩部分:

  • 如何為給定使用者生成特徵
  • 如何根據特徵找到物品

使用者特徵種類:

  • 人口統計學特徵:包括使用者的年齡、性別、國籍和民族等使用者在註冊時提供的資訊
  • 使用者的行為特徵: 包括使用者瀏覽過什麼物品、收藏過什麼物品、給什麼物品打過什麼樣 的分數等使用者行為相關的特徵。同時,使用者行為從時間上也可以分為使用者近期的行為和 長期的行為
  • 使用者的話題特徵: 可以根據使用者的歷史行為利用話題模型(topic model)將電視劇和電 影聚合成不同的話題,並且計算出每個使用者對什麼話題感興趣。

推薦系統需要由多個推薦引擎組成,每個推薦引擎負責一類特徵和一種任務,相當於一種策略召回,而推薦系統的任務只是將推薦引擎的結果按照一定 權重或者優先順序合併、排序然後返回。

7.3 推薦引擎架構

推薦引擎架構圖如下:

A部分:該部分負責從資料庫或者快取中拿到使用者行為資料,通過分析不同行為,生成當前使用者的特徵向量。不過如果是使用非行為特徵,就不需要使用行為提取和分析模組了。該模組的輸出是使用者特徵向量

B部分:該部分負責將使用者的特徵向量通過特徵-物品相關矩陣轉化為初始推薦物品列表,稱為物品召回。

C部分:該部分負責對初始的推薦列表進行過濾、排名等處理,從而生成最終的推薦結果,稱為物品排序

7.3.1 生成使用者特徵向量

使用者特徵粗分為兩類:

  • 靜態特徵:使用者的註冊資訊中可以提取出來的,主要包括使用者的人口統計學特徵。
  • 動態特徵:使用者行為操作中產生的特性。

一個特徵向量由特徵以及特徵的權重組成,在利用使用者行為計算特徵向量時需要考慮以下因素:

  • 使用者行為的種類:如抖音視訊中點贊、評論、轉發等
  • 使用者行為產生的時間:近期行為應該給予較高權重
  • 使用者行為的次數:行為次數多的物品對應的特徵權重越高
  • 物品的熱門程度:如果使用者對一個很熱門的物品產生了行為,往往不能代表使用者的個性,如果使用者 對一個不熱門的物品產生了行為,就說明了使用者的個性需求。所以,加重不熱門物品對應的特徵的權重

7.3.2 特徵-物品相關推薦

todo

7.3.3 過濾模組

todo

7.3.4 排名模組

todo