精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

對話系統中的多路召回和排序

深度學習自然語言處理 ? 來源:CS的陋室 ? 作者:CS的陋室 ? 2022-12-07 11:05 ? 次閱讀

最近和一些和對話系統不太了解的朋友聊了一下,發現其實很多人會把對話系統誤解為一個簡單、單一的系統,然而實際上對話系統內部的結構可以很復雜,這個原因很多吧,可能被一些文章給誤導吧,其實一個比較成熟的對話系統,內部的結構和組件是可以很多的,比較突出的就是多路召回以及其對應的排序系統。這一期給大家介紹一下這兩個模塊。

工業界,可能會因為各種原因,我們需要采用多路召回的方式來處理對話系統,即分頭考慮多種答案的可能性,然后再篩選出最優的回答。這一期就給大家介紹多路召回和排序的來龍去脈,以及常見的解決方案。

多路召回的原因

上一期(心法利器[78] | 端到端任務的拆解設計)我們有提到,對于一個任務,如果比較復雜,我們是希望把任務進行拆解的,拆解之后各個擊破然后組裝回來,那么對于一個完整的對話系統也是如此,當然這也是它能被稱之為“系統”的理由,一般情況,我們會因為這些原因,把整個內容回復部分做拆解,形成多路召回:

回復內容的來源比較多樣。如一些問答類的,可能是問天氣、百科,這些資源的來源可能都不一樣,此時我們肯定是需要拆分多路召回逐個獲取的,甚至有些內容就是生成的,例如閑聊之類的。

不同內容的數據結構不同,要構造不同的存儲和檢索方案,例如結構化的內容,用mysql,文本檢索用ES,向量檢索可以用faiss,還有圖譜等。

有些可能是因為檢索內容和對象不同,例如QQ和QA匹配,例如改寫前后的匹配等。

一些回復需要特別的構造,如追問(你要問的是XXX嗎)、疑似問(你要問的問題是否在下面)、風控兜底(你說的這話不合適,對不起我還在學習)等。

因為很多原因,我們需要做多路召回,把多種不同內容、不同數據結構的資源,分路進行各自的召回,各自處理好后再排序。

多路的召回形式

由于上述原因,我們需要對對話系統進行多路召回,那么召回上,主要有哪些召回的鏈路呢。

檢索式

首先,是比較經典的檢索技術,這個其實對應的比較經典的檢索式對話,其實現在仍舊被廣泛使用,一些依賴數據、依賴知識背景的場景,這種檢索來找到合適的答案的方式是非常重要的,例如一些人物問答“魯迅的生卒年份”,客服場景“冰箱維修”,非常依賴檢索式,一般比較常用的檢索工具,有這些,大家可以根據實際情況進行選擇。當然,篇幅和時間原因,這里我只會提一些名詞,一些只是細節歡迎根據我提到的關鍵詞進行更加深入的學習。

對于結構化的知識,就是能形成關系表的那種,mysql是一個比較好的選擇,畢竟結構化查詢語言比較成熟,各種處理會比較簡單。

對于長文本、非結構化的檢索,技術上用的就是傳統搜索中的倒排索引,工具上,單機其實可以自己寫,也可以用,python寫個dict就可以了,具體的可以參考之前我寫的詞典匹配的這篇(把后面dict中的value改成長文本id即可),但是由于一般資源會比較多,所以更傾向于用分布式的方式,Elasticsearch是很好的選擇。

向量檢索,應該是現在比較潮流的玩法,在我們有一套比較好的向量的時候,就要做向量檢索,這個向量檢索的工具,單機推薦annoy,分布式推薦faiss,另外前面說的elasticseatch加上一些插件,如hnswlib也是可以用的。

另外還有一些更加前言的技術,例如知識圖譜,這個我具體沒有接觸,聽到比較多的是neo4j,其他的有熟悉這個的伙伴歡迎在評論區補充。

生成式

當然,除了經典的檢索式對話,還有大家比較喜歡聊起來的生成式,其實我的視角,工業界對生成式一直是比較謹慎的,主要原因有這么幾個:

生成式雖然非常直接,但是內容不可控,很多時候會有一些不太合適的回答,作為面向用戶的產品,可控性要求很高,例如一些不小心的涉黃涉暴,其實風險很高的,甚至有一些問句和答句分別看著很合適但是放一起就不合適的情況,雖然不多,但是一旦出現被封號下架沒了就很血虧了。

生成式其實也會有很多領域以來知識支撐,一旦沒有知識,是會出現“一本書正經的胡說八道”的情況。

寫到這,發現自己之前的對話系統系列文章寫過類似的文章,有關內容生成的,在這里:前沿重器[24] | 聊聊對話系統:內容輸出。

多輪

但說到這里,仍舊還有一種比較特殊的召回情況,需要說,就是多輪。多輪是一種對話系統一種特有的形式,另外這里會分強多輪和弱多輪,簡單解釋下:

強多輪是進入到一個比較狹窄的多輪通道,基本都會限制在這個對話鏈路里,一般是一些任務型的對話可能會這么做,例如定機票,多半需要將對話封閉起來做多輪的追問。一般無明確的打斷,都更傾向于封閉處理,不大會和其他鏈路一起排序。

弱多輪是做對話內容的信息繼承,在聊天過程可能會根據上輪信息給出進一步的回復,這種情況多半會比較寬松,通常都會參與和其他召回鏈路一起排序。

因此,如果是弱多輪,其實就是增加一個多輪的鏈路處理就好了,而對于強多輪,一般會增加一個打斷判斷,如果不打斷,就這一路多輪召回就好了,如果需要打斷,再讓位給其他鏈路即可。

值得注意的是,多輪只是一個對話系統里的特殊情況,多輪里面的內容,多半也逃不開檢索式和生成式這樣的形式。

多路召回下的排序

既然要分,后續肯定要合,多路召回對半就需要進行了排序。因為不同系統的不太一樣,所以簡單取一些情況簡單聊聊。

有用戶反饋

類似搜索和推薦系統,有些場景的推薦系統,是可以有用戶反饋的,例如一些客服系統之類的,用戶會給回復打分,例如“滿足”or“未滿足”,那就可以根據情況進行調整。既然有用戶的反饋,就可以開始利用起來,甚至是有些類似搜索的精排模型可以做。

因為不同系統中,用戶的反饋的占比、形式、可靠程度不同,采取的策略不太一樣,有些質量比較差或者比例比較低的,甚至直接拋棄,這個其實很考驗算法對現狀和自己手里方案的理解,因為資料看的還不太夠,我先不展開吧,后面有機會展開聊。我可以明確的是,直接套用搜索或者推薦那一套,很多時候是真不可行。

無用戶反饋

無用戶反饋往往是對話系統中最常見的情況,一般有這幾個原因:

產品原因,很多產品沒有明確的用戶回復,一般給了答案用戶就走了。

多答案的問題,一個提問可能有很多的回答方式,可能都是合理的,但用來做模型訓練也不好評估。

答案形式的豐富性,多種答案類型做統一表征存在困難,本身表征建模也不好做。

因此,大部分對話系統很難有用戶反饋和有監督的方式,這點真的得靠評測產品運營來做綜合評估然后來優化的,在多鏈路的合并時,往往是使用比較簡單的規則和簡單的認為評分進行分級排序,根據每個鏈路的質量、可靠性來進行綜合評估打分排序似乎是一個比較常規而且成本不高的方法。

這點不要以為非常罕見或者非常low,對于比較早起的搜索和排序系統,也是用的類似的方式來做綜合排序的,畢竟這個方式可靠簡單。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據結構
    +關注

    關注

    3

    文章

    573

    瀏覽量

    40093
  • 檢索
    +關注

    關注

    0

    文章

    26

    瀏覽量

    13147
  • 對話系統
    +關注

    關注

    0

    文章

    7

    瀏覽量

    2180

原文標題:對話系統中的多路召回和排序

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    時間復雜度為 O(n^2) 的排序算法

    作者:京東保險 王奕龍 對于小規模數據,我們可以選用時間復雜度為 O(n2) 的排序算法。因為時間復雜度并不代表實際代碼的執行時間,它省去了低階、系數和常數,僅代表的增長趨勢,所以在小規模數據情況下
    的頭像 發表于 10-19 16:31 ?1033次閱讀
    時間復雜度為 O(n^2) 的<b class='flag-5'>排序</b>算法

    TPS54120排序和跟蹤

    電子發燒友網站提供《TPS54120排序和跟蹤.pdf》資料免費下載
    發表于 10-10 10:54 ?0次下載
    TPS54120<b class='flag-5'>排序</b>和跟蹤

    多路復用器應用的防護

    電子發燒友網站提供《多路復用器應用的防護.pdf》資料免費下載
    發表于 09-21 10:47 ?0次下載
    <b class='flag-5'>多路</b>復用器應用<b class='flag-5'>中</b>的防護

    手把手教你排序算法怎么寫

    新記錄插入。以{3,0,9,8,2}無序表按升序排列為例,有序表是一個虛擬的順序表:1.插入排序剛開始,有序表沒有數據,因此直接插入3即可。{3}2.插入0的時候要
    的頭像 發表于 06-04 08:03 ?644次閱讀
    手把手教你<b class='flag-5'>排序</b>算法怎么寫

    頻分多路復用和時分多路復用的區別有哪些

    頻分多路復用(FDM)和時分多路復用(TDM)是兩種主要的多路復用技術,它們在通信系統扮演著至關重要的角色。
    的頭像 發表于 05-07 15:24 ?2256次閱讀

    具有先進排序和輸出裕度的輸入同步降壓控制器TPS40101數據表

    電子發燒友網站提供《具有先進排序和輸出裕度的輸入同步降壓控制器TPS40101數據表.pdf》資料免費下載
    發表于 04-22 10:26 ?0次下載
    具有先進<b class='flag-5'>排序</b>和輸出裕度的<b class='flag-5'>中</b>輸入同步降壓控制器TPS40101數據表

    用FPGA實現雙調排序的方法(2)

    典型的排序算法包括冒泡排序、選擇排序、插入排序、歸并排序、快速排序、希爾
    的頭像 發表于 03-21 10:28 ?604次閱讀
    用FPGA實現雙調<b class='flag-5'>排序</b>的方法(2)

    FPGA實現雙調排序算法的探索與實踐

    雙調排序(BitonicSort)是數據獨立(Data-independent)的排序算法,即比較順序與數據無關,特別適合并行執行。在了解雙調排序算法之前,我們先來看看什么是雙調序列。
    發表于 03-14 09:50 ?564次閱讀
    FPGA實現雙調<b class='flag-5'>排序</b>算法的探索與實踐

    2023年國汽車與消費品召回情況

    在汽車召回部分,2023年新能源汽車受到關注,有72次因缺陷被召回,涉及車輛數達到160.3萬輛,占全年召回總體量的23.8%。這一數字較去年同期增長了32.3%,達到了新的歷史高峰。
    的頭像 發表于 03-13 10:16 ?502次閱讀

    想聽聽48和大對數光纜的排序

    48芯光纜和大對數光纜都是光纜的一種,它們的區別在于芯數不同。48芯光纜指的是光纜包含48根光纖,而大對數光纜則是指光纜芯數超過了48芯。 在實際的光纜應用,不同芯數的光纜需要
    的頭像 發表于 03-12 10:44 ?555次閱讀

    Waymo自愿召回444輛自動駕駛汽車 L4的自動駕駛還有很多路要走

    近日,谷歌旗下的自動駕駛部門Waymo自愿召回了444輛自動駕駛汽車,原因是其軟件可能無法準確預測拖曳車輛的運動軌跡
    的頭像 發表于 02-26 10:22 ?1143次閱讀
    Waymo自愿<b class='flag-5'>召回</b>444輛自動駕駛汽車 L4的自動駕駛還有很<b class='flag-5'>多路</b>要走

    C語言實現經典排序算法概覽

    冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。
    的頭像 發表于 02-25 12:27 ?423次閱讀
    C語言實現經典<b class='flag-5'>排序</b>算法概覽

    基于 PCIe 的多路視頻采集與顯示子系統介紹

    電子發燒友網站提供《基于 PCIe 的多路視頻采集與顯示子系統介紹.pdf》資料免費下載
    發表于 02-23 09:47 ?0次下載

    十大排序算法總結

    排序算法是最經典的算法知識。因為其實現代碼短,應該廣,在面試中經常會問到排序算法及其相關的問題。一般在面試中最常考的是快速排序和歸并排序等基本的排序
    的頭像 發表于 12-20 10:39 ?1082次閱讀

    AD7685使用在多路切換系統的,總采樣最大頻率到底能達到多少呢?

    使用AD7685BRMZ 用在一個多路切換的采集系統,Vref=4.096V。如果使用分時切換采集方式,為了保證信號具有充足的建立時間(按切換的兩通道信號為最大壓差考慮),總的采集頻率最大
    發表于 12-13 09:28