推薦系統對於我們今天使用的幾乎所有應用程式都是至關重要的。 藉助大資料,我們有大量可供選擇的內容。並且我們可以建系統,透過這些系統可以幫助我們篩選和確定選擇的優先次序。 這些系統還給我們一種個性化的內容和服務的感覺。
詞嵌入是指單詞在低維空間中的分散式表示。詞嵌入使機器更容易理解文字。有多種演算法可用於將文字轉換為詞嵌入向量,例如Word2Vec,GloVe,WordRank,fastText等。所有這些演算法都提供了多種單詞矢量表示形式,但可以將它們直接輸入到NLP模型中。這些演算法的用法取決於我們要執行的任務的型別,例如,如果我們要執行單詞相似性任務,並且要輸出可互換的單詞,則應使用Word2Vec,否則,如果我們要輸出相關的屬性到一個特定的單詞,那麼我們應該選擇WordRank。
Airbnb使用點選會話來構建單詞嵌入,即他們從使用者點選的列表中提取模式。他們將每個列表轉換成詞嵌入向量,然後根據其點選會話最終向用戶顯示最相似的列表。為了將列表轉換為向量,他們將使用者的每次點選會話都視為句子和skipgram(在Word2Vec的兩個變體中)。他們找到了正樣本和負樣本,它們可以用於訓練並最終計算嵌入向量。考慮以下示例:
每個使用者的這些點選會話均視為句子。 然後,進行正負取樣。 只要使用者沒有點選推薦的列表,就會被視為否定樣本。 為了進一步改善模型的效能,它們將最終預訂的使用者列表作為該使用者單擊的其他所有列表的肯定示例。 例如,如果我們認為使用者1最終預訂了清單124,那麼正樣本和負樣本的生成將與圖2相似。這樣,Airbnb便會為其使用者提供實時建議。
阿里巴巴以不同的方式使用詞嵌入。 他們還利用產品點選會話,但不會直接使用skipgram ,而是根據它們建立有向圖。 考慮圖1的示例,圖看起來像圖3中的圖。現在,他們使用隨機遊走的概念來計算我們所謂的圖嵌入。 在這裡,他們隨機選擇一個節點並繼續沿著路徑行駛,直到到達終點為止。 然後,對這些隨機遊動序列進行skipgram 操作,從而為這些產品中的每一個找到單詞嵌入。 他們還使用影響這些嵌入的產品附帶資訊來進一步提高準確性。 在這裡詳細瞭解他們的工作。
現在讓我們談談Spotify。針對其使用者建立和收聽的播放列表進行Spotify的skipgram。他們還考慮了使用者跳過的歌曲,使用者在歌曲上花費的時間以及整個使用者的收聽歷史。他們從這些活動中構建正樣本和負樣本,然後執行單詞嵌入演算法。最後,他們根據此推薦相關的藝術家。
最後,讓我們談談一家名為ASOS的線上時裝和化妝品零售商公司。他們使用詞嵌入作為輸入來預測客戶價值壽命預測。如果客戶訪問的時間取決於銷售,產品價格等的不同,則其生命週期價值較低。另一方面,生命週期價值高意味著您在相似的時間進行相似的訪問。現在,ASOS不會對使用者的點選會話建立skipgram 。他們要做的是找到訪問產品頁面的使用者序列,然後對這些使用者序列建立skipgram 。因此,每個使用者都將轉換為嵌入向量。然後將這些嵌入用作模型的輸入以進行預測。
以上內容均來自以下論文的整理,有興趣的可以搜尋檢視:
[1] Grbovic and Cheng, Real-time Personalization using Embeddings for Search Ranking at Airbnb
[2] Huang et al., Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
[3] Chamberlain et al., Customer Lifetime Value Prediction Using Embeddings
[4] Jay Alammar’s talk on “Intuition & Use-Cases of Embeddings in NLP & beyond”
[5] Lev Konstantinovski’s talk on “Next generation of word embeddings in Gensim”
[6] Jay Alammar’s blog on “The Illustrated Word2Vec”