點擊觀看大咖分享
心疼你獨自一人承擔生活的苦難,寂寞夜里陪伴你的只剩無人傾訴的壓抑和無處安放的焦慮。養個寵物,它卻不能get到你的“寵言寵語”。找個伴侶,還要浪費吵架的時間和精力。回到家里,只能浸泡在“循環嘮叨式“母愛的沐浴。當一個人在你身邊活的恰到好處的時候,就是在成全你,做自己!這樣的人已經出現,只是你還不知道而已。現在就教你構建只屬于你的智能對話機器人,帶你找回那個最輕松的自己。
本期騰訊大學大咖分享課程邀請到了騰訊 AI 技術專家葉聰老師分享零代碼使用騰訊TBP打造智能對話機器人。葉聰老師是騰訊智能對話平臺TBP技術負責人、總架構師,帶領團隊完成了TBP產品的從0到1。前美國亞馬遜 AWS 人工智能技術經理,負責領導開發了Amazon Alexa 智能語音助手背后的 AI 云服務Lex。
本期課程分為五個部分:
- 做智能對話機器人的緣由
- 研發痛點和難點
- 智能對話技術
- 如何用app構建智能對話
- 最佳實踐案例
一、為什么我們要做智能對話
從計算機發展至今,人機交互已發生巨大變化。第一代的是鍵盤和鼠標。鍵盤鼠標幫助整個計算機覆蓋了30%的人口。這30%人都可以通過鍵盤鼠標去操控計算機系失誤,他想要的信息是拿到他想要的答案,第二代的智能交互是觸控交互。但它成本高。使用手機閱讀新聞發送消息的時候,就是人與硬件的交互,這種方式已經覆蓋了大概2/3的人口,剩下的那1/3, 就需要智能對話的技術來解決。如果正常對話將來在所有的設備上得到的應用,那我們全世界的所有的人,不管他在用任何一種語言,都可以通過我們的智能對話機器人來操控所有他想要操控的設備,去輸入所有他想要輸入的信息。從此 AI 對話設備將變得無處不在。

智能對話無處不在,智能對話影響人類生活。目前我們智能對話其實已經深入了生活的各個方面。 包括語音搜索,智能硬件,語音消息轉寫,語音助手。以及語音輸入法。這些東西每天大家都會用到。包括我們左下角的那個是我們的智能音箱。也是現在大家很熱衷去研究和使用的一個設備。

經調研,發現個人用戶使用 AI 能力主要原因有3點:
- 便捷,就是用更快速的方式,我們可以去使用到一些ui的能力.
- 高效,把復雜的東西,利用人工智能變的自動化或者半自動化來減輕我們的整體的工作量。
- 自然,能實現和人類的自然交流而不是簡單的由人操控,實現個人用戶AI能力的主要訴求。
有些用戶主要為了幫公司降本增效。在大量to B 用戶中間,有很多工作需要人工解決,比如人工客服外呼人員,還有一些內部管理人員,智能問答技術可以部分代替人工的工作。目前來看,使用的趨勢已經非常的明顯,在智能客服和智能外呼的領域已經得到了很多客戶的認可,相關技術在很多to C領域,比如公眾號小程序的客服上也得到了廣泛使用。
結合個人用戶和企業用戶痛難點,打造智能對話發展的源泉和根基。首先它能提供自然的交互能力,可以模擬人工和人類的交流,讓用戶在使用時,不會產生機械交流感的一種真實場景體驗。其次是接入場景多樣性。賦予機器人在不同場景下提供服務的能力。
二、研發痛點和難點
首先需要懂得語言學的基本概念,語法搭配。其次需要有高等數學能力。

例如,舉例論證偏微分方程,概率論。 同時,要有一定的上傳能力,把算法轉變成代碼的能力,拓展能力等。



其次是高維空間的抽象思維能力。工作量大,門檻高,導致很多人放棄。
智能對話的核心技術結構圖如下。

一個用戶在使用對話平臺去和基線交流時首先用戶的語音素材進來后,系統會把語言轉換成機器可以理解的文字。然后自然語言理解會識別文字,從中提取到適當的意圖信息和槽位解析,針對已經提取的信息,結合對話管理和策略優化能力整合最合適的答案。答案列表用來擇優選擇最佳回復,生成為人類可理解的文字。 最后通過TTS語音合成,文字轉換成語音呈現給用戶,這就是一整套流程。
左邊的部分是由騰訊云智能語音服務支撐的。中間是核心的智能對話平臺,右邊是各類對話模型服務。之前內部大體結構是每個用戶的問題進來以后,經過自然語言理解,核心要素會被分成不同類型。例如,任務型,閑聊型,百科型,根據不同機器人的反饋結果會生成一個列表,根據用戶說這句話的情緒上下文,還有一些個性化配置,最后生成一個最終答案。整個平臺內部機器人的整合和協同合作非常重要。
智能對話和自然語言理解中兩個核心要素:意圖和槽位。
意圖反應用戶需求,在對話系統中,每一個意圖都與現實世界中的某個需求點對應。指完成一個目的,與機器人對話發出的指令就是意圖。意圖的類型也有不同
簡單的意圖如左圖。多級意圖是分層的,在實際應用中,我們也會對機器意圖有人工干預,比如一些敏感詞等,讓機器人人性化的同時避免敏感詞匯。

目前來說 每一個模型,只在某一個特定場景下實現效果相對較好。
既然算法沒有特別完美,所以需要通過一些半人工的方法幫助他優化,主動學習就是app也是非常重要的一點。機器本身會內建這樣的能力,人工定期梳理。用機器人命中和命中的case,核心是去抽取值得用戶標注的信息,用戶使用簡單選擇意圖的這個分類,這個說法就會自動添加進去。機器人在下一次用戶再說一個類似詞匯時,就會100%的命中。
一個很核心的概念是槽位,英文是slot,是指從句子中抽取出的特定概念,它包含最核心的信息。例如,我想去北京,北京這個名詞是一個地點,這個中國城市,這就是一個槽位信息。在槽位信息中,相關內容例如地名就是槽位中間的內容,我們一般把關焦作詞典。
機器人在獲取用戶輸入信息的過程,英文叫填槽(Slot Filling)。填槽就是把用戶輸入的信息,中間核心要素轉換成機器人能夠理解的語言,提取出來。

填槽過程中難點有很多。首先,一個很傳統的填槽方式是基于規則的天橋。就是設定一個模板,比如假設一個訂機票的機器人。機票的機型首先要提取到,就是出發地和目的地。這兩個信息可以根據規則填上去來解決。把它抽象成一個規則就弱了,用戶的輸入可以持續套用,然后提取出相關信息,但實際上也會造成很多問題,因為我們體育部的最優和全局的自由是不一樣的,過多的模板會產生串擾,比如同一句話,同時滿足多個模板,很難判斷用哪一個,幾乎沒有很好的解決方式,而且隨著規則越來越多,維護成本升高,加入新規則時,很難保證不破壞原有規則以及一些特殊情況。所以出現了將實體識別作為填槽結果。這是目前廣泛使用的一種方式。但仍然會造成一些問題。

例如,假設用戶說:我想去聽七里香中的借口。從人的角度來講,這句話是容易理解的。但是對機器來說不然,里面是有好多種可能性的。它提取到了七里香和借口這兩個信息,但同時它有可能是專輯名或者是歌曲名。此時,并不能簡單的把前面那個詞匯當做專輯名而后面的當做歌曲名,因為用戶有可能換詞匯的表達順序,這樣結果是顛倒的。所以如果只是使用規則填槽的話,我們就需要海量的槽。
為了適配做一種很簡單的場景,可以明顯知道是得不償失的。所以要前一種更好的方式就是將實體識別作為嵌套的結果,但是同時要考慮這些槽位之間的關系。比如,如果七里香是個專輯名,那歌曲名就只可能是接口,反過來也是一樣。


利用這種方式,能夠將詞典和模型識別的實體結果一起做排序,能夠減少模型錯誤所帶來的影響。同時,會連接一些外部的知識庫。比如,特定的用戶,還有一些外部的知識點和其他用戶是不一樣的,我們做的時候也可以把這些外部的興趣加入總的模型里面,再做排序,這就比原先的排序結果更準確也更適合這種場景。例如它得出的是一個分數,可以理解為我們會用它來做排序,但它不是準確率,只是一個相對分數,用它來排的那一種結果是最可信的。另一點就是從用戶的說法中去提取有效信息,相對關系只是其中的一種。如果想要更多的信息,讓這個軟件更加科學,還有更多的信息可以抓取。將兩三個詞建立一種關聯關系,還有槽位的長度。可以認為如果一個槽位的長度越長,它被識別的可能性會越高,槽位的長度如果越長,得到真實信息的概率就更大。比如大辭典中的兩個小詞典,如果一句話同時都命中了,就要考慮它們之間的互相包含,這樣也可以幫助我們把排序變的準確,最后用不同語言模型的分數進行綜合。可能訓練的多個模型會利用模型之間的一些不同的特性,最后會整合出一個結果。接下來統一把這些點全部提取出來,這樣可以將他們封裝到一個統一的網絡。

Feature Extract就是特征提取的接口,不需要單獨為某一種情況設置一個接口和模型,非常方便,一切在平臺內部的用戶在使用時不會有感知,但實際上內部已經把所有的因素全部考慮進來了。聯合排序的模型使意圖的和槽位可以相互聯動,一組槽位的整體全局最優解是最活躍的。我們可以給出Ranking的聯合模型。意圖識別大概分幾個步驟,首先根據不同的意圖或生成候選的。其次根據后臺的結果提取出特征。再次根據不同的模型生成的特征進行一個聯合排序,最后生成一個最終的結果。目前根據測試結果顯示,這種方式展現的效果會非常好。而且它的性能也非常高,在對整個機器消耗不大的情況下,下面的結果已經接近了最好的效果。如果已經提前知道了意圖,它就會對用戶的話語打上了一個意圖,我們知道哪個意圖命中的是正確的,然后再計算分數。而模型是我們不知道意圖是什么,讓它先匹配意圖,再通過綜合的排序方式生成最后的結果。這兩種方式中,因為算法幾乎接近了預知意圖的效果。要找到兩句話的相似性,比如再想變更意圖的時候、用戶說法不精準時,如何獲取用戶的言語和配置意圖是否一致?由于我們的說話是經過很長時間訓練的,而且平時生活中使用的那一種語言,容易理解兩句話可能語境不一樣、倒敘的話可能是同樣的意思,人可以理解,但是機器就很難。例如,你是誰?我是誰?這個看起來我們理解是完全不一樣的,但是機器找不出明顯區別,都是再問是誰,所以很大程度上來說這兩句話,在機器來看是一個意思。簡單的使用Word Embedding這種方式,我們認為結果是類似的,但實際上并不類似。再嘗試使用藍山網絡。網絡就是用戶的一個因素進來以后,可以認為是兩個相似的模型。不同的模型體現出不同的特征,最后結合這兩個特征調整他們的權重。利用這種方式,使模型提升準確率,更加智能化。除了蘭生網絡,還有CNN神經網絡。從最開始按照這個CNN,替代整體訓練速度。模型響應時間小于50毫秒。如果使用傳統的愛人,它的性能一般會在100到200毫秒之間,達不到要求,這也是為什么會有優化動力不斷去鋪時,這樣的app能的邊境。

為了優化差異,我們做了不同的嘗試,例如不同尺度的卷集合。然后通過大量測試發現,雖然貝斯的解決方案。模型效果是不錯的,也是常見使用的。除此之外還有更深層的,就是使用一種剪輯和通過簡單的深度疊加來提取更多尺度的信息。

挖掘對話深層興趣的方法。不僅是網絡結構的增加,文林白領和china辦理就是。問詞語的一些白領和文字的明白點混合使用質量方式可以避免,假設一個詞,不在我們的四點鐘。因為四點是有限的,就會去找關于他的文字信息可以對他進行猜測和匹配,總體來說它可以讓我們的機器人模型變得更聰明。自然語言理解的過程就是機器如何能夠理解我們人類說話的,從中提取有效信息的,其實智能對話整個的嗯,整個的carburetor非常大,除了自然語言理解,還有包含對話管理和人員生成,
三、DM是什么?
當我們和機器人交流時,為生成一個回復,他需要了解我們。需要機器人保留對話狀態,dollslove中間狀態的管理整個模塊,叫做店。DM是在維護計劃狀態的同時協助支持系統生成決策。作為接口和后端任務進行交互,比如假設用戶是要調動一些技能或者是要靠第三方服務的,對話管理要知道觸發這個行為的x,提供語義表達的一個期望值,必須把整個回復完全生成,最后回復給用戶。用戶的上下文和他語義核心表達加在一起進入我們的DM,DM決定下一步操作。

樹和有限狀態機的解決方案,每當我們機器人聊天,都是在他的一個數中間不斷地轉跳。或者是途中進行轉跳,我們現在這個狀態,如果上下文是這樣,他就會到另外一個狀態。機器人就是在途中不斷轉跳。
這個概念已經有很多年了,但大家都還沒完全攻克,目前有很多團隊開始回歸到supports嘗試利用數形和游戲狀態機的方式解決,并且效果還不錯。

經過12年supported,人類在研究盆子都被supported,這里有一些比如對話吉田草,只是把用戶的對話當做是給我們提供信息的一種方式,然后我們就盡量的從中提取earthquake這樣的信息,然后供給槽位。快樂引擎,我們現在評估都是通過感性的評估,就是找不同的人用同樣的話測試模型。目前大部分的模型是沒有辦法很理性的去指導的,所以訓練好的模型,如果不去試一試,是不知道他的回復的。但如果用了星期論的方法,我們其實就能確定他的回復是應該是這個還是有意義的。目前最流行的一些方式就是統計學的方式,只要體育課vip客戶這個跑ssf這個pos系統包括目前很多人在研究的學習就reinforcement。400的方法,小孩學習有什么好處呢,就是當用戶輸入的時候有很多不確定的信息是用戶未必會按照我們想的方式。使用我們的對話。

怎樣能夠用不確定信息找到合適方法建模呢,有人想到了強化信息對抗網絡方式讓模型不斷學習,同時不斷凈化自己。這種方式的好處是我們可以把這些不確定性也一起考量了,模型會變得更聰明。這也是個很好的研究方向,大家如果對最快有研究的話,尋找課題的可以看reading這部分的發展。
為什么要打造騰訊智能對話平臺就很產品?因為整個智能對話不涉及的技術太多了,而且都有一定的門檻,希望AI深入到各個行業,最好的方式就是簡化環節,提高大家使用能力。
智能對話技術統一對外出口叫做對話機服務,就是希望大家可以通過簡單的配置開箱就可以用。

整個俱全開發的全流程大概分這幾步
- 流模型就定義 在控制臺上輸入簡單信息
- 四個服務自動閱讀模型自動變成模型,不需要懂深度學習是也不用寫任何代碼,它會自動幫你把模型去申請好。
- 提供給網頁模擬器小程序和公眾號進行測試和統一

當一切ok的時候,點擊一鍵點擊。就可以發布到公網上給所有人使用。
沒有版本管理,使用時海量連接窗口,微信的公眾號小程序,企業微信,還有各種h5的解決方案是深度整合的,幾乎只要把一些鏈接,token放到平臺上配置一下就可以做到一鍵接入,比如像公眾號,只要掃碼就可以關聯上公眾號成為公眾號的智能助手。上線以后,我們會提供一個數據中心的功能,中心會顯示之前運行的所有狀態相當于測量差的傾向和脈搏。主動學習的機率也會在數據中呈現,不斷的優化你的路線。
這一切都是建立在不需要非常理解智能對話的前提下使用就可以了。
平臺的全景圖大概分三層
- 一 針對一些核心技術,比如模型算法,意圖識別,槽位收取等,包括多倫知識圖譜。
- 中間一層是平臺配置中心。里面分幾個部分,比如針對開發者的多渠道發布。可以一鍵發布到小程序,公眾號,移動的h5網頁,物聯網設備等。
- 底層是海量的機器人中間件的能力,包含多種類型,例如閑聊型問答,咨詢文檔型,基本所有常見的機器人平臺都是經包含并且可以支持。 同時還有海量的個性化和人性化的開發工具。
最上面那一層是核,不同行業客戶還有部門合作的一些解決方案,現在主動拓展的有金融教育,生活服務,酒店旅游。智能對話平臺,也改變了開發流程,最重要的就是簡化流程,提高效率,比如內置一些信息,像是需要使用一個全國城市的詞典或者是某行業的詞典,有內置的可以直接通過一鍵選擇使用。
機器人一鍵開發以后可以在不同端同時使用幾乎所有源的sdk,可以集成到小程序,這些都會關聯到同一個機器人上。整體的解決方案通過掃碼就可以接入。
四、怎樣在tv上創建第一個機器人?
通過可視化對話的配置平臺,只需要在這個平臺上面輸入一些簡單的信息就可以完成兌換。當用戶說哪一句話或者類似話語時會進入。如果當他的說法和配置說法,接近程度相似度達到一定程度的時候就會認為他命中,所以不并不需要他是完全吻合的。當說法命中以后,除了我們提取用戶信息,還可以進行第三方調用,就是vs的配置的調用和回條,復雜場景時,比如當開發者希望回復店面信息,然后進入下一輪的話的時候,我們的平臺也是很好的支持。例如任務型問法,問答型機器人看到時我們可以配置一些相似問題和答案,通過一鍵掃碼的方式就可以用小程序或者公眾號的智能客服。
在客服中間,機器人同時可以和客戶進行閑聊,比如同時接聽和對話兩個人,然后完成一個多輪對話的任務,比如像訂機票在任務中間,如果當用戶有問題的時候,他可以跳脫出人,用qq問答精選回復一些問題,比如左邊的托運行李的費用,可以顯示出問答齊全,對用戶來說,他完全不知道實際上在調哪種能力。為提高體驗效果,讓開發者可以更快的配置,左邊是槽位。
槽位光亮就是當用戶讓配置用戶刷卡的時候理論上如果允許從用戶說法中提取一些槽位信息,需要用戶在戶收卡上面標注出來,標注這是一個槽位,當用戶收到幫我訂到北京的機票時說北京是個地址,這個過程非常繁瑣,平臺已免去此過程。
當用戶配置完所有想要四點以后,不是選擇內置四點以后,只要簡單的輸入非常自然的游戲,比如幫我訂到北京機票,這本來不能做為一個說法的,但是我們會和智能引擎去判斷,如果發現未替換成草,用戶只要輸入自然的語言或者導入一個海量語言,就自動把它練草字全部標注上。這大大提高了用戶配置齊全的速度。
人們如何體驗
大部分對話類似的產品,都是用從控制臺上去體驗這種方式呢,依托于騰訊的生產,微信很好的整合,可以在騰訊智能化平臺體驗小程序上非常容易的登錄云賬號,隨后即可顯示,所有在同樣銀行創建的機器人都會自動關聯,就可以通過小程序去測試去體驗,剛剛配置好了這個機器并且經濟可以轉化的,經轉發分享獲取資源和平臺。
除了平臺本身,我們還提供海量波特被子中間件的能力,我們的機全都能力,底層的比如任務型atqq點凹形知識圖譜文檔型,都可以通過平臺對外進行輸出,如果只是想要單一能力的用戶,比如想要接一個閑聊型中,用戶也可以直接通過我們的平臺獲得這個能力。
關鍵指標
開發者需要有一個客觀的認識,目前我們所有的任務識別的準確率包括sq深度學習模型的命中準確率都超過95%,行業知識庫,已經積累了超過10萬個。任務型的延遲和ip的延遲都會小于100毫秒。性能還在持續優化,最終會把它優化到小于50毫秒,綜合來說,性能非常優異,包含海量的數據,頂尖的算法,豐富的經驗,最優化的接觸體驗。客戶源也有很多。


旅游時會用到小程序其實背后就是使用第一批的對話能力。同時還有文理類,差旅類的,這樣的案例,包括春秋航空深航的訂票助手。還有香格里拉酒店的對話機器人,它可以幫助你訂房間,預約出行和控制房間的設備。金融類包括中國銀行,光大銀行,中信銀行減輕了人工客服的壓力。
問卷
為了給廣大開發者提供最實用、最熱門前沿、最干貨的視頻教程,請讓我們聽到你的需要,感謝您的時間!點擊填寫 問卷
騰訊云大學是騰訊云旗下面向云生態用戶的一站式學習成長平臺。騰訊云大學大咖分享每周邀請內部技術大咖,為你提供免費、專業、行業最新技術動態分享。