日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

laravel 分词搜索匹配度_DSSM文本匹配模型在苏宁商品语义召回上的应用

發(fā)布時間:2024/4/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel 分词搜索匹配度_DSSM文本匹配模型在苏宁商品语义召回上的应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文本匹配是自然語言處理中的一個核心問題,它不同于MT、MRC、QA 等end-to-end型任務(wù),一般是以文本相似度計算的形式在應用系統(tǒng)中起核心支撐作用1。它可以應用于各種類型的自然語言處理任務(wù)中,例如信息檢索、搜索引擎、問答系統(tǒng)、信息流推薦、復述問題、知識檢索、機器翻譯等。

1、背景

文本匹配是自然語言處理中的一個核心問題,它不同于MT、MRC、QA 等end-to-end型任務(wù),一般是以文本相似度計算的形式在應用系統(tǒng)中起核心支撐作用。它可以應用于各種類型的自然語言處理任務(wù)中,例如信息檢索、搜索引擎、問答系統(tǒng)、信息流推薦、復述問題、知識檢索、機器翻譯等。

之所以文本匹配的適用范圍如此之廣,是因為很多NLP任務(wù)本質(zhì)上可以抽象為一個文本匹配問題,比如說復述問題可以歸結(jié)為兩個同義句的匹配,信息檢索就是一個搜索詞和文檔資源的匹配過程,問答系統(tǒng)的核心問題是將用戶輸入的問題和最佳的候選答案匹配起來,對話系統(tǒng)可以歸結(jié)為前一句對話和下一句回復的匹配。本文主要介紹DSSM文本匹配模型在蘇寧商品語義召回上的應用。

使用文本匹配模型進行語義召回是在蘇寧易購主搜系統(tǒng)對一些未知詞或者語義不明甚至有錯字少字的用戶搜索詞返回結(jié)果不好的情況下提出的。如下圖所示,用戶漏了掛燙機里的掛字,并且后面輸入了有一定干擾作用的具體型號詞,導致沒有返回結(jié)果。scolib品牌的耳機沒有在蘇寧進行銷售,因此scolib這個英文詞屬于未知詞。

圖一: 未知、錯字少字等情況搜索效果展示

從以上兩種召回效果較差的情況可以看出,以文本相似度為核心的召回策略雖然能在大部分情況下保證較高的精度,但是無法解決前文所提到的特殊情況。因此采用語義模型,獲取與用戶query的語義相近的商品是非常有必要的。

深度文本匹配可以總結(jié)為四種:1、單語義模型 2、多語義模型 3、匹配矩陣模型 4、深層次句子模型。其中單語義模型用全連接、CNN、 RNN或其他的特征提取器得到兩個句子的深層語義向量,再計算兩者的匹配度;多語義模型從多顆粒的角度解讀句子,考慮到句子內(nèi)部的局部結(jié)構(gòu);匹配矩陣模型直接捕捉匹配信號,將詞間的匹配信號作為灰度圖,再用深度網(wǎng)絡(luò)提取特征,更精細的處理句子中的聯(lián)系;深層次的句子間模型用更精細的結(jié)構(gòu)去挖掘句子內(nèi)和句子間不同單詞之間的聯(lián)系,得到更好的效果5。

近幾年來文本匹配相關(guān)的論文層出不窮,對句子對結(jié)構(gòu)的處理越來越精細,模型復雜度快速上升6。雖然論文里的實驗SOTA效果不斷刷新, 但是完整的訓練步驟,甚至是單次預測所需時間也是非常長的。線上生產(chǎn)環(huán)境以保證用戶體驗為第一要務(wù),需要快速可靠準確的文本匹配策略7。同時,蘇寧有海量的每日更新的query-doc對文本語料,query是用戶的搜索詞,doc為系統(tǒng)返回的商品title。想要在有限的硬件資源下,能容忍的訓練調(diào)試時間范圍內(nèi)實現(xiàn)對主站全商品類目億級別語料進行訓練,需要一個可調(diào)參數(shù)規(guī)模不大,待召回千萬級商品集的語義向量可以離線提前算好,模型效果能隨著語料規(guī)模增大而提高的模型。綜上,我們選擇LSTM-DSSM模型作為商品語義召回系統(tǒng)的核心。

2、LSTM-DSSM模型

2.1 模型輸入

在商品語義召回業(yè)務(wù)里,待匹配的DOC是商品標題,而標題不可避免的會包含型號詞如GTX2060這種。如果對輸入按字處理,則會強制模型學習2、0、6、0四個數(shù)字是一種固定搭配,對于短文本還好,可一些電子產(chǎn)品的型號詞數(shù)字加字母長達十幾位,而真正的核心中文詞也許只有短短幾位,這就產(chǎn)生了非常嚴重的干擾效果。而且對于包含幾十個字的長標題,就需要同等長度的LSTM進行特征提取,造成參數(shù)過多,增加了模型學習成本。綜上,本模型放棄字token作為輸入,而是使用詞token。

我們參考了遷移學習的思想,不是簡單的隨機初始化詞token的Embedding向量,而是以億級別的蘇寧商品Title為語料,先使用HanLP分詞器進行分詞處理。將分詞所得的詞token按順序編碼,生成后續(xù)模型需要的詞典。并在spark平臺上,用其提供的word2vec模型接口訓練詞token語料。這樣就能得到每個詞token的語義向量,并當作為模型的輸入。

考慮到詞典和各個詞的語義向量的生成,是一勞永逸的工作,通常不需要再變動,所以使用了非常大規(guī)模的語料,spark環(huán)境設(shè)置300臺機器,訓練時間接近8個小時,最后的效果還是滿意的。

2.2 模型架構(gòu)

商品語義召回系統(tǒng)所用DSSM在如下圖所示的基本模型基礎(chǔ)上,增加了兩處針對業(yè)務(wù)效果的改進。

圖二: DSSM基礎(chǔ)模型示意圖

首先對于匹配商品召回這種具體的業(yè)務(wù)場景,商品的品牌和品類是非常重要的特征。如果能匹配到正確的品類、品牌,那最終效果肯定不會差。因此為了能直接利用這類特征,采取了非常直接的方法,如下圖所示:

圖三: 頻偏、品類特征使用示意圖

由上圖可見,品牌、品類通過Embedding表示學習層、兩層MLP直接映射成和LSTM提取的語義向量同一維度的向量,再將兩者相加得到最終的語義向量表示。

第二,引入了注意力機制,目的是解決諸如洗衣機返回較多洗衣機配件的情況,提升核心詞洗衣機的權(quán)重,這樣能極大的改善召回效果,具體使用方式如下圖所示:

圖四: 注意力機制使用示意圖

由以上兩圖可以看出,有兩種參考了經(jīng)典乘性注意力機制的方法,第一種是用query的最后一個LSTM單元輸出的隱層向量作為context,分別與doc每個時間步驟的隱層向量作點積計算,計算結(jié)果作為權(quán)重。每個時間步驟的向量乘以權(quán)重再求和就可以作為最終的語義向量。第二種則是求得query每個時間步驟的權(quán)重,然后得到query最終語義向量,將其與doc最后單元輸出并聯(lián)或者相加,作為最終商品語義向量。

2.3 模型輸出

模型的輸出作為語義召回系統(tǒng)的輸入,主要由兩個方面組成。第一,是實時生成搜索詞query語義向量的模塊。具體做法要考慮到實際業(yè)務(wù)場景一次只輸入一條query的情況,改造模型輸入接口和具體處理方式,讀取已經(jīng)訓練好的模型參數(shù),重新保存為tf-serving服務(wù)框架所需要的pb格式模型。第二,離線生成待召回商品的語義向量集,由于使用了注意力機制,還需要query參與商品語義向量的生成。召回集是接近百萬級的規(guī)模,因此可以方便的復用訓練模型,一次生成batch_size個語義向量,并且全部Norm化成平方和為1的向量,保存在內(nèi)存里,當下一個batch_size生成完畢,直接拼接在一起。在內(nèi)存里存儲完畢所有商品的語義向量,形式為numpy向量,最終存儲到硬盤里的是npy文件,大小為500M左右,空間費用可以接受。

3、語義召回系統(tǒng)介紹

3.1 數(shù)據(jù)準備

利用蘇寧完善的數(shù)據(jù)倉庫環(huán)境,在每日的固定時間執(zhí)行HIVE腳本,獲取用戶搜索詞、對應的商品Title、編碼、品牌品類,質(zhì)量分等字段的信息。語料按搜索詞搜索次數(shù),商品質(zhì)量排序,選取質(zhì)量高的作為語料,并且從友商平臺上抓取商品信息作為補充。同時,在spark平臺上進行初始語料的處理,包括分詞、去除無意義詞、中英文分開處理等預處理步驟,最后要將處理完畢的語料轉(zhuǎn)化成一個正DOC,四個負DOC, 即可以直接應用于模型訓練的形式。另外還需要針對召回,對語料進行去重處理,避免召回同一件商品的情況出現(xiàn)。最后,給召回系統(tǒng)提供待召回的商品title集以及準確對應的商品ID和商品質(zhì)量分集。

3.2 在線匹配

從上文可以看出,模型將準備好的待召回商品title集處理為npy文件,存在磁盤之中。另外輸出了tf-serving服務(wù)框架所需要的pb格式模型,可以將用戶搜索詞實時轉(zhuǎn)化為語義向量。接下來要做的事情就是計算query向量與所有商品語義向量之間的兩兩余弦距離,返回TopN, 找到對應的商品ID,提供給前臺展示。

需要注意的是,這里找TopN的過程需要‘快準狠’,我們使用的Facebook開源的Faiss框架,為了保證準確度,沒有使用任何自帶的高級索引功能,只使用最簡單的暴力計算兩兩之間的距離,這樣肯定能找到正確結(jié)果。通過測試,在百萬級數(shù)據(jù)的規(guī)模,維度為256,使用暴力檢索,耗時也不到1ms,完全可以接受。另外出于業(yè)務(wù)目標考慮,提高高質(zhì)量分物品的權(quán)重,這簡單通過余弦距離乘以質(zhì)量分來實現(xiàn),人為提高高質(zhì)量分物品與搜索詞的余弦距離。

3.3 系統(tǒng)環(huán)境

整個語義召回系統(tǒng)的系統(tǒng)環(huán)境組成較為清晰,包括在Spark平臺上的大規(guī)模數(shù)據(jù)處理,jupyter深度學習平臺上的模型訓練和語義向量生成,Linux主機上的Faiss匹配找出TopN的過程,tf-serving線上服務(wù)器的布置,以及方便結(jié)果調(diào)試的前端匹配結(jié)果展示,如下圖所示:

圖五: 召回系統(tǒng)前端展示

可以方便的傳入各類參數(shù),比如返回商品的個數(shù),使用模型的版本,使用索引的種類等等,調(diào)試起來非常方便。

4、總結(jié)

本文介紹了DSSM文本匹配模型在蘇寧商品語義召回上的應用,主要包含算法原理和工程實踐兩個方面。蘇寧搜索團隊在搜索匹配、個性化推薦、知識圖譜、智能對話等自然語言處理領(lǐng)域有很多的嘗試實踐,限于篇幅本文不做介紹,歡迎讀者關(guān)注后續(xù)的最新文章分享。

參考文獻

  • Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]// ACM International Conference on Conference on Information & Knowledge Management. ACM, 2013:2333-2338.
  • Shen, Yelong, et al. “A latent semantic model with convolutional-pooling structure for information retrieval.” Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management. ACM, 2014.
  • Palangi, Hamid, et al. “Semantic modelling with long-short-term memory for information retrieval.” arXiv preprint arXiv:1412.6629 (2014).
  • http://ju.outofmemory.cn/entry/316660
  • http://blog.csdn.net/u013074302/article/details/76422551
  • 博客園 DSSM算法-計算文本相似度
  • Gers, Felix A., Schmidhuber, Jrgen, and Cummins, Fred. Learning to forget: Continual prediction with lstm. Neural Computation, 12:2451–2471, 1999.
  • Gers, Felix A., Schraudolph, Nicol N., and Schmidhuber, J¨urgen. Learning precise timing with lstm recurrent networks. J. Mach. Learn. Res., 3:115–143, March 2003.
  • 總結(jié)

    以上是生活随笔為你收集整理的laravel 分词搜索匹配度_DSSM文本匹配模型在苏宁商品语义召回上的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。