一、這篇論文解決什么問題
session-based recommendation:用戶未登錄狀態(tài)下, 僅僅依賴匿名會話進行用戶下一個行為預測的一種算法(session-based recommendation)
作者認為此論文發(fā)表前其他方法的不足:沒有充分利用session信息
作者如何利用session信息:GRU(考慮隱含信息,考慮事件次序)
二、作者提出的模型架構
input layer + GRU layer + feed-forward layer + output layer

三、作者對GRU模型的幾點改進
session-parallel mini-batches
這里的核心問題:如何處理變長序列
作者的做法,其實就是把無意義的padding(padding本身不包含語義信息)優(yōu)化為有意義的padding(用其他session的事件來padding)

實際上,現(xiàn)在可以通過pack操作處理變長序列
sampling on the output
理想情況下,可以計算所有item的分數(shù)。但是在實踐中,需要對負樣本采樣,作者的做法也很簡單,同一個mini-batch的其他樣本就是負樣本。
ranking loss
pointwise and pairwise的ranking loss作者都試過了,發(fā)現(xiàn)pairwise ranking loss表現(xiàn)更好,作者用了BPR和TOP1
BPR(Bayesian Personalized Ranking):

TOP1:?

四、論文中對模型的優(yōu)化結(jié)論
1. 輸入加了embedding層后,效果變差
2. 在多層GRU層的情況下,輸入層直接連越深的GRU層,效果會變好
3. 一層的GRU比多層的效果好
4. 增加GRU的大小,也就是增加hidden size,也會使效果變好
5. 一層feed-forward層足夠,多了效果也不會變好
6.?pairwise ranking loss優(yōu)于pointwise?ranking loss
五、對這篇論文的感受
現(xiàn)在看貌似很簡單,但是這篇論文在2016年就把GRU很好地應用到session-based recommendation中,已經(jīng)很有意義了。
另外,我對session-parallel mini-batches這部分的理解不是很有把握。
PS:本文的所有公式和圖表都來自于論文:SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS,有理解不對的地方,歡迎指正