舊物歸檔 [gitpage=>csdn]
這是我早期寫的論文觀後感,觀點稚嫩且不準確,權當我瞎說。
Wu S, Ren W, Yu C, et al. Personal recommendation using deep recurrent neural networks in NetEase[C]// IEEE, International Conference on Data Engineering. IEEE, 2016:1218-1229.
主題
傳統協同過濾CF(Collaborative Filtering)推薦系統,僅分析用戶已購買的商品,從中產生薦購單,且這些推薦受多數用戶歡迎(CF的原理所致),故對於單一用戶無法做出個性化推薦。
本文通過收集當前會話(指用戶進入商場頁面到離開的過程)中的瀏覽歷史與用戶購買記錄建立實時推薦系統。其目的在於,縮短用戶
“商場主頁->商品詳情頁1->商品詳情頁2->……->商品詳情頁n->付款頁”
這一過程(減少瀏覽頁面數量,比如從詳情頁1到詳情頁2後,在詳情頁2中就看到系統給用戶推薦的商品是用戶想要買的,因此該用戶就直接付款,不再繼續瀏覽其他頁面),使商品推薦會隨頁面的改變而改變,進而更有針對性。
a. 創新點
- 針對龐大數據使用levelDB、MongoDB存儲。
- 用戶行爲會實時影響系統的推薦結果。
- 使用前饋網絡(FNN)收集用戶信息與購買歷史,模擬CF算法,以此提高DRNN的預測準確度。
- 模型代碼自動生成,使用遺傳算法優化模型,自動確定網絡參數(節點數、層數、神經元等)。
- 引入a history state,解決傳統RNN的輸入節點一旦滿了後需要刪除舊節點而失去歷史信息的問題。
核心算法
用戶行爲被分爲:頁面請求(對應潛在購買的商品的特徵,如請求的頁面是男裝,則代表用戶希望購買男裝,因此推薦系統應羅列男裝)、購買記錄。
頁面請求輸入DRNN,輸出購買位於該頁面下會購買商品的概率,其中,頁面請求會按時間先後順序以30分鐘時長打包成會話記錄(session document),會話記錄會按M件爲一批分批輸入DRNN。
購買記錄輸入FNN,使用FNN模擬CF模型,網絡的激勵函數選用ReLU[2]。
綜合DRNN與FNN的結果得到每個商品在某頁面(state)下的購買可能性,其中f爲損失函數softmax。根據該可能性排序,得出推薦列表。
神經網絡DRNN、FNN模型優化:
使用隨機梯度下降法(Stochastic Gradient Descent,SGD)向後投影(BackProjection)調整權重與偏差。
下面是算法各步的詳細說明。
a. 建立DRNN
會話記錄輸入DRNN,會話記錄中的頁面請求記錄會被向量化,成爲向量V。輸入層的輸入節點接收一系列向量V,即每一個節點接收一個向量,每個節點對應在該時間點下用戶訪問的頁面。輸入節點隨訪問頁面的增多而增多(如果將DRNN展開看)。其中,輸入節點數量爲有限值,不同於傳統RNN因節點數量的限制而拋棄歷史記錄(old states),本文的DRNN使用歷史節點(the history state)保存歷史記錄。
歷史節點作爲DRNN在過去瀏覽記錄的修正,其具體方法是:將需要剔除的那部分頁面請求記錄向量Vold按(瀏覽時長/瀏覽總時間)之比加權求和。
節點數的選取、網絡隱含層層數、每層神經元數使用遺傳算法自動生成。
b. 建立FNN模擬CF
FNN的輸入量是用戶購買商品記錄矩陣,該矩陣應爲
Item1 | Item2 | … | ItemN |
---|---|---|---|
User1 | |||
User2 | |||
… | |||
UserN |
每個用戶對應一個輸入節點,輸出所有用戶購買商品的可能性。
節點數的選取、網絡隱含層層數、每層神經元數使用遺傳算法自動生成。
c. 遺傳算法優化模型
輸入神經網絡的設置參數(學習率、層數、神經元數等),隨後產生種羣,分爲奇偶兩個種羣,產生三個隨機數以確定在閾值pm、pc下奇偶種羣的動作(變異還是交叉繁殖)。
適應度計算式爲 fit=accuracy+1/(1+loss)
感悟
這篇論文是網易寫的,文中的推薦系統是運用在考拉海購網站上,其實用性不言而喻。
論文閱讀難度較上篇更難,涉及的理論更多。由於我並不瞭解DRNN,所以通過網絡查閱了相關資料,或許會影響我對這篇文章的理解。RNN、FNN使用的參數優化的方法是向後反饋,相關資料[1]
有“BackProjection”與“BackPropagation”這兩種解釋,我不確定這兩個是否就是同一概念。
本文只提供了優化DRNN模型所用到的遺傳算法的大致思路,遺傳算法中的交叉繁殖與個體變異的方法並沒有給出,且FNN是如何優化的也未提及,按論文算法,FNN中輸入的應爲訓練集中所有用戶購買過的商品作爲特徵向量,但這個向量的大小該是多少論文並沒說,這些應該就是整個推薦系統技術的核心。
最後,可以看出,推薦系統需要變得更加“智能”,更加“個性化”,第一篇論文是在打分規則上下功夫,而這篇論文則是用深度學習神經網絡來改進推薦系統,從根本上拋棄了CF模型,其研究更爲高深。
[1] 循環神經網絡(RNN, Recurrent Neural Networks)介紹
http://blog.csdn.net/heyongluoyao8/article/details/48636251
[2] ReLU(Rectified Linear Units)激活函數
http://www.cnblogs.com/neopenx/p/4453161.html