您的位置:首頁>正文

深度語義模型以及在淘寶搜索中的應用

摘要: 傳統的搜索文本相關性模型, 如BM25通常計算Query與Doc文本term匹配程度。 由於Query與Doc之間的語義gap, 可能存在很多語義相關, 但文本並不匹配的情況。 為了解決語義匹配問題, 出現很多LSA, LDA等語義模型。

傳統的搜索文本相關性模型, 如BM25通常計算Query與Doc文本term匹配程度。 由於Query與Doc之間的語義gap, 可能存在很多語義相關, 但文本並不匹配的情況。 為了解決語義匹配問題, 出現很多LSA, LDA等語義模型。 隨著深度學習在NLP的應用, 在IR和QA(問答系統)中出現了很多深度模型將query和doc通過神經網路embedding, 映射到一個稠密空間的向量表示, 然後再計算其是否相關,

並取得很好的效果。 本文調研了微軟, IBM Waston實驗室、Google等在這方面的一些工作, 並介紹我們在淘寶搜索上做的些工作。

1.DSSM、CDSSM, LSTM-DSSM及相關系列工作

微軟的DSSM及相關系列模型是深度語義模型中比較有影響力的。 集團內PS上有DSSM分散式實現, 而且也有多業務應用.

DSSM首先將query和doc表示成一個高維且稀疏的BOW向量, 向量的維度即詞典的大小, 每一維表示該term在query或doc中出現的頻次;如果向量每一位直接用單詞, 會出現維度非常高, 而且對一些未登錄詞無法處理。 作者做了一個非常有用的trick word-hash: 將每個單詞表示成一個letter-tri-gram的序列, 例如:boy切分成#-b-o, b-o-y, o-y-#, 然後再表示成letter-tri-gram向量。 把每個單詞向量累加起來即表示整段文本的向量。

然後, 通過幾層全連的網路連接將這個高維稀疏向量壓縮成一個稠密低維向量,

在這個向量空間內, 通過計算query與doc向量的cosin相似度來衡量相關程度。 訓練的目標是對同一query下取1個點擊doc作為正樣本, 隨機4個未點擊doc作為負樣本, 讓正負樣本的區分盡可能大:

由於DSSM對文本embedding時沒有考慮term的順序資訊, 又陸續提出了採用Convolution和LSTM對文本embedding,

可以保留詞序資訊。 其中, Convolution是實現方式通過對query或doc用固定大小滑動視窗取片段, 對每個片段內文本用word-hash+dnn壓縮, 然後取max-pooling表示整個query或doc向量。

此外, 無論是Convolution還是LSTM對文本embedding, 都涉及到通過詞或局部片段的向量生成整個句子的向量, 比較簡單粗暴的方法是直接取sum、avg或者max等。

微軟的學者們進一步做了改進, 提出利用Attention機制來學習各個片語合成句子向量的權重。 以LSTM-DSSM為例, LSTM在每個時間步(term)上輸出的隱向量h, 輸入給一個attention網路s(h),輸出權重後softmax歸一, 然後對每個詞的隱向量加權平均生成句子向量。 s(h)的參數和相關性目標一起來訓練。 這種Attention機制也比較弱, 因為不同的query對同一個doc的“關注”點可能是不一樣的, 這種方式只能對doc生成唯一的向量。

2. Google相關工作

Google的學者在用convolution對文本向量化是相比CDSSM做了些改進。 Convolution的方法參考了Nal Kalchbrenner等對文本用卷積來做分類的方法。

首先, 對句子中的每個詞做embedding, 然後將詞的embedding concat起來組合成一個矩陣, 有點類似圖像的表達。 然後, 在這個矩陣上通過不同feature map抽取特徵, 然後pooling生成一個維度的向量來表達句子。 對Query和Doc的語義向量, 再通過一個bilinear的模型計算其語義相似度:

最終, 語義相似度與其它相關排序特徵, 以及query和doc向量一起作為決定排序的因素, 通過pointwise的DNN模型來訓練。

3. IBM Waston實驗室相關工作

問答系統有很多種類型,其中給定一個Question和候選Answer,從候選Answer中挑選最合適的答案,這個過程與資訊檢索中的相關性模型非常相似。Waston實驗室在InsuranceQA資料集實驗了上述類似的模型,並綜合CNN和LSTM的優勢,提出了幾種有意思的混合模型:

(1) Convolutional-pooling LSTM

用一個Bi-LSTM作為word embedding的方法,然後word embedding concat成矩陣表達句子,用卷積來抽取組合特徵作為question和anwser的向量表達,再計算cosin loss.

(2)Convolution-based LSTM

先對原始文本用卷積捕捉局部的N-gram資訊, 然後在這個基礎上用Bi-LSTM來學習更大範圍的上下文依賴關係。

(3) Attentive-LSTM

相比LSTM-DSSM, 在Attention機制上做了些改進,與NMT的Attention機制接近,即:通過Answer中的詞向量加權平均生成整個Answer的向量時,每個詞的權重是由Question向量和詞向量來決定的。Question的表達仍由其所有詞向量的avg或sum,max來表示。

4. 其它相關工作

上述工作主要集中在如何更好生成Query和Doc向量表達,如何設計兩個向量comparision function以計算相似度也有很多種方法。Shuohang Wang總結了6種方法:NN, NTN, EUCCOS, SUB, MULT ,SUBMULT+NN。分別對query和doc向量計算乘、減、歐式距離、cosin、bilinear、concat,以及這幾種計算的組合。

另外在機器閱讀理解也有很多類似工作,本文就不展開描述了。下面介紹下我們的相關工作。

我們的工作

我們對淘寶搜索做了大量的語義改寫後,matching不僅局限於term的匹配了,下面分別從資料和模型介紹下我們的工作。

5.1 深度模型通常大量的訓練資料,而對商品搜索相關性這個問題,獲取大量高品質訓練資料並不容易。網頁搜索通常直接採用點擊資料作為是否相關的label,在商品搜索上不是很有效:使用者點擊行為與價格、圖片、個性化偏好等很多因素相關,僅依賴點擊資料對相關性樣本有太多雜訊; 而採用人工標注資料,準確率相對較高,但受時效性、成本等因素限制較大。最近學術界也逐漸意識到這個問題,提出BM25等無監督模型生成大量樣本。我們獲取訓練資料的方式有:

(1) 對行為資料採樣,並用一些類似圖像Data Augmentation的手段獲取大量(億級別)準確率相對較低的訓練資料,先用這些資料training一個較好的模型;這些方法包括:

a. query下取CTR正常的商品作為正樣本, CTR低於平均值較多的商品作為負樣本 b. query能召回的類目下隨機採樣商品作為負樣本 c. 對query中的term做一些變換,用變換後的query下點擊商品作為原始query的負樣本, 例如“紅色長袖連衣裙”變換成“藍色短袖連衣裙”, 而“藍色短袖連衣裙”下點擊商品可以作為“紅色長袖連衣裙”下的負樣本; (2) 通過改寫模型來為相關性模型生成大量樣本,後續可以專門文章介紹這部分;

(3) 採用數量相對少(100w)、準確率高的人工標注資料fine-tuning用上述兩種方法pre_training好的模型。

5.2 模型設計主要考慮的幾個因素:

(1) 淘寶上Query和商品標題存在大量長尾詞,尤其大量數位和英文組合的貨號、型號、容量等,分詞無法窮盡。僅通過詞來對query和標題embedding會損失很多資訊,需要考慮字元維度。

(2) 商品除了標題外了,還有圖片、類目、屬性等資訊可以利用。

(3) 工程實現線上計算要輕量,兩個向量的compare function要控制計算複雜度。

我們現在採用的模型如下:

(1) 對Query和標題向量我們採用DNN + Char-LSTM組合的方式:DNN能高效地學到TOP詞的embedding, Char-LSTM能捕獲到較長尾的字元組合。引入Char-LSTM後模型比較難訓練,我們使用query和標題文本語料pretraining LSTM-AutoEncoder, 獲得比較好的初始參數;同時TOP詞的embedding採用word2vec初始化,模型能更快收斂。

(2) 在商品標題的embedding上增加了一個類目預測的輔助task, 使得不同類目的商品在向量空間內有更好的區分度,對模型效果和收斂速度都有比較好的提升。

(3) online ranking對latency要求比較高,除了工程優化外,模型上也有優化空間。在我們資料上實驗發現compare function中全連層的深度和寬度對模型影響比較大。全連層寬一些效果會比較好,但計算量增加會很大;借鑒ResNet全連層設置窄一些,並加深模型,可以保證效果同時較大減少計算量。

我們抽樣部分query抓取線上排序結果, 與該模型排序後TOP30人工評測GOOD比例提升1.31%。

5.3 後續計畫

商品除了標題和類目,圖片也是很重要的資訊來源,後續加入圖片資訊,同時也在嘗試用query和商品向量做召回,實現multi-modal檢索。

另外,Attention機制也是一個被證明重要的提升點。受限於線上ranking latency的要求,不可能對每個商品標題根據query來計算其"關注"的部分,但可以引入一些self-attention的方法來生成更好的標題向量。

本文來自:阿裡搜索事業部技術團隊

3. IBM Waston實驗室相關工作

問答系統有很多種類型,其中給定一個Question和候選Answer,從候選Answer中挑選最合適的答案,這個過程與資訊檢索中的相關性模型非常相似。Waston實驗室在InsuranceQA資料集實驗了上述類似的模型,並綜合CNN和LSTM的優勢,提出了幾種有意思的混合模型:

(1) Convolutional-pooling LSTM

用一個Bi-LSTM作為word embedding的方法,然後word embedding concat成矩陣表達句子,用卷積來抽取組合特徵作為question和anwser的向量表達,再計算cosin loss.

(2)Convolution-based LSTM

先對原始文本用卷積捕捉局部的N-gram資訊, 然後在這個基礎上用Bi-LSTM來學習更大範圍的上下文依賴關係。

(3) Attentive-LSTM

相比LSTM-DSSM, 在Attention機制上做了些改進,與NMT的Attention機制接近,即:通過Answer中的詞向量加權平均生成整個Answer的向量時,每個詞的權重是由Question向量和詞向量來決定的。Question的表達仍由其所有詞向量的avg或sum,max來表示。

4. 其它相關工作

上述工作主要集中在如何更好生成Query和Doc向量表達,如何設計兩個向量comparision function以計算相似度也有很多種方法。Shuohang Wang總結了6種方法:NN, NTN, EUCCOS, SUB, MULT ,SUBMULT+NN。分別對query和doc向量計算乘、減、歐式距離、cosin、bilinear、concat,以及這幾種計算的組合。

另外在機器閱讀理解也有很多類似工作,本文就不展開描述了。下面介紹下我們的相關工作。

我們的工作

我們對淘寶搜索做了大量的語義改寫後,matching不僅局限於term的匹配了,下面分別從資料和模型介紹下我們的工作。

5.1 深度模型通常大量的訓練資料,而對商品搜索相關性這個問題,獲取大量高品質訓練資料並不容易。網頁搜索通常直接採用點擊資料作為是否相關的label,在商品搜索上不是很有效:使用者點擊行為與價格、圖片、個性化偏好等很多因素相關,僅依賴點擊資料對相關性樣本有太多雜訊; 而採用人工標注資料,準確率相對較高,但受時效性、成本等因素限制較大。最近學術界也逐漸意識到這個問題,提出BM25等無監督模型生成大量樣本。我們獲取訓練資料的方式有:

(1) 對行為資料採樣,並用一些類似圖像Data Augmentation的手段獲取大量(億級別)準確率相對較低的訓練資料,先用這些資料training一個較好的模型;這些方法包括:

a. query下取CTR正常的商品作為正樣本, CTR低於平均值較多的商品作為負樣本 b. query能召回的類目下隨機採樣商品作為負樣本 c. 對query中的term做一些變換,用變換後的query下點擊商品作為原始query的負樣本, 例如“紅色長袖連衣裙”變換成“藍色短袖連衣裙”, 而“藍色短袖連衣裙”下點擊商品可以作為“紅色長袖連衣裙”下的負樣本; (2) 通過改寫模型來為相關性模型生成大量樣本,後續可以專門文章介紹這部分;

(3) 採用數量相對少(100w)、準確率高的人工標注資料fine-tuning用上述兩種方法pre_training好的模型。

5.2 模型設計主要考慮的幾個因素:

(1) 淘寶上Query和商品標題存在大量長尾詞,尤其大量數位和英文組合的貨號、型號、容量等,分詞無法窮盡。僅通過詞來對query和標題embedding會損失很多資訊,需要考慮字元維度。

(2) 商品除了標題外了,還有圖片、類目、屬性等資訊可以利用。

(3) 工程實現線上計算要輕量,兩個向量的compare function要控制計算複雜度。

我們現在採用的模型如下:

(1) 對Query和標題向量我們採用DNN + Char-LSTM組合的方式:DNN能高效地學到TOP詞的embedding, Char-LSTM能捕獲到較長尾的字元組合。引入Char-LSTM後模型比較難訓練,我們使用query和標題文本語料pretraining LSTM-AutoEncoder, 獲得比較好的初始參數;同時TOP詞的embedding採用word2vec初始化,模型能更快收斂。

(2) 在商品標題的embedding上增加了一個類目預測的輔助task, 使得不同類目的商品在向量空間內有更好的區分度,對模型效果和收斂速度都有比較好的提升。

(3) online ranking對latency要求比較高,除了工程優化外,模型上也有優化空間。在我們資料上實驗發現compare function中全連層的深度和寬度對模型影響比較大。全連層寬一些效果會比較好,但計算量增加會很大;借鑒ResNet全連層設置窄一些,並加深模型,可以保證效果同時較大減少計算量。

我們抽樣部分query抓取線上排序結果, 與該模型排序後TOP30人工評測GOOD比例提升1.31%。

5.3 後續計畫

商品除了標題和類目,圖片也是很重要的資訊來源,後續加入圖片資訊,同時也在嘗試用query和商品向量做召回,實現multi-modal檢索。

另外,Attention機制也是一個被證明重要的提升點。受限於線上ranking latency的要求,不可能對每個商品標題根據query來計算其"關注"的部分,但可以引入一些self-attention的方法來生成更好的標題向量。

本文來自:阿裡搜索事業部技術團隊

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示