Embedding技術與應用(3):Embeddings技術的實踐應用

Baihai_IDP發表於2023-11-08

編者按: IDP開啟Embedding系列專欄,力圖詳細介紹Embedding的發展史、主要技術和應用。

本文是《Embedding技術與應用系列》的第三篇,重點介紹 嵌入技術在生產環境中的應用效果到底如何。

文章作者認為,嵌入技術可以有效地表示使用者興趣偏好,幫助推薦系統進行個性化內容推薦。作者詳細分析了Pinterest、YouTube、Google Play、Twitter等平臺在推薦系統中應用嵌入技術的案例。這些案例表明,適當使用嵌入技術,可以提升推薦質量,增強使用者粘性。作者認為,當具備大量使用者資料時,嵌入技術可以成為構建高質量推薦系統的關鍵工具。

當然,在推薦系統中應用嵌入技術也需要謹慎,比如需要注意避免泛化能力不足的問題。我們期待在後續文章中能看到作者對嵌入技術應用的更多思考。

以下是譯文,enjoy!

???歡迎小夥伴們加入 AI技術軟體及技術交流群 ,追蹤前沿熱點,共探技術難題~

作者 | Vicki Boykis

編譯 | 嶽揚

隨著 Transformer 模型的出現,更重要的是隨著 BERT 的出現,生成大型多模態物件(比如影像、文字、音訊等)的特徵表示變得更加簡單和準確,如果同時使用GPU,計算也可以進行並行加速。這就是embedding的作用,那麼我們應該如何使用它們?畢竟,我們絞盡腦汁搞出embedding不僅僅是為了進行數學練習。

所有生產級別的機器學習專案的最終目標是開發機器學習產品並快速將其應用於生產環境。

如今,許多公司正在很多場景中使用嵌入(embedding)技術,基本上涉及了資訊檢索的各個方面。比如,深度學習模型生成的嵌入正被用於Google Play應用商店推薦系統[1],雙重嵌入(dual embeddings)被用於Overstock的產品互補內容推薦功能[2]、Airbnb透過實時排名(real-time ranking)實現搜尋結果個性化[3]、Netflix利用嵌入技術進行內容理解(content understanding)[4]、Shutterstock利用嵌入技術進行視覺風格理解[5]等。

01 Pinterest

Pinterest就是一個值得關注的嵌入應用案例。Pinterest是一款應用程式,有許多內容需要向使用者進行個性化推薦和分類,特別是首頁和購物這兩個介面。由於所生成內容的規模非常龐大——每月有3.5億活躍使用者和20億條內容(Pins 或者用文字描述圖片的卡片),因此需要一個強有力的內容過濾和排序策略(filtering and ranking policy)。

為了更好地表示使用者的興趣並呈現有趣的內容,Pinterest開發了PinnerSage [6]。PinnerSage透過多個256維度的嵌入來表示使用者的代表性物件,這些嵌入基於相似度(similarity)進行聚類,並透過medioids來表示(譯者注:medioids是使用者興趣聚類中心的代表性物件,後文同此)

該系統的基礎是透過一種名為PinSage[7]的演算法開發的一組嵌入。PinSage使用圖卷積神經網路(Graph Convolutional neural network)生成嵌入,這是一種考慮到網路中節點之間關係的圖神經網路。該演算法會檢視Pin的最近鄰(nearest neighbors),並基於相關鄰域訪問(neighborhood visits)從附近的Pin中進行取樣。輸入內容是Pin的嵌入:影像嵌入(image embeddings)和文字嵌入(text embeddings)和找到的最近鄰。

然後將 Pinsage 嵌入傳遞給 Pinnersage,Pinnersage 會獲取使用者過去90天內操作的 Pin 並對它們進行聚類,然後計算出 medioid 並根據重要性取前3個medioid。如果使用者的查詢是一個medioid,Pinnersage會使用HNSW執行近似最近鄰搜尋(approximate nearest neighbors search),在嵌入空間中找到最接近使用者查詢的pin。

Embedding技術與應用(3):Embeddings技術的實踐應用

圖1 基於嵌入的相似性檢索方法:Pinnersage 和 Pinsage

02 YouTube and Google Play Store

2.1 YouTube

YouTube是最早公開分享在生產推薦系統中使用嵌入的大型公司之一,關於這項工作的論文名為“Deep Neural Networks for YouTube Recommendations”。

YouTube擁有超過8億個影片和26億活躍使用者,他們需要向這些使用者推薦這些影片。推薦系統需要向使用者推薦現有的影片內容,同時還需要對不斷上傳的新內容進行歸納。Youtube需要在使用者載入新頁面時以低延遲推薦影片內容。

在這篇論文[7]中,YouTube 分享了他們如何基於兩個深度學習模型建立了一個兩階段的影片推薦系統。該機器學習任務是預測下一個要推薦的影片,給定時間內在 YouTube 推薦欄中向使用者展示,以便使用者點選。最終的輸出被表述為一個分類問題: 給出使用者的輸入特徵和影片的輸入特徵,我們能否預測使用者對特定影片的預測觀看時間和觀看機率。

Embedding技術與應用(3):Embeddings技術的實踐應用

圖2 YouTube的端到端(end-to-end)影片推薦系統,包括候選內容生成器和排序器[7]

我們基於使用者 U 和上下文 C 設定了這一任務[8]。

考慮到輸入資料集的規模比較大,我們需要把該任務分解為兩階段的推薦系統: 第一階段是候選影片生成器,用於將候選影片集的數量減少到數百個;第二個階段的模型的size和shape與之相似,稱為排序器,其用於對這數百個影片按照使用者點選並觀看的機率進行排序。

候選影片生成器(The candidate generator)是一個具有多個層的 softmax 深度學習模型,所有層都使用了ReLU啟用函式,即修正線性單元啟用函式(rectified linear unit activation)。如果輸入為正,則直接輸出;反之,則輸出為零。該模型同時使用嵌入(embedded)特徵和表格學習(tabular learning)特徵,所有這些特徵都將組合在一起。

為了構建模型,我們使用兩組嵌入資料用作輸入資料:一組是將使用者(user)和上下文(context)作為特徵,另一組是影片內容項。該模型有幾百個特徵,包括表格特徵和基於嵌入的特徵。基於嵌入的特徵,包括以下元素:

  • 使用者的觀看歷史,由對映到密集向量表徵(dense vector representation)中的稀疏影片 ID 向量(vector of sparse video ID elements)來表示。

  • 使用者的搜尋歷史,將搜尋詞對映到從搜尋結果點選的影片,同樣也是以稀疏向量的形式對映到與使用者觀看歷史相同的空間中。

  • 使用者的地理位置、年齡和性別,作為表格特徵對映。

  • 影片以前的觀看次數,根據時間對每個使用者的資料進行歸一化。

所有這些特徵都會被組合成一個單一的嵌入,對於使用者來說,就是所有使用者嵌入特徵的混合對映,並會將其輸入到模型的softmax層中。該層會比較softmax層的輸出(即使用者點選推薦影片的機率)和一組真實情況(即使用者已經互動的影片項)之間的距離。影片項的對數機率是兩個n維向量(即使用者查詢和影片嵌入)的點積。(譯者注:此處的對數機率是指影片被使用者點選或觀看的機率的對數值。)

我們認為這是隱式反饋(Implicit feedback)的一個例子, 即使用者沒有明確給出的反饋(例如評分),但我們可以從日誌資料中捕捉到使用者的興趣,對每個影片類別(大約有一百萬個)都會有一個使用者喜愛機率的機率結果輸出。 (譯者注:模型能夠預測使用者點選或觀看每個影片類別的機率,這些機率結果可以用於計算每個使用者對於每個影片類別的相對重要性,併為使用者推薦最相關的影片。)

這個DNN就是我們前面討論過的矩陣分解模型(matrix factorization model)的一種泛化形式。

Embedding技術與應用(3):Embeddings技術的實踐應用

圖3 YouTube使用輸入嵌入的多步神經網路模型(multi-step neural network model)進行影片推薦[7]

2.2 Google Play App Store

在Google Play應用商店中,也進行了類似的工作,不過使用了不同的架構,如"Wide and Deep Learning for Recommender Systems"[9],該推薦系統可以跨越搜尋和推薦領域(search and recommendation space),返回被正確排名和個性化的應用推薦結果。該模型的輸入是使用者在訪問應用商店時所產生的點選流資料(clickstream data)。

Embedding技術與應用(3):Embeddings技術的實踐應用

圖4 Wide and deep[9]

該系統將推薦問題的解決分配給兩個聯合訓練的模型。在訓練時的各個epoch,權重在兩個模型之間共享和交叉傳播(shared and cross-propagated)。

在嘗試構建推薦系統所需的模型時,通常會遇到兩個問題: 記憶能力(memorization)和泛化能力(generalization)。 模型需要透過學習歷史資料中應用是如何一起被使用者下載的來學習使用者模式,同時也需要能夠為使用者提供以前未見過但仍然與使用者相關的新應用推薦,從而提高推薦內容的多樣性。通常,一個單獨的模型無法同時兼顧這兩個方面。

Wide and deep由兩個互補的模型組成:

  • Wide模型透過傳統的表格特徵(tabular features)來提高模型的記憶能力。 這是一個通用的線性模型(linear model),它是在數千個應用程式中使用稀疏的獨熱編碼特徵(如 user_installed_app=netflix)進行訓練的。記憶能力(Memorization)的作用是建立二元特徵,這些二元特徵是特徵的組合,例如AND(user_installed_app=netflix, impression_app_pandora),使我們能夠看到與目標相關的可能共同出現的不同組合。然而,該模型無法泛化到訓練資料之外的新應用。

  • Deep模型透過使用前饋神經網路(feed-forward neural network)來實現泛化能力,該網路由分類特徵(categorical features)組成,並將這些特徵轉換為嵌入(例如使用者使用的語言、裝置類別以及使用者對給定應用程式是否有印象等)。 每個嵌入向量的維度範圍都在0-100之間,這些向量被組合成一個具有1200維的稠密向量嵌入空間,並對其進行隨機初始化。對嵌入向量的值進行訓練,以最終函式的loss值的最小化,該函式是Deep和Wide模型共同使用的邏輯損失函式(logistic loss function)。Deep模型能夠泛化到模型以前沒有見過的應用程式,從而提高了推薦的多樣性。

Embedding技術與應用(3):Embeddings技術的實踐應用

圖5 wide and deep模型的deep部分[9]

該模型使用 5000 億個樣本進行訓練,並使用 AUC 進行離線評估,同時使用應用下載轉化率(即人們完成下載應用整個步驟的速度)進行線上評估。 根據論文,與對照組相比,使用這種方法提高了應用商店主頁面上的應用下載轉化率達3.9%。

03 Twitter

在Twitter中,預先計算的嵌入向量是許多應用功能實現推薦功能的關鍵組成部分,包括新使用者的主題興趣預測、推薦的推文、主頁時間線構建、使用者關注推薦和廣告推薦等。

Twitter擁有許多基於嵌入向量的模型,但在這裡我們只介紹其中的兩個專案:Twice [10]和TwHIN [11]。

Twice是一個基於內容的嵌入向量模型,旨在查詢 Tweets 的豐富表示形式(包含文字和視覺資料的推文),以便在主頁時間線(home timeline)、通知(Notifications)和主題(Topics)中呈現推文。

Twitter還開發了TwHIN [11],即Twitter異構資訊網路(Twitter Heterogeneous Information Network),它是一組基於圖的嵌入向量(graph-based embeddings),用於個性化廣告的排序、賬戶關注推薦、有害內容檢測和搜尋內容排序等任務,該異構資訊網路基於節點(如使用者和廣告商)和代表實體互動的邊。

Embedding技術與應用(3):Embeddings技術的實踐應用

圖6 Twitter的Twice Embeddings是一個經過訓練的BERT模型[10]

Twice 是一個從頭開始訓練的 BERT 模型,其以 Twitter 使用者在 90 天內產生的 2 億條推文作為訓練語料,幷包括這些推文與使用者本身的關係。該模型的目標是最佳化以下幾項任務: 主題預測(即與推文相關的主題,可能有多個) 、參與度預測(使用者參與推文(譯者注:可能是點贊、評論、轉發等操作) 的可能性)語言預測,以將相同語言的推文聚類在一起。

相比於僅關注推文內容,TwHIN將Twitter環境中的所有實體(推文、使用者、廣告實體)視為聯合嵌入空間圖(joint embedding space graph)中的一部分。聯合嵌入是透過使用使用者和推文的互動、廣告和“關注使用者”的資料來建立多模態嵌入(multi-model embeddings)來完成的。TWHin用於候選推薦內容的生成。候選推薦內容生成器(The candidate generator)使用HNSW或Faiss來檢索候選可推薦內容,找到可推薦關注的使用者或可推薦參與的推文。然後使用TWHin嵌入向量來查詢候選的推薦內容,並增加候選推薦內容的多樣性。

Embedding技術與應用(3):Embeddings技術的實踐應用

圖7 Twitter的異構資訊網路模型[11]

04 在透過Flutter開發的應用程式中使用嵌入向量技術

一旦我們綜合了足夠多的系統架構,我們會看到一些開發模式開始慢慢出現,我們可以考慮將這些模式用於開發 Flutter 類應用程式的相關推薦系統。(譯者注:Flutter是一個由谷歌開發的開源跨平臺應用軟體開發工具包,用於為Android、iOS、Windows、macOS、Linux Desktop、Google Fuchsia開發應用。)首先,我們需要大量的輸入資料才能進行準確的預測,並且這些資料應該包含有關顯式資料或更可能是隱式資料的資訊,例如使用者的點選和購買資料,這樣我們才能構建使用者偏好模型。 我們需要大量資料的原因有兩個。首先,神經網路需要大量的訓練資料才能正確推斷出各種關係,相比傳統模型而言,它們對訓練資料量的需求更高。其次,大量資料需要一個大的管道。

如果我們沒有太多的資料,那麼一個更簡單的模型就足夠了,因此我們需要確保我們確實達到了嵌入和神經網路能夠幫助我們解決業務問題的規模。我們可以從更簡單的模型開始。事實上,最近一篇論文認為,基於矩陣分解的簡單點積運算優於神經網路模型[12],這篇論文由開發因式分解機(推薦系統中的一種重要方法)的最初研究人員之一撰寫。其次,為了獲得良好的嵌入,我們需要花費大量時間清理和處理資料並建立表徵,就像我們在 YouTube 論文中所做的那樣,因此結果必須值得花費時間。

其次,我們需要能夠理解使用者與他們互動的內容之間的潛在關係。在傳統的推薦系統中,只要我們的語料庫不會太大,我們就可以使用 TF-IDF 來查詢加權的單詞特徵,作為特定 flit 的一部分,然後在不同文件之間進行比較。在高 級推薦系統中,我們可以透過研究簡單的關聯規則,或將推薦作為一個基於互動的協同過濾問題來學習使用者和內容的潛在特徵(也稱為嵌入向量)。事實上,這正是Levy和Goldberg在《Neural Word Embedding as Implicit Matrix Factorization》[13]中所提出的觀點。他們研究了 Word2Vec 的 skipgram 實現,並發現它隱式地對單詞-上下文矩陣(word-context matrix)進行了因子分解。

我們也可以將表格特徵作為協同過濾問題(collaborative filtering problem)的輸入,但使用神經網路[14]而非簡單的點積來收斂正確的關係和模型的下游排序。

鑑於我們對嵌入向量和推薦系統如何工作有了新的認識,我們現在可以將嵌入向量融入到Flutter的flit推薦中。如果我們想推薦相關內容,根據業務需求,我們可以採用多種不同的方式。在語料庫中,有數以億計的訊息,我們需要篩選出數以百計的訊息向使用者展示。因此,我們可以從Word2Vec或其他類似的baseline開始,然後透過嵌入的力量,採用任何BERT或其他神經網路方法來開發模型輸入特徵、向量相似性搜尋和排序等功能。

嵌入向量具有無限的靈活性和無盡的用途,可以提高多模態機器學習工作流程(multimodal machine learning workflows)的效能。然而,正如我們剛才看到的,如果我們決定使用它們,還需要注意一些事項。我們將在下一篇文章詳細討論需要注意的事項!

???歡迎小夥伴們加入 AI技術軟體及技術交流群 ,追蹤前沿熱點,共探技術難題~


在實際工程中使用Embedding技術需要注意些什麼?下一期,我們將探析Embedding技術使用中的挑戰和注意事項,敬請期待。

相關文章:

Embedding技術與應用 (2) :神經網路的發展及現代Embedding方法簡介

Embeddig技術與應用 (1) :Embedding技術發展概述及Word2Vec

END

參考資料

[1]Shuai Zhang, Lina Yao, Aixin Sun, and Yi Tay. Deep learning based recommender system: A survey and new perspectives. ACM computing surveys (CSUR), 52(1):1–38, 2019.

[2]Giorgi Kvernadze, Putu Ayu G Sudyanti, Nishan Subedi, and Mohammad Hajiaghayi. Two is better than one: Dual embeddings for complementary product recommendations. arXiv preprint arXiv:2211.14982, 2022.

[3]Mihajlo Grbovic and Haibin Cheng. Real-time personalization using embeddings for search ranking at airbnb. In Proceedings of the 24th ACM SIGKDD international conference on knowledge discovery & data mining, pages 311–320, 2018.

[4]Melody Dye, Chaitanya Ekandham, Avneesh Saluja, and Ashish Rastogi. Supporting content decision makers with machine learning, Dec 2020. URL https://netflixtechblog.com/supporting-contentdecision-makers-with-machine-learning-995b7b76006f.

[5]Raul Gomez Bruballa, Lauren Burnham-King, and Alessandra Sala. Learning users’ preferred visual styles in an image marketplace. In Proceedings of the 16th ACM Conference on Recommender Systems, pages 466–468, 2022.

[6]Aditya Pal, Chantat Eksombatchai, Yitong Zhou, Bo Zhao, Charles Rosenberg, and Jure Leskovec. Pinnersage: Multi-modal user embedding framework for recommendations at pinterest. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, pages 2311–2320, 2020.

[7]Paul Covington, Jay Adams, and Emre Sargin. Deep neural networks for youtube recommendations. In Proceedings of the 10th ACM conference on recommender systems, pages 191–198, 2016.

[8]Thorsten Joachims. Text categorization with support vector machines: Learning with many relevant features. In Machine Learning: ECML-98: 10th European Conference on Machine Learning Chemnitz, Germany, April 21–23, 1998 Proceedings, pages 137–142. Springer, 2005.

[9]Heng-Tze Cheng, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi Aradhye, Glen Anderson, Greg Corrado, Wei Chai, Mustafa Ispir, et al. Wide & deep learning for recommender systems. In Proceedings of the 1st workshop on deep learning for recommender systems, pages 7–10, 2016.

[10]Xianjing Liu, Behzad Golshan, Kenny Leung, Aman Saini, Vivek Kulkarni, Ali Mollahosseini, and Jeff Mo. Twice-twitter content embeddings. In CIKM 2022, 2022.

[11]Ahmed El-Kishky, Thomas Markovich, Serim Park, Chetan Verma, Baekjin Kim, Ramy Eskander, Yury Malkov, Frank Portman, Sofía Samaniego, Ying Xiao, et al. TwHIN: Embedding the Twitter Heterogeneous Information Network for Personalized Recommendation. In Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining, pages 2842–2850, 2022.

[12]Steffen Rendle, Walid Krichene, Li Zhang, and John Anderson. Neural collaborative filtering vs. matrix factorization revisited. In Proceedings of the 14th ACM Conference on Recommender Systems, pages 240–248, 2020.

[13]Omer Levy and Yoav Goldberg. Neural word embedding as implicit matrix factorization. Advances in neural information processing systems, 27, 2014.

[14]Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, and Tat-Seng Chua. Neural collaborative filtering. In Proceedings of the 26th international conference on world wide web, pages 173–182, 2017.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70018536/viewspace-2993429/,如需轉載,請註明出處,否則將追究法律責任。

相關文章