文章淺析-《Joint Deep Modeling of Users and Items Using Reviews for Recommendation》
- 推薦系統論文閱讀筆記之《Joint Deep Modeling of Users and Items Using Reviews for Recommendation》
- Introduction
- This paper
- Summary
- Contributions
- Methods
- 第一層 look-up層
- 第二層 Convolution層
- 第三層 Max-pooling層
- 第四層 Fully-connected層
- 第四+1層 Factorization Machine層
- Experiment
- 資料集:
- 詞embedding方式
- 評價標準
- Baseline
- Result
推薦系統論文閱讀筆記之《Joint Deep Modeling of Users and Items Using Reviews for Recommendation》
Introduction
推薦系統應用于眾多電商平臺,如不離手的抖音、百貨大樓淘寶、Amazon,甚至一些廣告、新聞推送等,簡言之,推薦即通過用戶的歷史互動資訊對用戶進行特征建模,然后通過預測user對item的評分、點擊概率、喜歡的可能排序等進行推薦,.
This paper
文章下載地址:https://arxiv.org/pdf/1701.04783.pdf
代碼下載地址(非文章作者提供,碼友之作):https://github.com/zhaojinglong/DeepCoNN
Summary
現有的一些推薦演算法主要考慮user-item的互動和評分情況,忽略了用戶的評論中包含了大量的資訊,它不僅可以提供附加資訊,還能潛在地緩解稀疏性問題,提高推薦的質量,在本文中,我們提出了一個基于CNN的深度學習的模型——DeepCoNN,通過user的所有評論資訊和item的所有被評論資訊來學習user和item的特征表示,最后預測評分,
Contributions
1.提出DeepCoNN(名為:深度合作的神經網路),使用user reviews和item reviews對user和item屬性進行聯合建模(PS: 所謂聯合建模,就是使用提出的網路模型同時對user和item進行建模),
2.使用pre-train好的模型對詞進行embedding,就是根據詞進行look-up操作,得到word-embedding矩陣,
3.在三個資料集上(Yelp、Amazon、Beer)實驗表明優于現有的演算法,
Methods
DeepCoNN網路模型

圖片來源:原文
由上圖可知,模型一共有三層(三層?明明是四層啊!~好,那就四層!說三層是因為把卷積層和池化層合為卷積網路,是一層,按圖,四層!)
下面,以學習user特征為例,介紹模型各層……
第一層 look-up層
給不了解文本處理的小伙伴簡簡單單說一下蛤~
look-up翻譯過來就是查找,
問: 去哪里查什么呢? 答: 去訓練好的詞嵌入矩陣查某個詞的詞向量,
再問: 為什么要查呢?有詞不就好了嗎?再答: 不好!網路模型計算的是數字,不是詞,所以詞要轉化成數字!詞嵌入矩陣就是每個詞對應的數字形式,一般來講,一個詞對應一個向量,look-up之后的reviews就對應一個矩陣,因為一個review有很多詞鴨,呱呱呱~二、四、六、七、八……
反問: 懂了嗎?反答: 懂了!
好,Go on!
In the look-up layer, reviews are represented as a matrix of word embeddings to extract their semantic information. To achieve it, all the reviews written by user u, denoted as user reviews, are merged into a single document du1:n, consisting of n words in total. Then, a matrix of word vectors, denoted as V u1:n, is built for user u as follows:
別看原文了,看中文吧:
把用戶的所有評論合成一條長評論,一共有n個單詞,對每個單詞進行look-up操作,再合起來就構成Vu1:n了,所謂的合起來就是把每個詞查得的vector按行排成矩陣,這個矩陣的行數就是這條評論詞的個數,列數就是每個詞向量的維度,
第二層 Convolution層
卷積層,通過不同的卷積核提取不同的特征,
了解CNN的小伙伴就知道這個操作蛤~
Vu1:n是用戶Uj的評論embedding,Kj是卷積核,bj是偏置項,對于文本資料通常采用1d卷積,Vu1:n卷積之后對應圖中卷積層的一個列向量,多個卷積核輸出多個列向量,使用多個卷積核的目的是提取多種特征,一個卷積核提取一種特征,要問怎么就提取特征了?詳見CNN介紹蛤~
第三層 Max-pooling層
池化層,最大池化操作!
對每個卷積核提取的特征取最大值,即圖中從卷積層的每一列取最大值組合起來得到池化層的一行,O是池化得到的向量,n1是卷積核個數,
第四層 Fully-connected層
全連接層
將得到的O輸進全連接層,xu即為學得的user特征,f為激活函式,W是權重矩陣,g是偏置項,
至此,模型介紹完畢!
???
別急,還有……
第四+1層 Factorization Machine層
為了將user特征和item特征映射到同一空間,引入因子分解機,一套行云流水的常規操作,OK了!
Experiment
資料集:
1.Yelp: https://www.yelp.com/dataset-challenge
2.Amazon: https://snap.stanford.edu/data/web-Amazon.html
3.Beer
資料集情況分析:
詞embedding方式
使用訓練好的GoogleNews-vectors-negative300.bin進行look-up,
評價標準
Mean Square Error (MSE,均方誤差):
通常來講,預測評分的評價標準為MSE、RMSE,本文也不例外,
Baseline
讀者可以參見原文,
Result
讀者亦可以參見原文,
-----完結-----
???
文章讀完就完了嗎?!還要思考啊!
這篇文章發表于2017年ACM,時隔已久,可以看到,這篇文章的網路結構并不復雜,可以說是中規中矩,只不過是用到了評論資料作為附加資訊,近幾年,相關論文很多,用到的時間感知、內容感知、LSTM、注意力機制等都可以考慮到網路結構中,以上!
謝謝惠顧!哈哈哈哈哈~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/158401.html
標籤:java
上一篇:2019山東ACM省賽補題題解
下一篇:解方程之求根公式








