中文字幕无码久久精品,13—14同岁无码A片,99热门精品一区二区三区无码,菠萝菠萝蜜在线观看视频高清1

您當(dāng)前的位置是:  首頁 > 新聞 > 文章精選 >
 首頁 > 新聞 > 文章精選 >

Chatopera多輪對(duì)話提升自動(dòng)化流程服務(wù)

2018-08-07 13:42:28   作者:   來源:CTI論壇   評(píng)論:0  點(diǎn)擊:


王海良老師
 
本文根據(jù)Chatopera聯(lián)合創(chuàng)始人&CEO王海良老師在DataFunTalk人工智能技術(shù)沙龍“自然語言處理技術(shù)應(yīng)用實(shí)踐”中分享的《多輪對(duì)話提升自動(dòng)化流程服務(wù)》編輯整理而成,在未改變?cè)獾幕A(chǔ)上稍做修改。
多輪對(duì)話提供自動(dòng)化流程服務(wù)
今天主要分享兩部分,一部分是技術(shù)分享,第二部分是介紹一下Chatopera提供的企業(yè)聊天機(jī)器人應(yīng)用解決方案。目前開發(fā)企業(yè)聊天機(jī)器人很麻煩,需要用大量的數(shù)據(jù),依賴機(jī)器學(xué)習(xí)和熟悉自然語言處理的專家,成本比較高,我們能提供快速落地、穩(wěn)定的、低成本實(shí)現(xiàn)聊天機(jī)器人的方案,下圖是我們的解決方案。
Chatopera面向企業(yè)業(yè)務(wù)人員發(fā)布了多輪對(duì)話設(shè)計(jì)器,用于設(shè)計(jì)滿足企業(yè)需求的聊天機(jī)器人,從多輪對(duì)話設(shè)計(jì)器中可以導(dǎo)出對(duì)話應(yīng)用。對(duì)話應(yīng)用可以導(dǎo)入到智能問答引擎中,智能問答引擎是面向企業(yè)IT人員的,它可以管理聊天機(jī)器人,包括多輪對(duì)話、知識(shí)庫、意圖識(shí)別和監(jiān)控接口使用情況。智能問答引擎暴露接口對(duì)外集成,也包含基于Web的管理控制臺(tái),這套方案可以支持將企業(yè)內(nèi)部流程和在客服、營(yíng)銷過程中的話術(shù)轉(zhuǎn)化為聊天服務(wù),接入到企業(yè)微信、微信公眾號(hào)等,從而提供企業(yè)的智能化和自動(dòng)化。閑話不多說了,下面開始分享一些自然語言處理的知識(shí)。
語言模型是計(jì)算一個(gè)句子出現(xiàn)的可能性,比如我問機(jī)器人一個(gè)問題,那么它的不同回答出現(xiàn)的可能性是什么樣的。自然語言處理經(jīng)歷過很多階段,不同發(fā)展時(shí)期有不同的特點(diǎn),經(jīng)歷過經(jīng)驗(yàn)主義主導(dǎo)和理性主義主導(dǎo)的時(shí)期,前者主要是語言學(xué)家推出的一些方法,后者則大量使用統(tǒng)計(jì)學(xué)方法。自然語言處理又應(yīng)用于很多任務(wù)中,比如機(jī)器翻譯、信息檢索和閱讀理解,近年來取得重大突破的主要是基于統(tǒng)計(jì)學(xué)方法的。用大量的數(shù)據(jù)統(tǒng)計(jì)出語言的特征,從中找到規(guī)律,從而對(duì)給定輸入預(yù)測(cè)出結(jié)果。第一位提出用數(shù)學(xué)解決語言問題的是香儂,他是信息論的開創(chuàng)者,也是人工智能之父,F(xiàn)在很多用于人工智能的方法更多的是來源于通信領(lǐng)域,比如最大熵、最大似然都來自于信息論。
檢驗(yàn)一個(gè)語言模型的好壞是通過“困惑度”來衡量,就是你說了一個(gè)字,下一個(gè)字有幾種可能,可能數(shù)越少說明語言模型越準(zhǔn)確。描述一個(gè)語言模型的格式常用ARPA,很多工具都支持這種格式,用很大的語料訓(xùn)練形成一個(gè)文件,文件帶有N-Grams的token列表,第一列是token,第二列是它出現(xiàn)的概率,通常是以Log10函數(shù)換算后的結(jié)果,第三列是backoff加權(quán),主要用來平滑。計(jì)算一句話出現(xiàn)的可能性用途有很多,比如糾錯(cuò)中看那個(gè)字是錯(cuò)誤的。公式7就是具體計(jì)算一句話可能性的,它將目標(biāo)分成兩個(gè)部分,然后分別求,右半部分是對(duì)應(yīng)的backoff權(quán)值,如果它不存在,就使用1.0作為默認(rèn)值,左半部分如果在語言模型中也不存在,就迭代計(jì)算。
如果解決一個(gè)翻譯任務(wù),就可以用歷史數(shù)據(jù)去訓(xùn)練模型,我們的目的是得到一個(gè)函數(shù),通過它預(yù)測(cè)未來輸入的句子的翻譯結(jié)果。我們不能知道完整的特征空間,但是基于大數(shù)定理,我們認(rèn)為在訓(xùn)練數(shù)據(jù)很大的情況下,訓(xùn)練后的模型與完整特征空間是一致的,這就是用已知數(shù)據(jù)去擬合完整的特征空間,利用數(shù)學(xué)原理,我們能得到的解不一定是最優(yōu)解,但可以保證是局部的最優(yōu)。最大熵原理是指導(dǎo)這個(gè)求解過程的重要思想,它的核心就是對(duì)未出現(xiàn)的事件,認(rèn)為是等可能的,這樣保證熵最大。因?yàn)殪卦龆烧J(rèn)為系統(tǒng)總是朝著最無序,最混亂的方向發(fā)展,那么保證熵最大,可以最接近真實(shí)情況。上圖可以用來描述最大熵模型,首先定義計(jì)算熵的公式,然后目標(biāo)是最小化它的對(duì)偶問題(公式8),然后描述它的限制條件,限制條件為若干特征函數(shù),特征函數(shù)的構(gòu)造一般是輸出值為0或1的函數(shù),再一個(gè)條件就是對(duì)于一個(gè)輸入x,各種輸出的概率和是1。然后將目標(biāo)函數(shù)和限制條件通過拉格朗日乘子法建立方程組,對(duì)每個(gè)方程求偏導(dǎo),進(jìn)行求解。這是一個(gè)凸優(yōu)化問題。
中文分詞、詞性標(biāo)注、命名實(shí)體識(shí)別是自然語言處理中的“三姐妹”,是其它任務(wù)的基礎(chǔ)。中文分詞這些年來出現(xiàn)了很多方法,在九幾年的時(shí)候主要通過字典和人為指定的規(guī)則完成,比如MMSEG算法,提出語素自由度概念,前向或后向的算各種分詞情況下的分?jǐn)?shù),然后確定最優(yōu)解。2000年以后,多用機(jī)器學(xué)習(xí)算法,準(zhǔn)確率也大幅提升,解決了識(shí)別新詞等困難,有些分詞器準(zhǔn)確率能達(dá)到96%以上。隱馬爾可夫模型是很經(jīng)典的模型,也很簡(jiǎn)單,很多分詞器基于它實(shí)現(xiàn)。使用隱馬爾可夫模型可以解決三類問題:
  1. 概率計(jì)算問題:計(jì)算可觀測(cè)序列出現(xiàn)的概率;
  2. 預(yù)測(cè)問題:根據(jù)可觀測(cè)序列找到最有可能的隱藏狀態(tài)序列;
  3. 學(xué)習(xí)問題:估計(jì)隱馬爾可夫模型的參數(shù)。
隱馬爾可夫模型包含五個(gè)參數(shù):不可觀測(cè)的狀態(tài),可觀測(cè)的觀測(cè)序列,初始狀態(tài)概率向量,觀測(cè)概率矩陣和狀態(tài)轉(zhuǎn)移概率矩陣。在中文分詞中,由字構(gòu)詞法就是將狀態(tài)分為(B,M,E,S),它們分別代表一個(gè)字出現(xiàn)在詞匯的開始、中間、結(jié)尾或獨(dú)立成詞。近年來,基于條件隨機(jī)場(chǎng)的分詞效果超過了隱馬爾可夫,主要是因?yàn)闂l件隨機(jī)場(chǎng)能更充分的利用一個(gè)字的上下文關(guān)系,能更好的描述序列化任務(wù),因?yàn)殡[馬設(shè)定了比較強(qiáng)的依賴,只是利用了前一個(gè)字。
在很多自然語言處理任務(wù)中,比如搜索、摘要和關(guān)鍵詞提取都與相似度計(jì)算關(guān)系很大,尤其是兩個(gè)句子和兩個(gè)詞之間的相似度。目前基于詞向量的相似度計(jì)算用的比較多的是Word2vec,它的網(wǎng)絡(luò)設(shè)計(jì)是很簡(jiǎn)單的,比如C-BOW模型,就是利用前后詞去預(yù)測(cè)當(dāng)前詞。Synonyms是一個(gè)開源的可以用于計(jì)算相似度的庫,它融合了語義上的距離以及匹配,利用開源的算法和開放的wikidata數(shù)據(jù)制作的。
https://github.com/huyingxi/Synonyms
在最近受到了一些關(guān)注,在Github上,star數(shù)量在穩(wěn)定增長(zhǎng),我是這個(gè)項(xiàng)目的作者之一,歡迎大家使用和提Issue。
Synonyms star 趨勢(shì)
常見的信息檢索系統(tǒng)就是基于倒排索引,在2011年以后,召回后進(jìn)行排序時(shí),又多用深度學(xué)習(xí)技術(shù),比如Pointwise, Pairwise等方法。
倒排索引是一個(gè)詞可能出現(xiàn)在很多文章中,那么就將詞建一個(gè)列表,然后出現(xiàn)它的文章都建一個(gè)id,然后這些文章按照遞增的順序關(guān)聯(lián)到這個(gè)詞上。在查詢時(shí),根據(jù)不同條件得到文章集合,使用歸并算法輸出。
Apache Lucene是幫助實(shí)現(xiàn)信息檢索系統(tǒng)的開源項(xiàng)目,它的query語法很豐富,性能也很出眾。Lucene的查詢語法也給Chatopera團(tuán)隊(duì)實(shí)現(xiàn)聊天機(jī)器人的對(duì)話引擎很大的啟發(fā)。另外在搜索時(shí),Lucene也支持使用近義詞,通過簡(jiǎn)單擴(kuò)展、簡(jiǎn)單收縮、簡(jiǎn)單映射和姻親擴(kuò)展讓檢索更智能。
另外一個(gè)知名開源項(xiàng)目 - Elasticsearch也是面向企業(yè)快速搭建信息檢索系統(tǒng)的,是實(shí)現(xiàn)搜索引擎的非常棒的項(xiàng)目,它的文檔相關(guān)度計(jì)算如上圖,它不但使用了TF-IDF、也支持對(duì)一個(gè)詞進(jìn)行加權(quán),還根據(jù)文檔長(zhǎng)度進(jìn)行規(guī)范化。
搜索引擎的評(píng)測(cè)標(biāo)準(zhǔn)有很多指標(biāo),比如MAP、MPP,基于混淆矩陣的準(zhǔn)確率和召回率是經(jīng)典的方法。準(zhǔn)確率和召回率是矛盾的,所以,常使用二者結(jié)合起來計(jì)算的F1值評(píng)價(jià),F(xiàn)1值越高,效果越好。
在自然語言處理中,另一個(gè)比較難的點(diǎn)就是分析詞與詞之間關(guān)系,在分詞后,一個(gè)詞在句子中充當(dāng)什么成分。依存關(guān)系分析依賴于分詞的結(jié)果,也依賴于詞性標(biāo)注的結(jié)果。標(biāo)注依存關(guān)系數(shù)據(jù)集也是很難的任務(wù),詞之間的關(guān)系會(huì)有幾十種。我個(gè)人認(rèn)為,從近幾年學(xué)術(shù)上的成果看,依存分析分析已經(jīng)處于從學(xué)術(shù)向?qū)嶋H應(yīng)用過渡的節(jié)點(diǎn)了,2017年在依存關(guān)系分析任務(wù)上,就出現(xiàn)了準(zhǔn)確率95%的論文。
目前,用于依存關(guān)系分析的流行算法有基于Transition-based和Graph-based兩種。Transition-based parser基本理念就是將待分析的句子放入buffer中,然后順序進(jìn)入parser,oracle是一個(gè)分類器,它會(huì)給出針對(duì)這個(gè)詞作出哪種行為,比如SHIFT, 右附加關(guān)系,左附加關(guān)系。下面是有關(guān)依存關(guān)系分析的兩個(gè)開源項(xiàng)目:
https://github.com/Samurais/text-dependency-parser # 經(jīng)典的transition-based parser
https://github.com/elikip/bist-parser # 使用神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)Oracle的Parser
以上內(nèi)容是自然語言處理的部分,但是本次分享的主題是“多輪對(duì)話提升自動(dòng)化流程服務(wù)”,目前信息檢索服務(wù)不斷向更智能的方向發(fā)展,搜索引擎公司越來越了解我們,但是在企業(yè)里,隨著業(yè)務(wù)的發(fā)展,它更需要的是通過多輪對(duì)話完成流程服務(wù),一問一答的服務(wù)解決不了太多問題。企業(yè)里對(duì)業(yè)務(wù)流程引擎有著極大的熱情,業(yè)務(wù)流程引擎也在幾十年的發(fā)展中,不斷標(biāo)準(zhǔn)化,完善化。比如當(dāng)前的標(biāo)準(zhǔn)BPMN2.0用50多個(gè)元素去幫助業(yè)務(wù)人員建模,編排流程服務(wù)。結(jié)合對(duì)業(yè)務(wù)流程引擎和自然語言處理的理解,Chatopera開發(fā)了對(duì)話引擎,并基于它開發(fā)了多輪對(duì)話設(shè)計(jì)器智能問答引擎
對(duì)話引擎是以自然語言為輸入的,描述對(duì)話的,它根據(jù)這些腳本,梳理規(guī)則,形成機(jī)器人的思維邏輯導(dǎo)圖。對(duì)話引擎也有自己的一套強(qiáng)大的語法規(guī)則,能讓機(jī)器人更加智能。
上圖是多輪對(duì)話設(shè)計(jì)器的對(duì)話編輯窗口,左側(cè)寫腳本,右腳上是實(shí)時(shí)渲染的機(jī)器人思維邏輯導(dǎo)圖,右下角是測(cè)試窗口。多輪對(duì)話設(shè)計(jì)器通過函數(shù)完成系統(tǒng)集成,比如在對(duì)話中依賴CRM或訂單管理數(shù)據(jù)等,函數(shù)腳本可以相互調(diào)用,這樣能滿足企業(yè)的各種業(yè)務(wù)需求,并且靈活調(diào)整。下面的鏈接提供一個(gè)具體的例子,怎么通過多輪對(duì)話設(shè)計(jì)器實(shí)現(xiàn)一個(gè)查詢天氣的機(jī)器人。
https://github.com/chatopera/conversation-sampleapp
在Chatopera,自然語言處理和機(jī)器學(xué)習(xí)主要應(yīng)用于幫助業(yè)務(wù)人員快速實(shí)現(xiàn)聊天機(jī)器人,比如客服人員輸入“訂單下單后怎么查看物流狀態(tài)”,那么這就話有哪些不同的說法,基于對(duì)話引擎,它的規(guī)則是什么樣的,它的回復(fù)有幾種可能。也就是,Chatopera利用先進(jìn)的技術(shù)幫助業(yè)務(wù)人員寫機(jī)器人的對(duì)話腳本。在Chatopera看來,這是企業(yè)實(shí)現(xiàn)聊天機(jī)器人過程中,一個(gè)重要的環(huán)節(jié)。那么,怎么做呢?一方面,要熟悉業(yè)務(wù)流程引擎的設(shè)計(jì)理念,比如流程狀態(tài)機(jī)、流程的編排、企業(yè)業(yè)務(wù)人員的工作習(xí)慣等,另外一方面,要對(duì)信息檢索、分詞、近義詞挖掘、依存關(guān)系和機(jī)器閱讀理解等自然語言處理任務(wù)不斷研究,持續(xù)創(chuàng)新。
今天分享的內(nèi)容包括一些經(jīng)典的、成熟的,同時(shí),這些方法也能啟發(fā)大家創(chuàng)新,比如分詞的技術(shù)應(yīng)用于機(jī)器閱讀理解、Lucene的查詢語法應(yīng)用于多輪對(duì)話技術(shù)等。期待于大家進(jìn)行更深度的交流,我今天的分享就到這里,想要進(jìn)一步了解Chatopera的產(chǎn)品請(qǐng)?jiān)L問:
https://docs.chatopera.com/

【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專題