小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

來自工業(yè)界對學術(shù)界的鄙視--檢索式工業(yè)界對話系統(tǒng)

 520jefferson 2022-11-18 發(fā)布于北京

現(xiàn)在來回答上次的問題,為什么工業(yè)界不能夠使用End2End,也即端到端的方式來構(gòu)建對話系統(tǒng)呢?首先百科一下,什么是End2End模型:

  • 可以參考下圖的正常Pipeline形式的對話系統(tǒng),可以看到除去輸入和輸出以外,有很多的子模塊,而端到端的方式,就是直接從輸入到輸出,把所有的功能集成到一個模型上面。

圖片

圖:Pipeline形式

圖片

圖:端到端形式

接著回到我們的問題,為什么工業(yè)界不能使用呢?是因為模塊化的模型更好管理,端到端的,如果輸出錯了,那對于算法工程師而言就是個黑盒子,我們并不知道在哪個環(huán)節(jié)出錯了,這就是一個核心的問題。

下面回到我們的主線,開始講解在工業(yè)界整個對話系統(tǒng)的全貌,以下的技術(shù)分享主要是關(guān)于智能客服的。那么智能客服有什么樣的功能呢?我們分成兩種方式:

  • 主動回復,例如轉(zhuǎn)人工之前,會有機器人的自動處理,yysy,這種機器人大多都不能解決問題。

  • 輔助回復,在人進行回復的時候,上面會彈出很多的可選項,省去了大字的時間,效果很好。

圖片

圖:輔助回復功能

接下來我們主要介紹輔助回復的對話系統(tǒng),這種對話系統(tǒng)和我們初步構(gòu)想的不一樣,主要是檢索,通過檢索的方式,搜索出對應的回復,例如圖片中,用戶問:“為什么沒有效果?。俊?,之后對話系統(tǒng)會自動的檢索出相關(guān)的回復,總共羅列出三條。

那么接下來的問題是:檢索式對話系統(tǒng)是怎么做到這樣的?我們先看以下的圖片,這個看起來復雜但是實際上邏輯清晰的圖代表了檢索式對話系統(tǒng),首先是數(shù)據(jù)搭建,其次是通過召回的手段收集到相關(guān)的回答,再次是排序決策哪條是最好的輸出。

圖片

圖:檢索式對話系統(tǒng)流程圖

第一層:數(shù)據(jù)層:

這個層的主要目的,是收集很多線上的數(shù)據(jù),分別有兩種形式,其一是商家的對話日志,來自于商家和用戶的交流,其二是客服的對話日志,來自客服和用戶的交流。類似這種線上的日志,量會非常大,所以需要搭建一種回流機制,自發(fā)的篩選出優(yōu)質(zhì)的數(shù)據(jù),供之后的模型訓練。

第二層:召回層:

和傳統(tǒng)的任務導向型對話系統(tǒng)不太一樣,這種召回的模塊充當了NLU+DM的角色,即需要理解用戶的話語,也需要根據(jù)當前的狀況做出動作。那么接下來的問題是,召回的索引應當如何選擇?這點尤其重要,因為涉及到了之后排序的邏輯:

  • 對話歷史索引,根據(jù)當前商家/客服之前的對話歷史,建立索引,之后的召回也會從這里出發(fā)。這點實際上很常見,在輸入法的時候,我們重復說幾句話,輸入法就能記住,實際上是同樣的道理。在智能客服中,這種歷史是Context-Response(背景-回應)的組合。

  • 高頻語句索引,這種就比較廣泛,而且在某寶客服經(jīng)??梢钥匆?,通常來自于固定場景固定邏輯的地方,這一套語句很簡單也能夠復用到其他的地方,通常并不是最優(yōu)解,只是用來兜底。例如以下的內(nèi)容:


“親,感謝你的支持”

“親,比心”

“親,之后多多光顧我們店哦”


第二層召回層第一種:規(guī)則召回

這點往往是最重要的,需要業(yè)務上的工程師根據(jù)當下的時事,熱點等信息構(gòu)建規(guī)則化的召回,例如有一條鏈路專門是用來召回和世界杯相關(guān)的文本,就需要放在這里。

第二層召回層第二種:文本召回

在做文本召回的時候,勢必會遇到對話系統(tǒng)的常見問題,顧短期還是顧長期?一個常見的對話場景,可能會發(fā)生幾十輪,那么此時召回的內(nèi)容應該是長期對話歷史做召回,還是短期歷史做召回,并沒有一個好的答案。所以簡單的做法是把兩種思想合并起來一起使用。或者,可以考慮從長期的對話中,處理出比較重要的信息,刪減掉無用的話語。

第二層召回層第二種:向量召回

和文本召回相比,向量召回往往帶來更差的結(jié)果,為什么這么講?很多例子都是有了一兩個字的改變,但是語義發(fā)生巨大變化,但是向量召回并不會發(fā)現(xiàn)的。舉個例子來說:“我們的產(chǎn)品下次會更優(yōu)秀” 和 “我們下次會做的更優(yōu)秀”,前后只差一個單詞產(chǎn)品,兩句話在語義上就有了很大的差別,前者在描述產(chǎn)品更好,而后者在說服務態(tài)度更好,但是對于向量召回來說,可不是那么容易發(fā)現(xiàn)的事情。

在向量召回的時候,有兩種需要選擇,其一是Context-Context召回,其二是Context-Response 召回,前者的含義是通過當前文本來召回相似的文本,再從這個文本里找出對應的Response。后者的含義是從當前上下文來召回答案,這種在邏輯上不是很通順,讀者可以自行思考一下。

接下來,我們應該使用什么樣的模型學習到這種embedding表示呢?實際上在這種業(yè)務場景中,我們的數(shù)據(jù)是特殊的,每一個子數(shù)據(jù)都是由{Context, Response}來構(gòu)成的,也就是存在一一對應的關(guān)系,那這種時候,我們可以使用dual encoder(雙塔模型)來對分別對Context,Response進行編碼,

圖片

圖:Dual Encoder示意圖,其中Source-Target即為文中的Context-Response,共享一個模型的參數(shù)

在選擇好模型之后,就是對于正負樣本的定義,其中正樣本就是高質(zhì)量的Context-Response對,而負樣本是由隨機替換掉Response來制作的。而如何制作高質(zhì)量的負樣本也是學術(shù)界的一個重要問題,也即 “高質(zhì)量負樣本”,其實可以通過文本召回的方式,從Context找到相似的Context_a,再找到Context_a 對應的Response_a 即可,這就能達到我們對于高質(zhì)量的要求!

第二層召回層第三種:標簽召回

標簽召回實際上是最弱的一種,為什么這么說呢?

  • 首先標簽是粗粒度的,我們在形容對話的時候,標簽肯定是粗粒度的,例如:“護膚品”,“客服銷售”等標簽,如果召回的文本是關(guān)于用戶對于“護膚品”“客服銷售”的投訴呢,那結(jié)果肯定是差的。

  • 標簽的增加和修改,需要人為的維護,人力的成本還是很大的,在成千萬上億的數(shù)據(jù)集中不會一個一個的去標注的。

第三層排序?qū)拥谝环N:規(guī)則排序

和召回層第一種類似,如果能走規(guī)則,肯定是規(guī)則優(yōu)先,因為里面含有了算法工程師對于業(yè)務的深刻理解。

第三層排序?qū)拥诙N:相關(guān)性排序

那么船長問讀者一個問題?相關(guān)性從何而來?我們有很多的正樣本,也會有隨機構(gòu)成的負樣本,在這個時候,我們的相關(guān)性是否可以通過模型來得到呢?答案是可以的。那么,仍舊是之前的雙塔模型嗎?答案是否定的,雙胎模型實際上在本質(zhì)上,Context-Response的信息交互還是不夠,需要把Context和Response當做一個輸入,這種情況會有好的效果:

圖片

圖:預訓練模型框架

那么接下來的問題是,如何做預訓練任務呢?我們的目標是什么呢?在工業(yè)界中,向量化表示勢必要隨著業(yè)務的數(shù)據(jù)變化而變化,例如BERT是利用百科知識來訓練的,但是應用場景是在法律領(lǐng)域,這種時候我們希望不同的法律向量化表示應該盡可能的遠才可以。那就需要使用大量的法律文本來做預訓練,改變之前潛在的向量化分布。我們按照下圖舉了一個可視化的例子,其中每一種顏色代表了一個領(lǐng)域的word embedding二維可視化,可以看出,在微調(diào)前我們各個領(lǐng)域都是混合在一起的,在利用法律,金融等領(lǐng)域數(shù)據(jù)集微調(diào)之后,各個領(lǐng)域的embedding空間回逐漸的拆分開。

圖片

圖:各個領(lǐng)域embedding進行微調(diào)之前

圖片

圖:各個領(lǐng)域embedding進行微調(diào)之后

基于上文,應該嘗試如下的預訓練目標:

  • MLM(Masked Language Model),通過掩碼的方式,讓預訓練模型做類似于完形填空的任務。

  • NSP(Next Sentence Prediction),通過Context來判定,隨機給定的response是否是對應的pair對。

  • NSP(Next Sentence Generation),通過Context來生成Response。

  • NSS(Next Sentence Selection),通過Context來選擇哪一個是對應的response

第三層排序?qū)拥谌N:CTR排序

接下來就到了推薦系統(tǒng)常見的問題,CTR任務,這里有非常繁多的CTR模型,例如FM,DeepFM等等。我們這里可以借鑒CTR的模型來對最終的輸出進行排序。

圖片

圖:DeepFM模型

第四層應用層:

終于到了輸出的地方,在智能客服的場景中,實際上能用到的情況很多,例如商家在回復的時候,輸出一些他可供的選項,或者在商家打字的時候,預測出下一個單詞等等。本質(zhì)上會幫助商家更好地做出回答,而再往深了說,就是提升整個對話的效果,包括提升流暢性,降低客訴率等等。

這篇文章是給大家來分享在工業(yè)界的對話系統(tǒng),具體和學術(shù)界有什么不一樣的地方,可以看到工業(yè)界并不會用強化學習的方式來做決策,反而是利用召回+排序的方式來更好地做出決策,通過召回的方式從億萬的數(shù)據(jù)中篩選出幾千條,再做排序的流程篩選出最優(yōu)質(zhì)的回答。那么這次船長給大家留下一個問題:

  • 這種召回+排序的檢索方式能否作為真正意義上的智能化決策呢?

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多