gragh embedding相關論文小結(四)

關於一些工業界Graph Embedding論文的整理

  • Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
  • Learning and Transfering IDs Representation in E-commerce
  • Session-based Recommendation with Graph Neural Networks
  • STAMP:Short-Term Attention/Memory Priority Model for Session-based Recommendation
  • Neural Attentive Session-based Recommendation
  • Real-time Personalization using Embeddings for Search Ranking at Airbnb

Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
本篇論文基於Session-based Graph embedding來實現RS。而RS分爲兩階段:match和rank,簡單的說就是根據user或者query來選出candidate items set,之後給其中每一個item打分來排名發給user從而實現推薦,這篇論文關注的是math階段的解決方法,考慮的是side info和item embedding。既然是Graph embedding方法,就得有Graph。這裏是做推薦,採用的也是已有的Session-based方法,就是根據user交互過的items,在同一個session中的相鄰的item則加入帶權邊,多個user則會形成一個Graph。當然這種Session-based方法我認爲也是有問題的,一個是Session window大小選擇不同的業務不同的公司標準不同難以達成一個統一的度量,再就是用戶interesting會變化,如何在Graph中反應出來是個問題。文章中提到的三個模型(Base Graph Embedding,Graph Embedding with Side information,Enhanced Graph Emebedding with Side Infomation)實際是一種漸進遞增的關係。最基本的RGE就是基於Session-based Graph構建的DeepWalk模型,也就是item的co-occur原則,這是這裏的共現不再是一維的language而是變爲非歐空間高維的Graph:
在這裏插入圖片描述
文章說改進版的Graph Embedding也就是GES是加入了Side Information是爲了解決cold-start item問題。而這個改進版基於的前提假設論文中說的也很明白:“It means that items with similar side information should be closer in the embedding space”,根據一般常識好像是那麼回事。所以論文將與該item相關聯的各個類型屬性的embedding以及自身的item embedding直接做了平均,結果再作爲該item的embedding,當然用的模型還是DeepWalk:
在這裏插入圖片描述
後來的EGES則是進行加權平均,這就有些類似於對item屬性embedding做convolution操作,這裏可以採用更好的attention機制啊,不一定非要弄一個weight matrix來實現。而且將item embedding和type embedding直接平均,意味着默認兩種embedding處於同一個embedding space,但是這在文中並沒有給出說明或者證明,而是直接生硬的平均。這裏的改進我倒是認爲可以在將各個embedding採用MEAN方法進行aggregate之前可以再多加一層神經網絡也就是全連接層進行變換,假使各embedding不在同一個space空間之內通過這一層變換可以通過學習和參數的調整將其變換到同一個空間內然後再進行平均或許會更好一些。
但是對於文中提到的具體的實現方法有幾點問題。一個是後兩個版本爲了解決以及更好的解決cold-start item問題,但是再模型中最初的輸入是one-hot vector向量,基於的是item序號,這對於new item怎麼辦??我沒想明白具體怎麼操作。

Learning and Transfering IDs Representation in E-commerce
仍然是通過DeepWalk模型來實現Graph embedding for RS,手段在於將各種ID包括user ID,item ID,product ID,store ID,brand ID,category ID等ID轉化爲Embedding。one-hot向量的缺點在於稀疏性並且不能反應item之間的關係。論文是想"embed all types of IDs in E-commerce into one semantic space",item與user以及該item的相關屬性相關聯。學習item embedding的時候採用的方法依舊是DeepWalk那一套,基於item的co-occur原則來設計模型,加入了負採樣方法,並且採樣方法論文考慮到了graph中節點度不同的特性不用均勻分佈,而是Zipfan distribution。論文中的一句話對NCE說的很經典:“Noise Contrastive Estimation(NCE) assumes that a good model is able to differentiate data from noise and subsequently approximates the log probability of softmax with the means of logistic regression.”。
之後便是想去embed all type IDs,將其劃分爲了兩種ID:user ID和item ID and its attributes IDs。很顯然作者認爲item ID和它的attributes ID是屬於同一個space的。接下來需要jointly embedding attribute ID,一共有兩條intuition,實際可以看作是兩條規則約束,其一是"the co-occurence of item IDs also implicates the co-occurrence of corresponding attribute IDs",於是將與該item相關的ID組成一個數組,以該數組爲對象求解後驗概率分佈,實際單純從論文中(7)式子來看,做的事情就是求解target item與context item共現的概率以及兩個item相關聯的all type ID相對應的共現的概率之和,當然加入了負採樣機制。其二是"structural connections between the item ID and attribute IDs mean contraints",這就誕生了基於前面那個數組的各個type的ID來求解item出現的後驗概率,論文中的(11)式子做的就是這麼個事情。最後需要修改loss func,也就是將這兩條約束或者規則以數學形式作爲優化目標加以改進。3.5節的想法簡單直接,是直接用該user交互過的item的item embedding來加和平均作爲user embedding,因爲快捷耗時少適用於頻繁更新user embedding的情況,因爲user interesting會變化。
本論文在之後的第4節第2部分說明如何transfering from seen items to unseen items中,用的是公式上的技巧來得到unseen item,感覺很無語。
論文主旨還是想去借助已有的all type ID作爲輔助信息來實現item emebedding和user embedding的計算,或者就像之前論文中提到的side information。

STAMP:Short-Term Attention/Memory Priority Model for Session-based Recommendation
這篇論文目的是Recommendation,如果用一句話說就是採用MLP和attention機制來capture用戶的general interest和current interest。usre的interest隨着時間會變化的。論文解決的一大類問題就是Session-based Recommender system(SRS),之前的SRS模型採用RNN並不考慮user interest drift with time,而本文考慮到了這點。論文中提到的兩個模型STMP和STAMP。STMP將該session內的item embedding平均作爲global representation,將最後時刻的item作爲current embedding,兩者各自通過MLP變換得到hs和ht,然後和所有備選的x做trilinear product。而STAMP在獲得general representation的時候採用了注意力機制
在這裏插入圖片描述
區別就在於論文中的式子(7),即計算注意力權重值的式子,其中考慮到的是session中每一個node embedding,最後的node以及所有的node embedding加和平均值來計算該node對應的權重值。論文亮點實在是很少的。

Neural Attentive Session-based Recommendation
這篇還是用embedding做RS,採用的方法就是Session-based常用的RNN,它用了兩個RNN encoder,一個來編碼global session representation另一個編碼local representation。然後再通過decoder解碼解碼出預測的每個node的概率值:
在這裏插入圖片描述
全局模型:
在這裏插入圖片描述

Session-based Recommendation with Graph Neural Networks
這篇論文感覺很有意思,讀過之後下載了他的源代碼讀了讀跑了跑。論文提出的SR-GNN,是基於user交互過的item組成的Graph,而且是有向圖:
在這裏插入圖片描述
看着很複雜實際並不是。論文中頻繁提到的STAMP和NARM模型也是值得讀一讀的,比較三者的區別與聯繫纔是思考的方法,簡要的說就是NARM採用的是RNN來capture用戶的不同興趣點而STAMP則是採用的MLP加註意力機制來實現,但是本文卻看到了item之間的交互,採用Graph的方式將其提升了一層。當然論文仍舊是學習item embedding,而且是有label的,label就是這個session下一時刻的item。上面的圖就把一切都說的很明白。論文將每一個Session sequence處理成了一個directed Session Graph。而對於每一個directed Session Graph,都採用GGNN(Gated Graph Neural Network,加了門機制的GNN,想法來源於LSTM)處理得到每一個node的node embedding,之後通過attention注意力機制彙總得到一個global vector–Sg,直接將這個session的最後一個node作爲local vector–Sl,這樣做的目的在於capture用戶的global interest和current interest,之後Sg和Sl通過線性變換生成了最終的Sh,這個Sh其實是作爲session representation,來和所有的node embedding組成的矩陣相乘通過softmax layer得到一個概率向量,這個向量表示的意思是該session的下一個item的概率,當然在構建label的時候就可以採用一些手段來生成session seq和label。
論文中公式寫的都很明白直接。但是我在想,這個session seq,會不會大多數情況下就是一個線性序列而不是一個Graph,如果這樣的話就大打折扣了。當然論文中直接將session最後一個時刻的node作爲user current interest也是有待改進的。但是基於user交互的item構建成爲Session Graph,這個想法感覺很不錯。藉助於所謂“人工智能2.0”的GNN的power進行node embedding學習更是有很好的前景。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章