讀書筆記:推薦系統實踐-第七章-推薦系統實例

1、外圍架構

在這裏插入圖片描述

  • UI系統負責給用戶展示網頁並和用戶交互。
  • 網站會通過日誌系統將用戶在UI上的各種各樣的行爲記錄到用戶行爲日誌中。日誌可能存儲在內存緩存裏,也可能存儲在數據庫中,也可能存儲在文件系統中。
  • 推薦系統通過分析用戶的行爲日誌,給用戶生成推薦列表,最終展示到網站的界面上。

推薦系統的重要因素:推薦系統本身,界面展示,用戶行爲數據

界面的一些特性:

  • 通過一定方式展示物品,主要包括物品的標題、縮略圖和介紹等。
  • 很多推薦界面都提供了推薦理由,理由可以增加用戶對推薦結果的信任度。
  • 推薦界面還需要提供一些按鈕讓用戶對推薦結果進行反饋,這樣才能讓推薦算法不斷改 善用戶的個性化推薦體驗。

數據收集與存儲

  • 需要實時存取的數據存儲在數據庫和緩存中,而大規模的非實時地存取數據存儲在分佈式 文件系統(如HDFS)中
    在這裏插入圖片描述

2、推薦系統架構

推薦系統聯繫用戶和物品的方式主要有3種:
在這裏插入圖片描述
抽象來看,可以認爲用戶和物品通過特徵進行聯繫。因此可以設計一種基於特徵的推薦系統。
在這裏插入圖片描述
據此,推薦系統的核心任務就被拆解成兩部分,一個是如何爲給定用戶生成特徵,另一個是如何根據特徵找到物品。

用戶特徵種類包括:

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

推薦系統的推薦任務種類:

  • 將最新加入的物品推薦給用戶
  • 將商業上需要宣傳的物品推薦給用戶
  • 給用戶推薦不同種類的物品
  • 給用戶混合推薦,有時需要將圖書和音像製品放到一個推薦列表中展示給用戶。
  • 對於不同的產品推薦不同新穎度的物品。比如在首頁給用戶展示比較熱門的推薦結果, 在推薦系統頁面給用戶展示長尾中的物品。
  • 考慮到用戶訪問推薦系統的上下文

因爲需要將用戶特徵和推薦任務種類綜合考慮,推薦系統需要由多個推薦引擎組成,每個推薦引擎負責一類特徵和一種任務,而推薦系統的任務只是將推薦引擎的結果按照一定權重或者優先級合併、排序然後返回。這樣,即可以方便地增加/刪除引擎,控制不同引擎對推薦結果的影響,也可以實現推薦引擎級別的用戶反饋。
在這裏插入圖片描述

3、推薦引擎的架構

在這裏插入圖片描述
推薦引擎架構分爲三部分:

  • 該部分負責從數據庫或者緩存中拿到用戶行爲數據,通過分析不同行爲,生成當前用戶的特徵向量。不過如果是使用非行爲特徵,就不需要使用行爲提取和分析模塊了。該模塊的輸出是用戶特徵向量。
  • 該部分負責將用戶的特徵向量通過特徵-物品相關矩陣轉化爲初始推薦物品列表。
  • 該部分負責對初始的推薦列表進行過濾、排名等處理,從而生成最終的推薦結果。

3.1 生成用戶特徵向量(圖中A部分)

生成特徵主要考慮如下因素:

  • 用戶行爲的種類 :用戶付出代價越大的行爲權重越高
  • 用戶行爲產生的時間:近期的行爲比較重要
  • 用戶行爲的次數
  • 物品的熱門程度:用戶對很熱門的物品產生了行爲,可能是用戶在跟風,因爲物品的鏈接到處都是,不小心點到了;如果對不熱門的物品產生了行爲,可能就說明了用戶的個性需求。

3.2 特徵-物品相關推薦(圖中B部分)

相關表融合:如圖所示,在系統中特徵-物品相關表不止一張,可以通過很多方法進行計算:協同過濾、內容計算等。最後,在線服務會把相關表按照配置的權重相加,然後將最終的相關表保存在內存裏面。
候選物集合:候選物品集合的目的是保證推薦結果只包含候選物品集合中的物品,可以控制熱門的物品出現的頻率。一般,如果是小的候選物品集合可以考慮上面的方法,如果是很大的候選物品集合,可以考慮直接在初始推薦列表中進行過濾。

3.3 過濾模塊

  • 用戶已經產生過行爲物品
  • 候選物品以外的物品:產品需求,或者用戶的篩選條件
  • 某些質量很差的物品

3.4 排名模塊

3.4.1 新穎度排名

  • 對推薦結果中的熱門物品進行降權
    在這裏插入圖片描述
  • 或者在計算興趣程度p的時候進行一定調整
    在這裏插入圖片描述
    在這裏插入圖片描述
    首先,考慮到推薦系統是爲了給 用戶介紹他們不熟悉的物品,那麼可以假設如果用戶知道了物品j,對物品j產生過行爲,那麼和j 相似的且比j熱門的物品用戶應該也有比較大的概率知道,因此可以降低這種物品的權重,比如:
    在這裏插入圖片描述
  • 也可以引入內容相似度

3.4.2 多樣性

增加多樣性的方法:

  • 將推薦結果按照某種物品的內容屬性分成幾類,然後在每個類中 都選擇該類中排名最高的物品組合成最終的推薦列表
    • 優點:簡單直觀
    • 缺點:對分類很敏感;分類不具有共識性
  • 控制不同推薦結果的推薦理由出現的次數

3.4.3 時間多樣性

增加時間多樣性的方法:

  • 保證推薦系統的實時性
  • 是要在用戶沒有新的行爲時,也要保 證推薦結果每天都有變化
    • 記錄用戶每次登陸推薦系統看到的推薦結果
    • 將這些結果發回日誌系統。這種數據不需要實時存儲,只要能保證小於一天的延時就足夠了
    • 在用戶登錄時拿到用戶昨天及之前看過的推薦結果列表,從當前推薦結果中將用戶已經看到的推薦結果降權

3.4.4 用戶反饋

  • 主要通過分析用戶之前和推薦結果 的交互日誌,預測用戶會對什麼樣的推薦結果比較感興趣
  • 如果推薦系統的目標是提高用戶對推薦結果的點擊率,那麼可以利用點擊模型(click model) 預測用戶是否會點擊推薦結果
  • 在推薦系統的點擊率預測中可以用如下特徵預測用戶u會不會點擊物品i:
    • 用戶u相關的特徵,比如年齡、性別、活躍程度、之前有沒有點擊行爲
    • 物品i相關的特徵,比如流行度,平均分,內容屬性
    • 物品i在推薦列表中的位置。用戶的點擊和用戶界面的設計有很高的相關性
    • 用戶之前是否點擊過和推薦物品i具有同樣推薦解釋的其他推薦結果
    • 用戶之前是否點擊過和推薦物品i來自同樣推薦引擎的其他推薦結果。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章