日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

深度学习推荐系统中各类流行的Embedding方法

發(fā)布時(shí)間:2024/7/5 windows 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习推荐系统中各类流行的Embedding方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Embedding技術(shù)概覽:

對其它Embedding技術(shù)不熟悉,可以看我的上一篇文章:
深度學(xué)習(xí)推薦系統(tǒng)中各類流行的Embedding方法(上)

Graph Embedding簡介

Word2Vec和其衍生出的Item2Vec類模型是Embedding技術(shù)的基礎(chǔ)性方法,二者都是建立在“序列”樣本(比如句子、用戶行為序列)的基礎(chǔ)上的。在互聯(lián)網(wǎng)場景下,數(shù)據(jù)對象之間更多呈現(xiàn)的是圖結(jié)構(gòu),所以Item2Vec在處理大量的網(wǎng)絡(luò)化數(shù)據(jù)時(shí)往往顯得捉襟見肘,在這樣的背景下,Graph Embedding成了新的研究方向,并逐漸在深度學(xué)習(xí)推薦系統(tǒng)領(lǐng)域流行起來。

Graph Embedding也是一種特征表示學(xué)習(xí)方式,借鑒了Word2Vec的思路。在Graph中隨機(jī)游走生成頂點(diǎn)序列,構(gòu)成訓(xùn)練集,然后采用Skip-gram算法,訓(xùn)練出低維稠密向量來表示頂點(diǎn)。之后再用學(xué)習(xí)出的向量解決下游問題,比如分類,或者連接預(yù)測問題等。可以看做是兩階段的學(xué)習(xí)任務(wù),第一階段先做無監(jiān)督訓(xùn)練生成表示向量,第二階段再做有監(jiān)督學(xué)習(xí),解決下游問題。

總之,Graph Embedding是一種對圖結(jié)構(gòu)中的節(jié)點(diǎn)進(jìn)行Embedding編碼的方法。最終生成的節(jié)點(diǎn)Embedding向量一般包含圖的結(jié)構(gòu)信息及附近節(jié)點(diǎn)的局部相似性信息。不同Graph Embedding方法的原理不盡相同,對于圖信息的保留方式也有所區(qū)別,下面就介紹幾種主流的Graph Embedding方法和它們之間的區(qū)別與聯(lián)系。

DeepWalk-Graph

早期,影響力較大的Graph Embedding方法是于2014年提出的DeepWalk,它的主要思想是在由物品組成的圖結(jié)構(gòu)上進(jìn)行隨機(jī)游走,產(chǎn)生大量物品序列,然后將這些物品序列作為訓(xùn)練樣本輸入Word2Vec進(jìn)行訓(xùn)練,得到物品的Embedding。因此,DeepWalk可以被看作連接序列Embedding和Graph Embedding的過渡方法。

論文《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》用上圖所示的方法展現(xiàn)了DeepWalk的算法流程。DeepWalk算法的具體步驟如下:

  • 圖(a)是原始的用戶行為序列。

  • 圖(b)基于這些用戶行為序列構(gòu)建了物品關(guān)系圖。可以看出,物品A和B之間的邊產(chǎn)生的原因是用戶U1先后購買了物品A和物品B。如果后續(xù)產(chǎn)生了多條相同的有向邊,則有向邊的權(quán)重被加強(qiáng)。在將所有用戶行為序列都轉(zhuǎn)換成物品關(guān)系圖中的邊之后,全局的物品關(guān)系圖就建立起來了。

  • 圖(c)采用隨機(jī)游走的方式隨機(jī)選擇起始點(diǎn),重新產(chǎn)生物品序列。

  • 將這些物品序列輸入圖(d)所示的Word2Vec模型中,生成最終的物品Embedding向量。

在上述DeepWalk的算法流程中,唯一需要形式化定義的是隨機(jī)游走的跳轉(zhuǎn)概率,也就是到達(dá)結(jié)點(diǎn)后,下一步遍歷的鄰接點(diǎn)的概率。如果物品關(guān)系圖是有向有權(quán)圖,那么從節(jié)點(diǎn)跳轉(zhuǎn)到節(jié)點(diǎn)的概率定義如下式所示。

其中是物品關(guān)系圖中所有邊的集合,是節(jié)點(diǎn)所有的出邊集合,是節(jié)點(diǎn)到節(jié)點(diǎn)邊的權(quán)重,即DeepWalk的跳轉(zhuǎn)概率就是跳轉(zhuǎn)邊的權(quán)重占所有相關(guān)出邊權(quán)重之和的比例。

如果物品關(guān)系圖是無向無權(quán)圖,那么跳轉(zhuǎn)概率將是上式的一個(gè)特例,即權(quán)重將為常數(shù)1,且應(yīng)是節(jié)點(diǎn)所有“邊”的集合,而不是所有“出邊”的集合。

注意: 在DeepWalk論文中,作者只提出DeepWalk用于無向無權(quán)圖。DeepWalk用于有向有權(quán)圖的內(nèi)容是阿里巴巴論文《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》中提出的Base Graph Embedding(BGE)模型,其實(shí)該模型就是對DeepWalk模型的實(shí)踐,本文后邊部分會講解該模型。

DeepWalk相關(guān)論文:

【1】Perozzi B, Alrfou R, Skiena S, et al. DeepWalk: online learning of social representations[C]. knowledge discovery and data mining, 2014: 701-710.

【2】Wang J, Huang P, Zhao H, et al. Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba[C]. knowledge discovery and data mining, 2018: 839-848.

LINE-DeepWalk的改進(jìn)

DeepWalk使用DFS(Deep First Search,深度優(yōu)先搜索)隨機(jī)游走在圖中進(jìn)行節(jié)點(diǎn)采樣,使用Word2Vec在采樣的序列上學(xué)習(xí)圖中節(jié)點(diǎn)的向量表示。LINE(Large-scale Information Network Embedding)也是一種基于鄰域相似假設(shè)的方法,只不過與DeepWalk使用DFS構(gòu)造鄰域不同的是,LINE可以看作是一種使用BFS(Breath First Search,廣度優(yōu)先搜索)構(gòu)造鄰域的算法。

在Graph Embedding各個(gè)方法中,一個(gè)主要區(qū)別是對圖中頂點(diǎn)之間的相似度的定義不同,所以先看一下LINE對于相似度的定義。

LINE定義圖中節(jié)點(diǎn)之間的相似度

現(xiàn)實(shí)世界的網(wǎng)絡(luò)中,相連接的節(jié)點(diǎn)之間存在一定的聯(lián)系,通常表現(xiàn)為比較相似或者在向量空間中距離接近。對于帶權(quán)網(wǎng)絡(luò)來說,節(jié)點(diǎn)之間的權(quán)越大,相似度會越高或者距離越接近,這種關(guān)系稱為一階近鄰。一階近鄰關(guān)系用于描述圖中相鄰頂點(diǎn)之間的局部相似度, 形式化描述為若頂點(diǎn)、之間存在直連邊,則邊權(quán)即為兩個(gè)頂點(diǎn)的相似度,若不存在直連邊,則一階相似度為0。如下圖所示,6和7之間存在直連邊,且邊權(quán)較大(表現(xiàn)為圖中頂點(diǎn)之間連線較粗),則認(rèn)為兩者相似且一階相似度較高,而5和6之間不存在直連邊,則兩者間一階相似度為0。

但是,網(wǎng)絡(luò)中的邊往往比較稀疏,僅僅依靠一階近鄰關(guān)系,難以描述整個(gè)網(wǎng)絡(luò)的結(jié)構(gòu)。論文中定義了另外一種關(guān)系叫做二階近鄰。例如下圖中的網(wǎng)絡(luò),節(jié)點(diǎn)5和節(jié)點(diǎn)1,2,3,4相連,節(jié)點(diǎn)6也和節(jié)點(diǎn)1,2,3,4相連,雖然節(jié)點(diǎn)5和6之間沒有直接聯(lián)系,但是節(jié)點(diǎn)5和6之間很可能存在某種相似性。舉個(gè)例子,在社交網(wǎng)絡(luò)中,如果兩個(gè)人的朋友圈重疊度很高,或許兩個(gè)人之間具有相同的興趣并有可能成為朋友;在NLP中,如果不同的詞經(jīng)常出現(xiàn)在同一個(gè)語境中,那么兩個(gè)詞很可能意思相近。LINE通過捕捉網(wǎng)絡(luò)中的一階近鄰關(guān)系和二階近鄰關(guān)系,更加完整地描述網(wǎng)絡(luò)。并且LINE適用于有向圖、無向圖、有權(quán)圖、無權(quán)圖。

LINE算法模型

(1)一階近鄰關(guān)系模型

一階近鄰關(guān)系模型中定義了兩個(gè)概率,一個(gè)是聯(lián)合概率,如下公式所示:

其中, 是圖中節(jié)點(diǎn)的向量表示,上式表示節(jié)點(diǎn)和之間的相似程度,這是一個(gè)sigmoid函數(shù)。

另外一個(gè)是經(jīng)驗(yàn)概率,如下公式所示:

其中,是節(jié)點(diǎn)和之間的權(quán)重。優(yōu)化目標(biāo)為最小化下式:

其中,是兩個(gè)分布的距離,目標(biāo)是期望兩個(gè)概率分布接近,利用KL散度來計(jì)算相似性,丟掉常數(shù)項(xiàng)之后,得到下面公式:

一階近鄰關(guān)系模型的優(yōu)化目標(biāo)就是最小化。可以看到,上面這些公式無法表達(dá)方向概念,因此一階近鄰關(guān)系模型只能描述無向圖。

(2)二階近鄰關(guān)系模型

二階近鄰關(guān)系描述的是節(jié)點(diǎn)與鄰域的關(guān)系,每個(gè)節(jié)點(diǎn)有兩個(gè)向量,一個(gè)是該頂點(diǎn)本身的表示向量,一個(gè)是該頂點(diǎn)作為其他頂點(diǎn)的鄰居時(shí)的表示向量,因此論文中對每個(gè)節(jié)點(diǎn)定義了兩個(gè)向量,表示節(jié)點(diǎn)本身,?是節(jié)點(diǎn)作為鄰居的向量表示。針對每一個(gè)從節(jié)點(diǎn)到的有向邊,定義一個(gè)條件概率,如下式:

其中,是圖中所有的節(jié)點(diǎn)數(shù)量,這其實(shí)是一個(gè)函數(shù)。同樣,還有一個(gè)經(jīng)驗(yàn)概率,如下式:

其中,是邊的邊權(quán),是從頂點(diǎn)出發(fā)指向鄰居節(jié)點(diǎn)的所有邊權(quán)之和,是從節(jié)點(diǎn)出發(fā)指向鄰居的所有邊集合。同樣需要最小化條件概率和經(jīng)驗(yàn)概率之間的距離,優(yōu)化目標(biāo)為:

其中,為控制節(jié)點(diǎn)重要性的因子,可以通過頂點(diǎn)的度數(shù)或者PageRank等方法估計(jì)得到。假設(shè)度比較高的節(jié)點(diǎn)權(quán)重較高,令,采用KL散度來計(jì)算距離,略去常數(shù)項(xiàng)后,得到公式:

直接優(yōu)化上式計(jì)算復(fù)雜度很高,每次迭代需要對所有的節(jié)點(diǎn)向量做優(yōu)化,論文中使用Word2Vec中的負(fù)采樣方法,得到二階近鄰的優(yōu)化目標(biāo),如下公式所示。從計(jì)算的過程可以看到,二階相似度模型可以描述有向圖。(滑動(dòng)查看完整公式)

對比一階近鄰模型和二階近鄰模型的優(yōu)化目標(biāo),差別就在于,二階近鄰模型對每個(gè)節(jié)點(diǎn)多引入了一個(gè)向量表示。實(shí)際使用的時(shí)候,對一階近鄰模型和二階近鄰模型分別訓(xùn)練,然后將兩個(gè)向量拼接起來作為節(jié)點(diǎn)的向量表示。

此外有一點(diǎn)需要說明,在Graph Embedding方法中,例如DeepWalk、Node2Vec、EGES,都是采用隨機(jī)游走的方式來生成序列再做訓(xùn)練,而LINE直接用邊來構(gòu)造樣本,這也是他們的一點(diǎn)區(qū)別。

LINE論文:

【1】Tang J, Qu M, Wang M, et al. Line: Large-scale information network embedding[C]//Proceedings of the 24th international conference on world wide web. 2015: 1067-1077.

node2vec

2016年,斯坦福大學(xué)的研究人員在DeepWalk的基礎(chǔ)上更進(jìn)一步,提出了node2vec模型,它通過調(diào)整隨機(jī)游走權(quán)重的方法使Graph Embedding的結(jié)果更傾向于體現(xiàn)網(wǎng)絡(luò)的同質(zhì)性(homophily)或結(jié)構(gòu)性(structural equivalence)。

node2vec的同質(zhì)性和結(jié)構(gòu)性

具體的講,網(wǎng)絡(luò)的“同質(zhì)性”指的是距離相近節(jié)點(diǎn)的Embedding應(yīng)盡量近似,如下圖所示,節(jié)點(diǎn)與其相連的節(jié)點(diǎn)的Embedding表達(dá)應(yīng)該是接近的,這就是網(wǎng)絡(luò)的“同質(zhì)性”的體現(xiàn)。“結(jié)構(gòu)性”指的是結(jié)構(gòu)上相似的節(jié)點(diǎn)Embedding應(yīng)盡量近似,下圖中節(jié)點(diǎn)和節(jié)點(diǎn)都是各自局域網(wǎng)絡(luò)的中心節(jié)點(diǎn),結(jié)構(gòu)上相似,其Embedding的表達(dá)也應(yīng)該近似,這是“結(jié)構(gòu)性”的體現(xiàn)。

為了使Graph Embedding的結(jié)果能夠表達(dá)網(wǎng)絡(luò)的“結(jié)構(gòu)性”,在隨機(jī)游走過程中,需要讓游走的過程更傾向于BFS,因?yàn)锽FS會更多地在當(dāng)前節(jié)點(diǎn)的鄰域中游走遍歷,相當(dāng)于對當(dāng)前節(jié)點(diǎn)周邊的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行一次“微觀掃描”。當(dāng)前節(jié)點(diǎn)是“局部中心節(jié)點(diǎn)”,還是“邊緣節(jié)點(diǎn)”,或是“連接性節(jié)點(diǎn)”,其生成的序列包含的節(jié)點(diǎn)數(shù)量和順序必然是不同的,從而讓最終的Embedding抓取到更多結(jié)構(gòu)性信息。

另外,為了表達(dá)“同質(zhì)性”,需要讓隨機(jī)游走的過程更傾向于DFS,因?yàn)镈FS更有可能通過多次跳轉(zhuǎn),游走到遠(yuǎn)方的節(jié)點(diǎn)上,但無論怎樣,DFS的游走更大概率會在一個(gè)大的集團(tuán)內(nèi)部進(jìn)行,這就使得一個(gè)集團(tuán)或者社區(qū)內(nèi)部的節(jié)點(diǎn)的Embedding更為相似,從而更多地表達(dá)網(wǎng)絡(luò)的“同質(zhì)性”。

但是在不同的任務(wù)中需要關(guān)注的重點(diǎn)不同,可能有些任務(wù)需要關(guān)注網(wǎng)絡(luò)的homophily,而有些任務(wù)比較關(guān)注網(wǎng)絡(luò)的structural equivalence,可能還有些任務(wù)兩者兼而有之。在DeepWalk中,使用DFS隨機(jī)游走在圖中進(jìn)行節(jié)點(diǎn)采樣,使用Word2Vec在采樣的序列學(xué)習(xí)圖中節(jié)點(diǎn)的向量表示,無法靈活地捕捉這兩種關(guān)系。

實(shí)際上,對于這兩種關(guān)系的偏好,可以通過不同的序列采樣方式來實(shí)現(xiàn)。有兩種極端的方式,一種是BFS,如上圖中紅色箭頭所示,從u出發(fā)做隨機(jī)游走,但是每次都只采樣頂點(diǎn)u的直接鄰域,這樣生成的序列通過無監(jiān)督訓(xùn)練之后,特征向量表現(xiàn)出來的是structural equivalence特性。另外一種是DFS,如上圖中藍(lán)色箭頭所示,從u出發(fā)越走越遠(yuǎn),學(xué)習(xí)得到的特征向量反應(yīng)的是圖中的homophily關(guān)系。

node2vec算法

那么在node2vec算法中,是怎么控制BFS和DFS的傾向性呢?主要是通過節(jié)點(diǎn)間的跳轉(zhuǎn)概率。下圖所示為node2vec算法從節(jié)點(diǎn)跳轉(zhuǎn)到節(jié)點(diǎn),再從節(jié)點(diǎn)跳轉(zhuǎn)到周圍各點(diǎn)的跳轉(zhuǎn)概率。假設(shè)從某頂點(diǎn)出發(fā)開始隨機(jī)游走,第步走到當(dāng)前頂點(diǎn),要探索第步的頂點(diǎn),如下圖所示。下面的公式表示從頂點(diǎn)到的跳轉(zhuǎn)概率,是圖中邊的集合,表示頂點(diǎn)和之間的邊,表示從節(jié)點(diǎn)跳轉(zhuǎn)到下一個(gè)節(jié)點(diǎn)的概率,是歸一化常數(shù)。

帶偏隨機(jī)游走的最簡單方法是基于下一個(gè)節(jié)點(diǎn)邊權(quán)重進(jìn)行采樣,即,是權(quán)重之和。對于無權(quán)重的網(wǎng)絡(luò),。最簡單的方式,就是按照這個(gè)轉(zhuǎn)移概率進(jìn)行隨機(jī)游走,但是無法控制BFS和DFS的傾向性。

node2vec用兩個(gè)參數(shù)和定義了一個(gè)二階隨機(jī)游走,以控制隨機(jī)游走的策略。假設(shè)當(dāng)前隨機(jī)游走經(jīng)過邊到達(dá)頂點(diǎn),現(xiàn)在要決定從節(jié)點(diǎn)跳轉(zhuǎn)到下一個(gè)節(jié)點(diǎn),需要依據(jù)邊上的跳轉(zhuǎn)概率。設(shè),是頂點(diǎn)和之間的邊權(quán);是修正系數(shù),定義如下:

上式中表示下一步頂點(diǎn)和頂點(diǎn)之間的最短距離,只有3種情況,如果又回到頂點(diǎn),那么;如果和直接相鄰,那么;其他情況。參數(shù)和共同控制著隨機(jī)游走的傾向性。參數(shù)被稱為返回參數(shù)(return parameter),控制著重新返回頂點(diǎn)的概率。如果,那么下一步較小概率重新返回頂點(diǎn);如果,那么下一步會更傾向于回到頂點(diǎn),node2vec就更注重表達(dá)網(wǎng)絡(luò)的結(jié)構(gòu)性。

參數(shù)被稱為進(jìn)出參數(shù)(in-out parameter),如果,那么下一步傾向于回到或者的臨近頂點(diǎn),這接近于BFS的探索方式;如果,那么下一步傾向于走到離更遠(yuǎn)的頂點(diǎn),接近于DFS尋路方式,node2vec就更加注重表達(dá)網(wǎng)絡(luò)的同質(zhì)性。

因此,可以通過設(shè)置和來控制游走網(wǎng)絡(luò)的方式。所謂的二階隨機(jī)游走,意思是說下一步去哪,不僅跟當(dāng)前頂點(diǎn)的轉(zhuǎn)移概率有關(guān),還跟上一步頂點(diǎn)相關(guān)。在論文中試驗(yàn)部分,作者對和的設(shè)置一般是2的指數(shù),比如。

node2vec這種靈活表達(dá)同質(zhì)性和結(jié)構(gòu)性的特點(diǎn)也得到了實(shí)驗(yàn)的證實(shí),通過調(diào)整參數(shù)和產(chǎn)生了不同的Embedding結(jié)果。下圖中的上半部分圖片就是node2vec更注重同質(zhì)性的體現(xiàn),可以看到距離相近的節(jié)點(diǎn)顏色更為接近,下圖中下半部分圖片則更注重體現(xiàn)結(jié)構(gòu)性,其中結(jié)構(gòu)特點(diǎn)相近的節(jié)點(diǎn)的顏色更為接近。

node2vec在推薦系統(tǒng)中的思考

node2vec所體現(xiàn)的網(wǎng)絡(luò)的同質(zhì)性和結(jié)構(gòu)性在推薦系統(tǒng)中可以被很直觀的解釋。同質(zhì)性相同的物品很可能是同品類、同屬性,或者經(jīng)常被一同購買的商品,而結(jié)構(gòu)性相同的物品則是各品類的爆款、各品類的最佳湊單商品等擁有類似趨勢或者結(jié)構(gòu)性屬性的商品。毫無疑問,二者在推薦系統(tǒng)中都是非常重要的特征表達(dá)。由于node2vec的這種靈活性,以及發(fā)掘不同圖特征的能力,甚至可以把不同node2vec生成的偏向“結(jié)構(gòu)性”的Embedding結(jié)果和偏向“同質(zhì)性”的Embedding結(jié)果共同輸入后續(xù)的深度學(xué)習(xí)網(wǎng)絡(luò),以保留物品的不同圖特征信息。

node2vec論文:

【1】Grover A, Leskovec J. node2vec: Scalable feature learning for networks[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. 2016: 855-864.

EGES

2018 年,阿里巴巴公布了其在淘寶應(yīng)用的Embedding方法 EGES(Enhanced Graph Embedding with Side Information)算法,其基本思想是Embedding過程中引入帶權(quán)重的補(bǔ)充信息(Side Information),從而解決冷啟動(dòng)的問題。

淘寶平臺推薦的三個(gè)問題:

  • 可擴(kuò)展性(scalability):已有的推薦算法(CF、Base-Content、DL)可以在小數(shù)據(jù)集上有不錯(cuò)效果,但是對于10億用戶和20億商品這樣海量的數(shù)據(jù)集上效果差。

  • 稀疏性(sparsity):用戶僅與小部分商品交互,難以訓(xùn)練準(zhǔn)確的推薦模型。

  • 冷啟動(dòng)(cold start):物品上新頻繁,然而這些商品并沒有用戶行為,預(yù)測用戶對這些商品的偏好是十分具有挑戰(zhàn)性的。

現(xiàn)在業(yè)界針對海量數(shù)據(jù)的推薦問題通用框架是分成兩個(gè)階段,即matching 和 ranking。在matching階段,我們會生成一個(gè)候選集,它的items會與用戶接觸過的每個(gè)item具有相似性;接著在ranking階段,我們會訓(xùn)練一個(gè)深度神經(jīng)網(wǎng)絡(luò)模型,它會為每個(gè)用戶根據(jù)他的偏好對候選items進(jìn)行排序。論文關(guān)注的問題在推薦系統(tǒng)的matching階段,也就是從商品池中召回候選商品的階段,核心的任務(wù)是計(jì)算所有item之間的相似度。

為了達(dá)到這個(gè)目的,論文提出根據(jù)用戶歷史行為構(gòu)建一個(gè)item graph,然后使用DeepWalk學(xué)習(xí)每個(gè)item的embedding,即Base Graph Embedding(BGE)。BGE優(yōu)于CF,因?yàn)榛贑F的方法只考慮了在用戶行為歷史上的items的共現(xiàn)率,但是對于少量或者沒有交互行為的item,仍然難以得到準(zhǔn)確的embedding。為了減輕該問題,論文提出使用side information來增強(qiáng)embedding過程,提出了Graph Embedding with Side information (GES)。例如,屬于相似類別或品牌的item的embedding應(yīng)該相近。在這種方式下,即使item只有少量交互或沒有交互,也可以得到準(zhǔn)確的item embedding。在淘寶場景下,side information包括:category、brand、price等。不同的side information對于最終表示的貢獻(xiàn)應(yīng)該不同,于是論文進(jìn)一步提出一種加權(quán)機(jī)制用于學(xué)習(xí)Embedding with Side Information,稱為Enhanced Graph Embedding with Side information (EGES)

基于圖的Embedding(BGE)

該方案是 DeepWalk 算法的實(shí)踐,具體流程如下:

  • 首先,我們擁有上億用戶的行為數(shù)據(jù),不同的用戶,在每個(gè) Session 中,訪問了一系列商品,例如用戶 u2 兩次訪問淘寶,第一次查看了兩個(gè)商品 B-E,第二次產(chǎn)看了三個(gè)商品 D-E-F。

  • 然后,通過用戶的行為數(shù)據(jù),我們可以建立一個(gè)商品圖(Item Graph),可以看出,物品A,B之間的邊產(chǎn)生的原因就是因?yàn)橛脩鬠1先后購買了物品A和物品B,所以產(chǎn)生了一條由A到B的有向邊。如果后續(xù)產(chǎn)生了多條相同的有向邊,則有向邊的權(quán)重被加強(qiáng)。在將所有用戶行為序列都轉(zhuǎn)換成物品相關(guān)圖中的邊之后,全局的物品相關(guān)圖就建立起來了。

  • 接著,通過 Random Walk 對圖進(jìn)行采樣,重新獲得商品序列。

  • 最后,使用 Skip-gram 模型進(jìn)行 Embedding 。

Base Graph Embedding 與 DeepWalk 不同的是:通過 user 的行為序列構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),并將網(wǎng)絡(luò)定義為有向有權(quán)圖。 其中:根據(jù)行為的時(shí)間間隔,將一個(gè) user 的行為序列分割為多個(gè)session。session分割可以參考Airbnb這篇論文《Real-time Personalization using Embeddings for Search Ranking at Airbnb》。

使用Side Information的GE(GES)

通過使用BGE,我們能夠?qū)tems映射到高維向量空間,并考慮了CF沒有考慮的用戶序列關(guān)系。但是我們依然沒有解決冷啟動(dòng)的問題。為了解決冷啟動(dòng)問題,我們使用邊信息( category, shop, price, etc)賦值給不同的item。因?yàn)檫呅畔⑾嗤膬蓚€(gè)item,理論而言會更接近。通過DeepWalk方案得到item的游走序列,同時(shí)得到對應(yīng)的邊信息(category,brand,price)序列。然后將所有序列放到Word2Vec模型中進(jìn)行訓(xùn)練。針對每個(gè) item,將得到:item_embedding,category_embedding,brand_embedding,price_embedding 等 embedding 信息。

為了與之前的item embedding區(qū)分開,在加入Side information之后,我們稱得到的embedding為商品的aggregated embeddings。商品v的aggregated embeddings為:

對上式做一個(gè)簡單的解釋:針對每個(gè) item,將得到:item_embedding,category_embedding,brand_embedding,price_embedding 等 embedding 信息。將這些 embedding 信息求均值來表示該 item的Embedding。

需要注意的一點(diǎn)是,item 和 side information(例如category, brand, price等) 的 Embedding 是通過 Word2Vec 算法一起訓(xùn)練得到的。 如果分開訓(xùn)練,得到的item_embedding和category_embedding、brand_embedding、price_embedding不在一個(gè)向量空間中,做運(yùn)算無意義。即:通過 DeepWalk 方案得到 item 的游走序列,同時(shí)得到對應(yīng)的{category, brand, price}序列。然后將所有序列數(shù)據(jù)放到Word2Vec模型中進(jìn)行訓(xùn)練。

增強(qiáng)型GES(EGES)

GES中存在一個(gè)問題是,針對每個(gè)item,它把所有的side information embedding求和后做了平均,沒有考慮不同的side information 之間的權(quán)重,EGES就是讓不同類型的side information具有不同的權(quán)重,提出來一個(gè)加權(quán)平均的方法來聚集這些邊界embedding。

因?yàn)槊總€(gè)item對其不同邊信息的權(quán)重不一樣,所以就需要額外矩陣來表示每個(gè)item邊信息的權(quán)重,其大小為,是item的個(gè)數(shù),是邊信息的個(gè)數(shù),加1是還要考慮item自身Embedding的權(quán)重。為了簡單起見,我們用表示第個(gè)item、第個(gè)類型的side information的權(quán)重。表示第個(gè)item自身Embedding的權(quán)重。這樣就可以獲得加權(quán)平均的方法:

這里對權(quán)重項(xiàng)做了指數(shù)變換,目的是為了保證每個(gè)邊信息的貢獻(xiàn)都能大于0。權(quán)重矩陣通過模型訓(xùn)練得到。EGES算法應(yīng)用改進(jìn)的Word2Vec算法(Weighted Skip-Gram)確定模型的參數(shù)。對上圖中EGES算法簡單說明如下:

  • 上圖的Sparse Features代表 item 和 side information 的ID信息;

  • Dense Embeddings 表示 item 和 side information 的 embedding 信息;

  • 分別代表 item 和 side information 的 embedding 權(quán)重;

  • Sampled Softmax Classifier中的代表采樣的負(fù)樣本(見論文中的Algorithm 2 Weighted Skip-Gram描述的第8行),代表正樣本(某個(gè)item周邊上下n個(gè)item均為正樣本,在模型中表示時(shí)不區(qū)分遠(yuǎn)近);

EGES并沒有過于復(fù)雜的理論創(chuàng)新,但給出了一個(gè)工程上的融合多種Embedding的方法,降低了某類信息缺失造成的冷啟動(dòng)問題,是實(shí)用性極強(qiáng)的Embedding方法。

EGES論文:

【1】Wang J, Huang P, Zhao H, et al. Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba[C]. knowledge discovery and data mining, 2018: 839-848.

總結(jié)

時(shí)至今日,Graph Embedding仍然是工業(yè)界和學(xué)術(shù)界研究和實(shí)踐的熱點(diǎn),除了本文介紹的DeepWalk、LINE、node2vec、EGES等主流方法,SDNE、struct2vec等方法也是重要的Graph Embedding模型,感興趣的讀者可以自己查找相關(guān)文獻(xiàn)進(jìn)一步學(xué)習(xí)。

本文原創(chuàng)首發(fā)于公眾號【Microstrong】,想了解更多關(guān)于推薦系統(tǒng)、自然語言處理等方向的內(nèi)容,歡迎掃碼關(guān)注公眾號。關(guān)注公眾號后,點(diǎn)擊【學(xué)習(xí)群】可以加入我們的交流群一起學(xué)習(xí)!

Microstrong】持續(xù)產(chǎn)出推薦系統(tǒng)/NLP/機(jī)器學(xué)習(xí)/深度學(xué)習(xí)等相關(guān)技術(shù)干貨和實(shí)踐經(jīng)驗(yàn)。關(guān)注公眾號還可以了解Microstrong的成長之路和程序人生喲!

Microstrong近期文章:

  • 深入理解XGBoost

  • Self-Attention與Transformer

  • 深入理解GBDT回歸算法

  • 深入理解CatBoost

  • 深度學(xué)習(xí)推薦系統(tǒng)中各類流行的Embedding方法(上)

  • 深入淺出Word2Vec原理解析

  • 夕小瑤的賣萌屋

    關(guān)注&星標(biāo)小夕,帶你解鎖AI秘籍
    訂閱號主頁下方「撩一下」有驚喜

    參考文獻(xiàn)

    【1】《深度學(xué)習(xí)推薦系統(tǒng)》王喆編著。

    【2】【Graph Embedding】DeepWalk:算法原理,實(shí)現(xiàn)和應(yīng)用 - 淺夢的文章 - 知乎 https://zhuanlan.zhihu.com/p/56380812
    【3】【論文筆記】DeepWalk - 陌上疏影涼的文章 - 知乎 https://zhuanlan.zhihu.com/p/45167021
    【4】【Graph Embedding】LINE:算法原理,實(shí)現(xiàn)和應(yīng)用 - 淺夢的文章 - 知乎 https://zhuanlan.zhihu.com/p/56478167
    【5】Graph Embedding:從DeepWalk到SDNE - 羽刻的文章 - 知乎 https://zhuanlan.zhihu.com/p/33732033
    【6】Graph Embedding之探索LINE - 張備的文章 - 知乎 https://zhuanlan.zhihu.com/p/74746503
    【7】【Graph Embedding】node2vec:算法原理,實(shí)現(xiàn)和應(yīng)用 - 淺夢的文章 - 知乎 https://zhuanlan.zhihu.com/p/56542707
    【8】node2vec在工業(yè)界的應(yīng)用-《當(dāng)機(jī)器學(xué)習(xí)遇上復(fù)雜網(wǎng)絡(luò):解析微信朋友圈 Lookalike 算法》,地址:https://mp.weixin.qq.com/s/EV-25t2lWT2JJMLhXsz4zQ
    【9】graph embedding之node2vec - 張備的文章 - 知乎 https://zhuanlan.zhihu.com/p/63631102
    【10】Graph Embedding在淘寶推薦系統(tǒng)中的應(yīng)用 - 張備的文章 - 知乎 https://zhuanlan.zhihu.com/p/70198918
    【11】Graph Embedding - 阿里EGES算法 - 王多魚的文章 - 知乎 https://zhuanlan.zhihu.com/p/69069878
    【12】Graph Embedding:深度學(xué)習(xí)推薦系統(tǒng)的"基本操作" - 顧鵬的文章 - 知乎 https://zhuanlan.zhihu.com/p/68247149
    【13】論文閱讀:Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba,地址:https://blog.csdn.net/Super_Json/article/details/85537938

    總結(jié)

    以上是生活随笔為你收集整理的深度学习推荐系统中各类流行的Embedding方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。