From: Microstrong
將門好聲音第57期
Embedding方法概覽
1. Embedding簡介
Embedding,中文直譯為「嵌入」,常被翻譯為「向量化」或者「向量映射」。在整個深度學習框架中都是十分重要的「基本操作」,不論是NLP(Natural Language Processing,自然語言處理)、搜索排序,還是推薦系統,或是CTR(Click-Through-Rate)模型,Embedding都扮演著重要的角色。
1.1 什麼是Embedding
形式上講,Embedding就是用一個低維稠密的向量「表示」一個對象,這裡所說的對象可以是一個詞(Word2Vec),也可以是一個物品(Item2Vec),亦或是網絡關係中的節點(Graph Embedding)。其中「表示」這個詞意味著Embedding向量能夠表達相應對象的某些特徵,同時向量之間的距離反映了對象之間的相似性。
1.2 Embedding技術對於深度學習推薦系統的重要性
在深度學習推薦系統中,為什麼說Embedding技術對於深度學習如此重要,甚至可以說是深度學習的「基本核心操作」呢?原因主要有以下四個:
(1)在深度學習網絡中作為Embedding層,完成從高維稀疏特徵向量到低維稠密特徵向量的轉換(比如Wide&Deep、DIN等模型)。 推薦場景中大量使用One-hot編碼對類別、Id型特徵進行編碼,導致樣本特徵向量極度稀疏,而深度學習的結構特點使其不利於稀疏特徵向量的處理,因此幾乎所有的深度學習推薦模型都會由Embedding層負責將高維稀疏特徵向量轉換成稠密低維特徵向量。因此,掌握各類Embedding技術是構建深度學習推薦模型的基礎性操作。
(2)作為預訓練的Embedding特徵向量,與其他特徵向量連接後,一同輸入深度學習網絡進行訓練(比如FNN模型)。Embedding本身就是極其重要的特徵向量。相比MF等傳統方法產生的特徵向量,Embedding的表達能力更強,特別是Graph Embedding技術被提出後,Embedding幾乎可以引入任何信息進行編碼,使其本身就包含大量有價值的信息。在此基礎上,Embedding向量往往會與其他推薦系統特徵連接後一同輸入後續深度學習網絡進行訓練。
(3)通過計算用戶和物品的Embedding相似度,Embedding可以直接作為推薦系統的召回層或者召回策略之一(比如Youtube推薦模型等)。Embedding對物品、用戶相似度的計算是常用的推薦系統召回層技術。在局部敏感哈希(Locality-Sensitive Hashing)等快速最近鄰搜索技術應用於推薦系統後,Embedding更適用於對海量備選物品進行快速「篩選」,過濾出幾百到幾千量級的物品交由深度學習網絡進行「精排」。
(4)通過計算用戶和物品的Embedding,將其作為實時特徵輸入到推薦或者搜索模型中(比如Airbnb的Embedding應用)。
2. Word2Vec-Embedding流行起點
關於Word2Vec的入門文章可以參考作者之前的一篇文章:。
2.1 基於負採樣的Skip-gram
這裡單獨把基於負採樣的Skip-gram模型再詳細描述一次,是因為這個模型太重要了,稍後講解的Item2Vec模型和Airbnb論文《Real-time Personalization using Embeddings for Search Ranking at Airbnb 》提出的模型都借鑑了基於負採樣的Skip-gram模型的思想。所以,我們務必要把基於負採樣的Skip-gram模型理解透徹。
Skip-gram模型是由Mikolov等人提出的。下圖展示了Skip-gram模型的過程。該模型可以看做是CBOW模型的逆過程,CBOW模型的目標單詞在該模型中作為輸入,上下文則作為輸出。
我們使用 來表示輸入層中唯一單詞(也叫中心詞)的輸入向量,所以這樣的話,對隱藏層 的定義意味著 僅僅只是簡單拷貝了輸入層到隱藏層的權重矩陣 中跟輸入單詞 相關的那一行。拷貝公式得到:
在輸出層,我們輸出 個多項式分布來替代僅輸出一個多項式分布。每個輸出是由同一個隱藏層到輸出層矩陣計算得出的:
這裡 是第 個輸出面上第 個單詞; 是中心詞對應的目標單詞中的第 個單詞; 是中心詞(唯一輸入單詞); 是第 個輸出面上第 個單元的輸出值; 是第 個輸出面上的第 個單元的輸入。因為輸出面共享同一權重矩陣,所以有:
是詞彙表第 個單詞的輸出向量,可由 矩陣中的所對應的一列拷貝得到。
Skip-gram的損失函數可以寫為:
由於語料庫非常的大,直接計算中心詞與詞庫中每個單詞的softmax概率不現實。為了解決這個問題,Google提出了兩個方法,一個是Hierarchical Softmax,另一個方法是Negative Sampling。Negative Sampling的思想本身源自於對Noise Contrastive Estimation的一個簡化,具體的,把目標函數修正為:
是噪聲分布 ( noise distribution )。即訓練目標是使用Logistic regression區分出目標詞和噪音詞。另外,由於自然語言中很多高頻詞出現頻率極高,但包含的信息量非常小(如'is' 'a' 'the')。為了平衡低頻詞和高頻詞,利用簡單的概率丟棄詞 :
其中 是 的詞頻, 的確定比較trick,啟發式獲得。實際中 大約在 附近。
推薦閱讀Airbnb論文:
【1】Grbovic M, Cheng H. Real-time personalization using embeddings for search ranking at airbnb[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 311-320.
2.2 關於Word2Vec幾個問題思考
熟悉了Word2Vec的基本原理後,我 們來探究幾個關於Word2Vec的經典面試題。
(1) Hierarchical Softmax方法中哈夫曼樹是如何初始化生成的?也就是哈夫曼樹是如何構建的呢?
答:Hierarchical Softmax依據詞頻構建Huffman樹,詞頻大的節點離根節點較近,詞頻低的節點離根節點較遠,距離遠參數數量就多。
(2)Hierarchical Softmax對詞頻低的和詞頻高的單詞有什麼影響?為什麼?
答:詞頻高的節點離根節點較近,詞頻低的節點離根節點較遠,距離遠參數數量就多,在訓練的過程中,低頻詞的路徑上的參數能夠得到更多的訓練,所以Hierarchical Softmax對詞頻低的單詞效果會更好。
(3)Hierarchical Softmax方法中其實是做了一個二分類任務,寫出它的目標函數?
答:
其中 是真實標籤, 是模型預測的標籤。
(4)Negative Sampling是一種什麼採樣方式?是均勻採樣還是其它採樣方法?
答:詞典 中的詞在語料 中出現的次數有高有低,對於那些高頻詞,被選為負樣本的概率就應該比較大,反之,對於那些低頻詞,其被選中的概率就應該比較小。這就是我們對採樣過程的一個大致要求,本質上就是一個帶權採樣問題。
(5)詳細介紹一下Word2Vec中負採樣方法?
答:先將概率以累積概率分布的形式分布到一條線段上,以 為例, 所處線段為 , 所處線段為 , 所處線段為 ,然後定義一個大小為 的數組,並把數組等距離劃分為 個單元,然後與上面的線段做一次映射,這樣我們便知道了數組內的每個單元所對應的字符了,這種情況下算法的時間複雜度為 ,空間複雜度為 , 越小精度越大。
最後,我們來聊一聊Word2Vec對Embedding技術的奠基性意義。 Word2Vec是由谷歌於2013年正式提出的,其實它並不完全由谷歌原創,對詞向量的研究可以追溯到2003年論文《a neural probabilistic language model》,甚至更早。但正是谷歌對Word2Vec的成功應用,讓詞向量的技術得以在業界迅速推廣,使Embedding這一研究話題成為熱點。毫不誇張地說,Word2Vec對深度學習時代Embedding方向的研究具有奠基性的意義。
從另一個角度看,在Word2Vec的研究中提出的模型結構、目標函數、負採樣方法及負採樣中的目標函數,在後續的研究中被重複使用並被屢次優化。掌握Word2Vec中的每一個細節成了研究Embedding的基礎。從這個意義上講,熟練掌握本節內容非常重要。
3. Item2Vec-Word2Vec在推薦領域的推廣
在Word2Vec誕生之後,Embedding的思想迅速從自然語言處理領域擴散到幾乎所有機器學習領域,推薦系統也不例外。既然Word2Vec可以對詞「序列」中的詞進行Embedding,那麼對於用戶購買「序列」中的一個商品,用戶觀看「序列」中的一個電影,也應該存在相應的Embedding方法,這就是Item2Vec方法的基本思想。
推薦閱讀Item2Vec論文:
【1】Barkan O , Koenigstein N . Item2Vec: Neural Item Embedding for Collaborative Filtering[J]. 2016.
3.1 Item2Vec的基本原理
由於Word2Vec的流行,越來越多的Embedding方法可以被直接用於物品Embedding向量的生成,而用戶Embedding向量則更多通過行為歷史中的物品Embedding平均或者聚類得到。利用用戶向量和物品向量的相似性,可以直接在推薦系統的召回層快速得到候選集合,或在排序層直接用於最終推薦列表的排序。正是基於這樣的技術背景,微軟於2016年提出了計算物品Embedding向量的方法Item2Vec。
微軟將Skip-gram with negative sampling(SGNS)應用在用戶與物品的交互數據中,因此將該方法命名為Item2Vec。
相比Word2Vec利用「詞序列」生成詞Embedding。Item2Vec利用的「物品集合」是由特定用戶的瀏覽、購買等行為產生的歷史行為記錄序列變成物品集合。通過從物品序列移動到集合,丟失了空間/時間信息,還無法對用戶行為程度建模(喜歡和購買是不同程度的強行為)。好處是可以忽略用戶和物品關係,即便獲得的訂單不包含用戶信息,也可以生成物品集合。而論文的結論證明,在一些場景下序列信息的丟失是可忍受的。
Item2Vec中把用戶瀏覽的商品集合等價於Word2Vec中的word的序列,即句子(忽略了商品序列空間/時間信息)。出現在同一個集合的商品被視為positive。對於用戶歷史行為物品集合 ,Item2Vec的優化目標函數為:
我們再來看一下,Skip-gram是如何定義目標函數的。給定一個訓練序列 ,模型的目標函數是最大化平均的log概率:
通過觀察上面兩個式子會發現,Item2Vec和Word2Vec唯一的不同在於,Item2Vec丟棄了時間窗口的概念,認為序列中任意兩個物品都相關,因此在Item2Vec的目標函數中可以看到,其是兩兩物品的對數概率的和,而不僅是時間窗口內物品的對數概率之和。
在優化目標定義好後,Item2Vec訓練和優化過程同Word2Vec一樣,利用負採樣,最終得到每個商品的Embedding representation。利用商品的向量表徵計算商品之間兩兩的cosine相似度即為商品的相似度。
3.2 雙塔模型-"廣義"的Item2Vec
3.2.1 DSSM語義召回
DSSM模型是微軟2013年發表的一個關於query/doc的相似度計算模型,後來發展成為一種所謂」雙塔「的框架廣泛應用於廣告、推薦等領域的召回和排序問題中。我們自底向上來看下圖所示的網絡結構:
首先特徵輸入層將Query和Doc(One-hot編碼)轉化為Embedding向量,原論文針對英文輸入還提出了一種word hashing的特殊Embedding方法用來降低字典規模。我們在針對中文Embedding時使用Word2Vec類常規操作即可;
經過Embedding之後的詞向量,接下來是多層DNN網絡映射得到針對Query和Doc的128維語義特徵向量;
最後會使用Query和Doc向量進行餘弦相似度計算得到相似度 ,然後進行softmax歸一化得到最終的指標後驗概率 ,訓練目標針對點擊的正樣本擬合 為 ,否則擬合 為 ;
可以看到 DSSM的核心思想就是將不同對象映射到統一的語義空間中,利用該空間中對象的距離計算相似度 。這一思路被廣泛應用到了廣告、搜索以及推薦的召回和排序等各種工程實踐中。
事實上,Embedding對物品進行向量化的方法遠不止Item2Vec。廣義上講, 任何能夠生成物品向量的方法都可以被稱為Item2Vec 。典型的例子是曾在百度、Facebook等公司成功應用的雙塔模型,如下圖所示。
圖:百度的「雙塔」模型(來源於參考文獻11)
百度的雙塔模型分別用複雜網絡對「用戶特徵」和「廣告特徵」進行了Embedding化,在最後的交叉層之前,用戶特徵和廣告特徵之間沒有任何交互,這就形成了兩個獨立的「塔」,因此稱為雙塔模型。
在完成雙塔模型的訓練後,可以把最終的用戶Embedding和廣告Embedding存入內存資料庫。而在線上inference時,也不用復現複雜網絡,只需要實現最後一層的邏輯(即線上實現LR或淺層NN等輕量級模型擬合優化目標),再從內存資料庫中取出用戶Embedding和廣告Embedding之後,通過簡單計算即可得到最終的預估結果。
總之,在廣告場景下的雙塔模型中,廣告側的模型結構實現的其實就是對物品進行Embedding的過程。該模型被稱為「雙塔模型」,因此以下將廣告側的模型結構稱為「物品塔」。那麼,「物品塔」起到的作用本質上是接收物品相關的特徵向量,經過「物品塔」內的多層神經網絡結構,最終生成一個多維的稠密向量。從Embedding的角度看,這個稠密向量其實就是物品的Embedding向量,只不過Embedding模型從Word2Vec變成了更為複雜靈活的「物品塔」模型,輸入特徵由用戶行為序列生成的One-hot特徵向量,變成了可包含更多信息的、全面的物品特徵向量。二者的最終目的都是把物品的原始特徵轉變為稠密的物品Embedding向量表達,因此不管其中的模型結構如何,都可以把這類模型稱為「廣義」上的Item2Vec類模型。
Word2Vec和其衍生出的Item2Vec類模型是Embedding技術的基礎性方法,但二者都是建立在「序列」樣本(比如句子、用戶行為序列)的基礎上的。在網際網路場景下,數據對象之間更多呈現的是圖結構,所以Item2Vec在處理大量的網絡化數據時往往顯得捉襟見肘,這就是Graph Embedding技術出現的動因。
篇幅有限,我們會在下一篇文章中接著給大家詳細介紹Graph Embedding的相關內容,請大家持續關注~
【3】第四範式先薦 第5期 圖推薦算法在E&E問題上的應用,地址:https://mp.weixin.qq.com/s/RTAHBIAPQMqCM8WF6trwug
【4】圖推薦算法在E&E問題上的應用,地址:https://mp.weixin.qq.com/s/KSW47hbNLaHTw9Ib0wMO8g
【5】Embedding在推薦算法中的應用總結 - 夢想做個翟老師的文章 - 知乎 https://zhuanlan.zhihu.com/p/78144408
【6】Graph Embedding:深度學習推薦系統的"基本操作" - 顧鵬的文章 - 知乎 https://zhuanlan.zhihu.com/p/68247149
【7】word2vec詳解(CBOW,skip-gram,負採樣,分層Softmax) - 孫孫的文章 - 知乎 https://zhuanlan.zhihu.com/p/53425736
【8】推薦召回算法之深度召回模型串講 - 深度傳送門的文章 - 知乎 https://zhuanlan.zhihu.com/p/63343894
【9】現階段各家公司的廣告算法使用的主流模型有哪些?- 付鵬的回答 - 知乎 https://www.zhihu.com/question/352306163/answer/902698330
【10】深度學習技術在美圖個性化推薦的應用實踐,地址:https://mp.weixin.qq.com/s/b8DkQWZbUc5-jzWKBd8iUA
【11】如何解決推薦系統工程難題——深度學習推薦模型線上serving?- 王喆的文章 - 知乎 https://zhuanlan.zhihu.com/p/77664408
正式啟動啦!
關於我「門」
▼
將門是一家以專注於發掘、加速及投資技術驅動型創業公司的新型創投機構,旗下涵蓋將門創新服務、將門技術社群以及將門創投基金。
將門成立於2015年底,創始團隊由微軟創投在中國的創始團隊原班人馬構建而成,曾為微軟優選和深度孵化了126家創新的技術型創業公司。
如果您是技術領域的初創企業,不僅想獲得投資,還希望獲得一系列持續性、有價值的投後服務,歡迎發送或者推薦項目給「門」:
bp@thejiangmen.com
微信:thejiangmen
bp@thejiangmen.com