《推薦系統實踐》__第7章__推薦系統例項
阿新 • • 發佈:2019-01-11
目錄
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