DSSM文本匹配在語義召回中的應用


DSSM雙塔模型在2013年被微軟在論文Learning Deep Structured Semantic Models for Web Search using Clickthrough Data中提出,其應用途徑由最初的文本匹配和搜索逐漸推廣到了推薦搜索、計算廣告、信息流推薦以及機器翻譯等等。

一、DSSM介紹

DSSM在搜索推薦中的原理也比較簡單:

  • 1、獲取搜索引擎中的用戶搜索query和曝光doc數據,
  • 2、訓練過程中,首先分別構建query和doc的embedding,
  • 3、其次用深度學習復雜網絡構建模型的語義表示表示層,
  • 4、模型的輸出一般是計算query和doc的cos距離來計算語言相似度,最終獲得語義模型,
  • 4、線上infer階段,首先緩存doc側所有的embedding,然后實時query通過query測計算embedding,再與計算好的doc的embedding 計算相似度召回。


簡化論文中的模型結構,我們可以把DSSM模型總共分成三層:輸入層,表示層和匹配層,分別對應到上面的 2,3,4 三點。
根據表示層的不同,近年發展出了一系列DNN-DSSM,LSTM—DSSM等等,當然你也可以使用其他諸如CNN和Transformer等作為表示層網絡。
在計算廣告領域,query層往往還包括了用戶的其他特征,屬於另一種模型的變異,可以參見1

二、DSSM實踐

DSSM模型結構比較簡單,實現上常常用正負樣本分類的方式訓練模型,通常有二分類和多分類的方式,需要注意的是采用多分類時,doc側網絡需要公用網絡層。

    # 定義網絡層
    embedding_layer = Embedding(embedding_look_up, 128, input_length=item_len_query,
                                embeddings_initializer='random_uniform')

    # query tower
    input_query = Input(shape=(pad,), name='input_query')
    embedding_query = embedding_layer(input_query)
    inception_query = TextCNN()(embedding_query)
    # item tower
    input_item = Input(shape=(item_len_query,), name="item_input")
    embedding_item = embedding_layer(input_item)
    inception_item = TextCNN()(embedding_item)
    # cosine sore
    cosine_scores = Lambda(cosine_distance, output_shape=cos_dist_output_shape)([inception_query, inception_item])

    prob = Dense(1, activation='sigmoid')(cosine_scores)
    model = Model(inputs=[input_query, input_item], outputs=prob)
    model.compile(
        optimizer="adam",
        loss="binary_crossentropy",
        metrics=['accuracy'])
    model.summary()

筆者也嘗試過基於Transformer的多塔模型,限於篇幅,代碼就不提供了,結構如下,其效果明顯優於基於TextCNN-DSSM模型。

三、DSSM的優缺點

3.1、優點

  • 相比於LSA、LDA、Autoencoder等方法等語義模型存在字典爆炸問題,DSSM在計算上花銷更少
  • 使用有監督的方法,優化語義embedding的映射問題
  • 省去大量的人工特征

3.2、缺點

  • 采用詞袋模型時沒有考慮詞的位置關系,對語義理解存在損失。(不過如果采用LSTM或者Transformer作為網絡結構可以解決這個問題)
  • 采用弱監督和端到端的這種方式,模型預測結果不可控。

四、總結

對於電商商品召回來說,DSSM不可以不說是一個非常快速有效有方法,Google、百度和阿里等都有類似的實踐。若需要更精確的召回,還可以在模型輸入層加上其他特征,比如商品的品牌,類別等,甚至可以用上attention,參見蘇寧的實踐方案2

原文來自小白的便利貼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM