題外話:
阿里和香港理工聯合發布的這篇文章,整體來說,還挺有意思的。
剛開始隨便翻翻看看結構圖的時候,會覺得:這也能發文章???
后來,細看后發現:哦~~還不錯
文章簡介:
基於阿里巴巴電商推薦系統的十億規模的商品嵌入
與詞向量類似,為每一個商品生成一個向量,向量間一一匹配,將相似的設定為推薦的候選
這篇文章的着重點在RS的matching,而不是ranking
針對阿里的數據集應用需要解決的三個難題:
1)數據量大
2)數據稀疏性(用戶僅點擊過庫中數據的一小部分)→通過圖譜結構解決,而不是傳統的協同過濾
3)冷啟動:店家會不定期上新,這些上新的商品並沒有發生過用戶行為,如何處理這些數據→將邊信息考慮進去
漸進地提出了3個框架:BES, GES, EGES
數據:基於用戶行為(點擊順序)構成的商品圖譜(數據清洗:為節省計算空間以及考慮到用戶的興趣會隨時間改變,構建序列時長限定為1個小時;去除刷單的用戶,每月購買件數>1000或歷史購買數>3500),每條邊的權值由用戶行為決定,如有100個用戶從A點到了B,那個A到B的權值暫定為100

BES: base graph embedding
這是本篇文章中最基礎的一個框架,借用的deep walk的算法,random walk后得到序列,扔進skip-gram訓練

GES: graph embedding with side information
這一框架,將邊信息考慮進去,邊信息是指商品的屬性,如品牌,店家,材質,價格等,因為認為用戶的偏好可能跟這些屬性有關。
在網絡輸入時,將商品的one-hot與各個屬性的one-hot輸入,embedding后直接concat,通過一個隱含層,后面的跟BES差不錯
EGES:
enhanced graph embedding with side information
這一框架,基於GES,認為每一個屬性是帶權值的,每一條邊,不應同等對待。即用戶同時喜歡這兩件衣服,可能是因為他們都是牛仔外套,或者因為他們都是優衣庫的。因此,在得到商品及屬性的embedding后,乘以一個權值再進去隱含層

結果:

從下圖的可視化可以看出,相同種類的可以被分到臨近的區域

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">