前言:這本書是由清華大學出版社的《推薦系統與深度學習》,由黃昕、趙偉、王本友、呂慧偉、楊敏編著,前三章分別是對推薦系統的簡單介紹、對深度學習的介紹以及對tensorflow的介紹,這裏就不做筆記了。
這一章主要介紹了傳統的一些推薦方法以及利用深度學習方法(CNN、自編碼、node2vec)進行一些特徵表徵和提取。
1、基於內容的推薦算法
1.1 基於內容的推薦算法基本流程
- 特徵(內容)提取
- 基礎統計法(onehot)
- 詞頻統計法(TF-IDF並進行歸一化)
- 用戶偏好計算
- 內容召回
- 物品排序
2、協同的推薦算法
2.1-2.3 基於用戶的協同算法,基於物品的協同算法以及兩者的區別
可以參考讀書筆記:推薦系統實踐-第二章-利用用戶行爲數據 4.1-4.3 部分
2.4 基於矩陣分解的推薦方法
- 基於SVD的方法
- 加載用戶對物品的評分矩陣
- 矩陣分解,求奇異值,根據奇異值的能量佔比確定降維至k的數值
- 使用矩陣分解對物品評分矩陣進行降維
- 使用降維以後的物品評分矩陣計算物品相似度,對用戶未評分過的物品進行預測
- 產生前n個評分值高的物品,返回物品編號以及預測評分值
- LFM模型
可以參考讀書筆記:推薦系統實踐-第二章-利用用戶行爲數據 5 部分
2.5 基於稀疏自編碼的推薦方法
2.5.1 自編碼介紹
最簡單的自編碼分爲三層,輸入層和輸出層亦一樣的,中間隱層的神經元個數要低於輸入層和輸出層,這樣就可以得到壓縮特徵。
2.5.2 棧式自編碼在推薦系統中的應用——以音樂推薦爲例
使用逐層貪婪訓練法進行訓練。需要三個網絡。
- 第一個網絡:輸入和輸出是歌曲被用戶收藏的數據
- 第二個網絡:輸入層和輸出層是第一個網絡的隱層
- 第三個網絡:輸入層是第二個網絡的隱層,輸出層是softmax層,這裏是音樂的流派。隱層是全連接層,這裏的權重實際上是用戶的低維特徵。
3 基於社交網絡的推薦算法
3.1 基於用戶的推薦在社交網絡中的應用
可以參考讀書筆記:推薦系統實踐-第六章-利用社交網絡數據的第四部分
3.2 node2vec技術在社交網絡推薦中的應用
可以利用node2vec的技術將用戶進行向量化的表徵,從而方便計算相似對。node2vec的整體思路可以分爲兩個部分:
- 隨機遊走(random walk),通過一定的規則隨機抽取一些點的序列
- 將點的序列輸入到word2vec模型得到每個點的embedding向量
3.2.1 隨機遊走
實際上就是對以用戶爲節點,好友關係爲邊的社交網絡關係圖,進行隨機遊走,而獲得一個用戶序列。
對於遊走的下一個節點的選擇,遵循下面的α值選擇概率,這樣就可以通過控制p和q來控制廣度優先或者深度優先:
當下一個節點的選擇是上一個節點的時候,d=0;當下一個節點的選擇和上一個節點以及目前的節點構成三角形時,d=1;其他的情況d=2。如果p大於max(q,1),則產生的序列與深度優先搜索類似;如果p小於min(q,1),產生的序列與寬度優先搜索類似。一般而言,會從每個點開始遊走5-10次步長根據點的數量N遊走根號N步。
3.2.2 word2vec
可以參考
斯坦福大學-自然語言處理與深度學習(CS224n) 筆記 第二課 詞向量(word vector)
斯坦福大學-自然語言處理與深度學習(CS224n) 筆記 第三課 詞向量(2)
4、推薦系統的冷啓動問題
4.1 如何解決推薦系統冷啓動問題
4.1.1 針對用戶冷啓動的解決方案
- 有效利用用戶的賬號信息:當用戶進行外部賬戶的登陸的時候,可以通過賬戶信息追溯用戶在其他平臺上的行爲
- 利用用戶的手機IMEI號進行冷啓動
- 製造選項,讓用戶選擇自己感興趣的點後,即時生成粗粒度的推薦
4.1.2 針對物品冷啓動的解決方案
- 利用物品的內容信息
- 利用專家的標註數據:專家的數據有以下的優點,數據集更加稠密,打分數據的一致性更強
4.2 深度學習技術在物品冷啓動上的應用
案例一:CNN在音頻流派分類上的應用
- 將聲音的立體聲道丟棄,因爲其包含了高度的冗餘信息
- 使用傅里葉變化將音頻數據轉化爲頻域,每秒50像素,取10s-15s片段
- 使用CNN+LSTM模型進行分類模型構建(結構如下面第二個圖)
案例二:人臉魅力值打分在視頻推薦中的應用
- 利用開源工具進行臉部位置截取,開源工具是face_recognition
- 使用CNN網絡進行魅力值測評,爲了解決梯度消失的問題,使用殘差網絡結構