• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 資訊 > 文章精選 >
     首頁(yè) > 資訊 > 文章精選 >

    揭秘!機器人和你對話(huà)時(shí)在想什么?

    2019-08-19 09:43:56   作者:空崖   來(lái)源:阿里技術(shù)微信公眾號   評論:0  點(diǎn)擊:


     
      阿里妹導讀:為什么聊天機器人越來(lái)越普及?聊天機器人不僅可以節省時(shí)間,提升效率,還能一天24小時(shí)提供服務(wù),更是可以減少誤差。聊天機器人背后的問(wèn)題原理是什么?效率如何提升?就是今天我們要了解的內容。本篇內容已被收錄于A(yíng)CL2019,希望對你有所幫助。
      本篇內容已被ACL2019收錄“Simple and Effective Text Matching with Richer Alignment Features”。
      1.背景
      在Chatbot整體解決方案中,既有面向任務(wù)型的taskbot(諸如訂機票、查天氣等),也有更偏向知識問(wèn)答的qabot,而在客服場(chǎng)景下,最基礎的類(lèi)型也是這類(lèi)。如果從知識庫的形式來(lái)區分qabot,可以有基于「文檔」的doc-qabot、基于「知識圖譜」的kg-qabot、基于「問(wèn)答對」的faq-qabot等。我們這里重點(diǎn)關(guān)注的是最后一種faq-qabot(也簡(jiǎn)稱(chēng)faqbot),這種形式的方案對用戶(hù)而言易理解易維護,也是目前chatbot解決方案中不可缺的一部分。
      faqbot就是將query匹配到一條「問(wèn)答對」上,從技術(shù)的角度看,有兩大類(lèi)方法,一是textclassification,二是textmatching,它們各有適合的場(chǎng)景,前者適合咨詢(xún)量大且比較穩定的faq,后者適合長(cháng)尾或時(shí)常變化的faq。
      店小蜜是我們提供給阿里平臺商家的一套智能客服解決方案。在店小蜜中,基于Faq的問(wèn)答是個(gè)很基礎的部分,我們在這個(gè)領(lǐng)域,在文本分類(lèi)和文本匹配上進(jìn)行了各方面的研究和實(shí)踐,在本篇中重點(diǎn)對文本匹配的基礎模型進(jìn)行介紹。
      「文本匹配」是NLP方向的一個(gè)重要研究領(lǐng)域,有著(zhù)悠久的歷史,很多NLP任務(wù)都與此相關(guān),比如natual language inference、parahparase identification、answer selection等,都可以歸結成「文本匹配」問(wèn)題。
      有很多人研究這個(gè)課題,當前優(yōu)秀的匹配模型有哪些?這些模型有什么異同?這些模型存在哪些問(wèn)題?這些都是我們展開(kāi)這個(gè)項目需要先分析和回答的問(wèn)題。我們通過(guò)分析SNLI榜單上的模型,有幾個(gè)結論:
    • 優(yōu)秀的匹配模型都可以歸納成embed-encode-interacte-aggregate-predict五個(gè)步驟,interact部分主要是做inter-sentence alignment;
    • 在interact步驟中的對齊操作,設計會(huì )比較復雜;而且很多模型只有一次interact步驟;
    • 也有些更深的模型結構,會(huì )做多次的inter-sentence alignment,但因為較深的模型面臨著(zhù)梯度消失、難以訓練的問(wèn)題;
    • 不管是參數量還是響應時(shí)間,支撐像店小蜜這樣對實(shí)時(shí)性能要求比較高的場(chǎng)景,都不是很理想。
      所以我們在設計的時(shí)候,要求我們的模型在更少的參數量、更簡(jiǎn)潔的模型結構、更少的inferencecost,保證更容易訓練、更適合部署到生產(chǎn)環(huán)境,在這幾個(gè)前提下,我們也希望能借鑒深層網(wǎng)絡(luò )的優(yōu)勢,讓我們可以很方便地加深我們的網(wǎng)絡(luò )層次,讓模型有更強的表達能力。
      2.模型
      我們通過(guò)對學(xué)術(shù)界提出的各種模型,諸如Decomposable Attention Model、CAFE、DIIN等,歸納總結,一個(gè)匹配模型的整體框架基本上有Embedding Layer、Encoder Layer、Interaction Layer、Aggregation Layer和Prediction Layer五層,只是每一層都有不同的設計,我們實(shí)現一種可插拔的匹配模型框架,每層都有一些典型的實(shí)現。
      為了增強我們模型框架的表達能力,我們將Encoder+Interaction Layer打包成一個(gè)Block,通過(guò)堆疊多個(gè)Block,通過(guò)多次的inter-sentence alignment,可以讓我們的模型更充分地理解兩句文本之間的匹配關(guān)系。
      我們基于這種框架,通過(guò)大量試驗得到一個(gè)模型結構RE2,可以在各類(lèi)公開(kāi)數據集、和我們自己的業(yè)務(wù)數據上都能得到最優(yōu)的結果,如下圖所示。
      RE2包括有N個(gè)Block,多個(gè)Block的參數完全獨立。在每個(gè)Block內有一個(gè)encoder產(chǎn)出contextual representation,然后將encoder的輸入和輸出拼在一起,做inter-sentence alignment,之后通過(guò)fusion得到Block的輸出。第i個(gè)Block的輸出,會(huì )通過(guò)Augmented Residual Connection的方式與這個(gè)Block的輸入進(jìn)行融合,作為第i+1個(gè)Block的輸入。
      下面我們詳細介紹每個(gè)部分:
      2.1Augmented Residual Connection
      連續的Block之間用Augmented Residual Connection來(lái)連接,我們將第n個(gè)Block第i個(gè)位置的輸出記作:是個(gè)全零的向量。
      第一個(gè)Block的輸入為,也就是Embeddling Layer的輸出,在A(yíng)ugmented Residual Connection中,第n個(gè)block的輸入為:
      其中[;]表示拼接操作;
      在interaction layer的輸入中,存在三種信息,一是originalpoint-wise information,在這里就是原始的詞向量,在每個(gè)Block中都會(huì )使用這份信息;二是通過(guò)encoder編碼得到的contextual information;三是之前兩層Block經(jīng)過(guò)對齊加工過(guò)的信息。這三份信息,對最終的結果都有不可替代的作用,在試驗分析中會(huì )展顯這一點(diǎn)。在我們這里encoder使用兩層CNN(SAME padding)。
      2.2Alignment Layer
      這塊我們使用Decomposable Attention Model(Parikhetal。,2016)的對齊機制:
      2.3Fusion Layer
      這塊我們參考CAFE中對concat、multiply、sub三個(gè)操作分別通過(guò)FM計算三個(gè)scalar特征值,我們針對這三個(gè)操作,用獨立的三個(gè)全連接網(wǎng)絡(luò )計算三個(gè)vector特征,之后將三個(gè)vector拼接并用進(jìn)行projection。
      2.4Prediction Layer
      輸出層就比較常規,針對文本相似度匹配這類(lèi)任務(wù),我們使用對稱(chēng)的形式:
      針對文本蘊含、問(wèn)答匹配這類(lèi)任務(wù),我們使用
      其中H表示多層全聯(lián)接網(wǎng)絡(luò );
      3.試驗
      3.1數據集
      要驗證模型效果,我們選擇三類(lèi)NLP任務(wù),Nature Language Inference、Paraphrase Identification、Question Answering,選用SNLI、MultiNLI、SciTail、Quora Question Pair、Wikiqa這樣幾份公開(kāi)數據集。評估指標,前兩個(gè)任務(wù)選用Acc,后一個(gè)任務(wù)選擇MAP/MRR。
      3.2實(shí)現細節
      我們用Tensorflow實(shí)現模型,用NvidiaP100GPU訓練模型,英文數據集使用NLTK分詞并統一轉小寫(xiě)、去除所有標點(diǎn)。序列長(cháng)度不做限制,每個(gè)batch中的序列統一pad到這個(gè)batch中最長(cháng)序列長(cháng)度,詞向量選用840B-300dGlove向量,在訓練過(guò)程中fix住,所有OOV詞初始化為0向量,訓練中不更新這些參數。所有其他參數使用Heinitialization,并用Weightnormalization歸一化;每個(gè)卷積層或全聯(lián)接層之后,有dropout層,keeprate設為0.8;輸出層是兩層前饋網(wǎng)絡(luò );Block數量在1-5之間調參。
      在這幾份公開(kāi)數據集上,隱層大小設為150;激活函數使用GeLU激活函數。優(yōu)化算法選用Adam,學(xué)習率先線(xiàn)性warmup然后指數方式衰減,初始學(xué)習率在1e-4~3e-3之間調參;batchsize在64~512之間調參。
      3.3結果
      我們在這幾份公開(kāi)數據集上,均取得state-of-art的結果(不使用BERT的情況下):
      同樣這個(gè)模型性能上也有很良好的表現,參數量和inferencespeed都有很強的競爭力,從而可以在我們店小蜜這樣的工業(yè)場(chǎng)景中得到廣泛應用,給我們匹配準確率這樣的業(yè)務(wù)指標上帶來(lái)顯著(zhù)的提升。
      3.4結果分析
      ★3.4.1Ablation study
      我們構造了四個(gè)baseline模型,分別是:
    • 1)w/oenc-in:alignment layer只使用encoder的輸出;
    • 2)w/oresidual:去除所有block之間的residual連接;
    • 3)w/oenc-out:去除所有encoder,alignment layer只使用block的輸入;
    • 4)highway:使用highway網(wǎng)絡(luò )融合encoder的輸入和輸出,而不是直接拼接。
      在SNLI上得到的結果如圖所示。通過(guò)1)3)和完整模型的對比,我們發(fā)現alignmentlayer只使用encoder的輸出或只使用encoder的輸入,都會(huì )得到很差的結果,說(shuō)明原始的詞向量信息、之前Block產(chǎn)出的align信息、當前Block中encoder產(chǎn)出的上下文信息,對最終的結果都是缺一不可的。通過(guò)2)和完整模型的對比,我們發(fā)現Block之間residual連接發(fā)揮了作用;而4)和完整模型的對比顯示,我們直接拼接的方式是個(gè)更優(yōu)解。
      ★3.4.2Block數量的影響
      如上圖所示,通過(guò)Augmented Residual Connection連接的網(wǎng)絡(luò ),更容易在深層網(wǎng)絡(luò )中生效,能夠支撐更深的網(wǎng)絡(luò )層次,而其他baseline模型,在Block數量大于3時(shí),效果會(huì )有很明顯的下降,并不能支撐更深層模型的應用。
      ★3.4.3Occlusion sensitivity
      前面講過(guò),在alignmentlayer的輸入中,其實(shí)是三類(lèi)信息的拼接:原始的詞向量信息、之前Block產(chǎn)出的align信息、當前Block中encoder產(chǎn)出的上下文信息,為了更好地理解這三份信息對最終結果的影響,我們參照機器視覺(jué)中相關(guān)工作,進(jìn)行了Occlusion sensitivity的分析。我們在SNLI-dev數據上,使用包含3個(gè)Block的一個(gè)RE2模型,分別將某層Block中alignmentlayer輸入特征的某部分mask成0向量,然后觀(guān)察在entailment、neutral、contradiction三個(gè)類(lèi)別上的準確率變化:
      可以得到幾個(gè)分析結論:
    • mask原始的詞向量信息,會(huì )對neutral和contradiction類(lèi)的識別帶來(lái)比較大的損失,說(shuō)明原始詞向量信息在判斷兩個(gè)句子差異性上發(fā)揮著(zhù)重要作用;
    • mask之前Block產(chǎn)出的alignment信息,會(huì )對neutral和contradiction類(lèi)帶來(lái)比較大的影響,尤其是最后一層Block的這部分信息對最終的結果影響最大,說(shuō)明residualconnection使得當前Block能更準確地關(guān)注應該關(guān)注的部分;
    • mask住Encoder的輸出結果,對entailment的影響更大,因為encoder是對phrase-level的語(yǔ)義進(jìn)行建模,encoder的產(chǎn)出更有助于entailment的判斷;
      ★3.4.4 Casestudy
      我們選了一個(gè)具體的case分析多層Block的作用。
      這個(gè)case中, 兩句話(huà)分別是“A green bike is parked next to a door”“The bike is chained to the door”。在第一層Block中,是詞匯/短語(yǔ)級別的對齊, 而“parked next to”和“chained to”之間只有很弱的連接,而在第三層Block中,可以看到兩者已經(jīng)對齊,從而模型可以根據“parked next to”和“chained to”之間的關(guān)系,對兩句話(huà)整體的語(yǔ)義關(guān)系做出判斷。從中也可以看到,隨著(zhù)Block的遞增,每層Block的alignment關(guān)注的信息都隨之進(jìn)行著(zhù)調整,通過(guò)不止一次的alignment,可以讓模型更好地理解兩句話(huà)之間的語(yǔ)義關(guān)系。
      4.業(yè)務(wù)結果
      在店小蜜中,自定義知識庫是由商家維護,我們提供知識定位方案;在店小蜜無(wú)法給出準確回復時(shí),我們會(huì )推薦相關(guān)知識,這里的文本匹配模型,也主要用在店小蜜的這兩個(gè)業(yè)務(wù)模塊。我們重點(diǎn)優(yōu)化了7個(gè)大類(lèi)行業(yè)模型(服飾、美妝洗護、鞋、電器、茶酒零食、母嬰、數碼)、一個(gè)大盤(pán)基礎模型和相關(guān)知識推薦模型。在保證覆蓋率的情況下,7類(lèi)主營(yíng)行業(yè)準確率從不到80%提升到89.5%,大盤(pán)基礎模型準確率提升到84%,知識推薦有效點(diǎn)擊從14%左右提升到19.5%。
      店小蜜自定義知識庫后臺配置:
      店小蜜旺旺咨詢(xún)示例:
      總結展望
      我們在工業(yè)場(chǎng)景下,實(shí)現了一個(gè)簡(jiǎn)潔同時(shí)具有很強表達能力的模型框架,并在公開(kāi)數據集和業(yè)務(wù)數據集上取得很好的結果。
      這種「通用」的語(yǔ)義匹配模型,已經(jīng)對當前的業(yè)務(wù)帶來(lái)很大的提升,但是,針對店小蜜這樣的業(yè)務(wù)場(chǎng)景,是否在不同行業(yè)不同場(chǎng)景下可以得到更合適更有特色的解決方案,比如融合進(jìn)商品知識、活動(dòng)知識等外部知識做文本匹配。
      怎么進(jìn)一步完善FaqBot的技術(shù)體系,比如在文本分類(lèi)、Fewshot分類(lèi)等方向,也是我們團隊的一個(gè)重點(diǎn)工作。
      隨著(zhù)BERT模型的出現,NLP各項任務(wù)都達到了新的SOTA。然而B(niǎo)ERT過(guò)于龐大,對計算資源的需求很高,因此我們想利用Teacher-Student框架將BERT模型的能力遷移到RE2模型上。
      最后,我們是達摩院-智能服務(wù)-小蜜FAQ算法團隊,如果想了解更多最新進(jìn)展,歡迎郵件聯(lián)系gaoxing。gx@alibaba-inc.com,也歡迎業(yè)界優(yōu)秀青年加入我們,用AI重塑服務(wù)~
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    CTI論壇會(huì )員企業(yè)

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 蓬溪县| 宁远县| 定南县| 浙江省| 延边| 东安县| 甘孜县| 麦盖提县| 桑日县| 英吉沙县| 任丘市| 苏尼特左旗| 杭锦旗| 葫芦岛市| 连江县| 龙江县| 灌云县| 兴化市| 渭南市| 南充市| 溧阳市| 新营市| 万盛区| 建湖县| 贞丰县| 固始县| 泽普县| 岑溪市| 滁州市| 江达县| 抚顺市| 通城县| 会泽县| 琼中| 和静县| 弥勒县| 曲麻莱县| 瓦房店市| 黄浦区| 灵璧县| 武安市| http://444 http://444 http://444 http://444 http://444 http://444