李 建,張 鋒,陳 沖,李俊徽,王 偉
(浙江省氣象服務中心,浙江 杭州 310017)
隨著AI智能技術(shù)的發(fā)展,人機智能交互的應用也愈加廣泛和深入。然而人機智能交互并非是全新的概念,第一個人機對話系統(tǒng)是麻省理工學院的Weizenbaum于20世紀60年代開發(fā)的Eliza[1]。Wallace交互系統(tǒng)通過一種純模式匹配的方法在對話質(zhì)量上與以往相比有大幅提高,它利用啟發(fā)式的會話規(guī)則并嵌入AIML(artificial intelligence markup language)[2],創(chuàng)造出了A.L.I.C.E(artificial linguistic internet computer entity)。人機交互已有60年的發(fā)展史,從命令行操作界面到使用鼠標鍵盤的圖形界面發(fā)展到基于觸摸屏的無形界面再到語音交互,而硬件則從PC機發(fā)展到手機,隨著技術(shù)革新人機交互方式和介質(zhì)發(fā)生變化。無形界面指機器和系統(tǒng)與用戶以自然的交流方式互動[3],利用人的視覺、聽覺、觸覺、嗅覺、味覺五個交流通道進行信息傳遞和交流互動。在這五個交流通道中視覺占據(jù)最主要位置,其次是聽覺,而在信息傳遞中聽覺語言的綜合利用率遠高于視覺符號,所以語音交互受到廣泛關(guān)注。智能語音產(chǎn)品如天貓精靈、小愛音箱、亞馬遜、谷歌等呈爆發(fā)式增長,并在智能制造、智慧醫(yī)療、智慧氣象領(lǐng)域的應用越來越廣泛,逐漸改變著人們的生活方式。
為迎合智能語音技術(shù)的發(fā)展和應用,微軟、Google和百度等科技巨頭智能對話領(lǐng)域的產(chǎn)品層出不窮。而對于大多數(shù)開發(fā)者而言,智能交互系統(tǒng)的研發(fā)卻是一個很困難的工作,對技術(shù)和數(shù)據(jù)的要求都很高。在百度AI開發(fā)者大會上,百度宣布將其研究多年的自然語言理解與交互技術(shù)對外開放,這大大降低了普通開發(fā)者的研發(fā)門檻。該文正是基于百度AI的UNIT技術(shù),結(jié)合在用戶使用氣象應用軟件過程中收集的相關(guān)行為數(shù)據(jù),采用了基于Hadoop的用戶行為分析方法,建立基于用戶行為分析的AI語音智能氣象服務系統(tǒng),為公眾提供更便捷、內(nèi)容更具針對性的個性化氣象服務,實現(xiàn)智能交互氣象服務的研發(fā)和應用,探索智慧化的氣象服務。
該文針對“智慧氣象”APP、“天氣羅盤”小程序、“氣象安全導航”APP等浙江省氣象局服務平臺和出口的海量用戶行為信息采集日志,搭建HDFS分布式文件系統(tǒng)對其進行存儲,通過搭建Hadoop分布式集群環(huán)境并結(jié)合MapReduce編程框架,建立基于Hadoop的用戶行為數(shù)據(jù)分析系統(tǒng)[4-7],對大量相關(guān)的用戶行為分析資料進行分布式批處理,并對處理結(jié)果分析總結(jié)形成用戶行為畫像。
基于Hadoop的用戶行為分析方法在架構(gòu)上分4個層次來實現(xiàn),分別是數(shù)據(jù)、業(yè)務邏輯、業(yè)務服務、應用層。數(shù)據(jù)層,首先利用抓包工具PF_RING抓取各服務平臺的用戶行為分析數(shù)據(jù)源進行分布式存儲,然后調(diào)用網(wǎng)絡安全開發(fā)包工具Libnids對數(shù)據(jù)包進行重組,指對結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)庫的管理;業(yè)務邏輯層,主要負責利用分布式MapReduce編程來分析用戶網(wǎng)絡行為活動,并協(xié)調(diào)數(shù)據(jù)與各功能層間的關(guān)系,包括功能邏輯、處理邏輯以及數(shù)據(jù)操作;業(yè)務服務層主要利用Hadoop集群提供相應的技術(shù)支持和服務,即MVC框架中控制層所完成的功能,包括身份認證、參數(shù)管理以及控制管理功能;應用層,主要包含用戶能夠具體請求和使用的實際功能,指對用戶行為信息的內(nèi)容、功能和交互管理。通過以上4個層次的架構(gòu)設(shè)計實現(xiàn)從物理層到應用層的全層分析。圖1為用戶行為分析系統(tǒng)的架構(gòu)。
圖1 用戶行為分析系統(tǒng)架構(gòu)
對用戶行為日志數(shù)據(jù)的采集,該文考慮基于Java技術(shù)使用Hadoop平臺的Chukwa工具完成,同時開展用戶行為數(shù)據(jù)的分析[8-9]。數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)化日志的轉(zhuǎn)換是通過在Chukwa內(nèi)部設(shè)置了2個MapReduce作業(yè)來實現(xiàn),然后存儲到SQLServer數(shù)據(jù)庫和HDFS分布式存儲系統(tǒng)中。用戶行為日志的采集格式和實例如表1所示。
表1 日志采集格式及實例
關(guān)鍵字、用戶ID等用戶行為記錄關(guān)鍵信息,可通過分析用戶行為相關(guān)的日志獲得,采用計算模型MapReduce分析用戶行為的特征,并根據(jù)時間進行分段顯示。為計算模型MapReduce定義好
S=E·M·T
(1)
其中,S為模型復雜度,E為關(guān)鍵詞的數(shù)量,M在具體模型中定義,根據(jù)模型不同確定,T為系統(tǒng)可設(shè)置的學習訓練次數(shù)。
CBOW模型開展訓練利用的是Word2vec工具,該模型相比傳統(tǒng)的神經(jīng)網(wǎng)絡模型省略了隱含層,能夠?qū)崿F(xiàn)詞語的學習訓練。通過上下文來影響當前關(guān)鍵詞出現(xiàn)的概率是CBOW模型的核心。在此模型中,類似于從袋子中取關(guān)鍵詞,在取詞數(shù)量足夠多的情況下,取詞的先后順序是不重要的,所有上下文的關(guān)鍵詞對目前關(guān)鍵詞出現(xiàn)的概率的影響程度是相同的。CBOW模型的結(jié)構(gòu)描述如圖2所示。
圖2 CBOW模型
CBOW模型的訓練復雜度表示為:
P=V·|S|+N·V
(2)
其中,P為CBOW模型復雜度,V為發(fā)射層的維度,S為訓練詞典的規(guī)模,N為輸入層的總長度。V·|S|是計算量,通過矩陣的形式進行計算和表示學習訓練的復雜度。
通過收集用戶在使用天氣軟件過程中留下的使用時間、所在位置、查詢要素、關(guān)注的功能模塊等相關(guān)信息,同時根據(jù)用戶的ID信息(實名認證獲取的手機號、微信、QQ號等)結(jié)合采集的用戶走路步數(shù)、出行目的地等綜合信息,采用CBOW模型分析用戶使用天氣軟件的應用場景,從而獲得用戶的真實意圖,如早鍛煉、穿衣、外出旅游等。
UNIT(understanding and interaction technology)是百度公司開發(fā)的可定制的人機對話技術(shù)。UNIT提供了融合深度學習與啟發(fā)式規(guī)則的意圖理解模型,還包含NLP(natural language processing)的“口語化分析”與“query糾錯”技術(shù),可對用戶的表達進行進一步分析與抽象。通過DM Kit建立對話管理與任務執(zhí)行框架,可無縫對接外部知識庫具有UNIT云端對話理解能力,豐富了人工智能的回復信息量,實現(xiàn)多狀態(tài)的復雜對話流程控制。此外,UNIT還具備交互學習能力,讓對話系統(tǒng)可以像人一樣在對話中理解與學習。它可以主動向用戶進行澄清詢問發(fā)現(xiàn)系統(tǒng)理解模糊的問題,也可以被動等待用戶發(fā)起糾正。通過正常定義對話任務,就可以得到系統(tǒng)內(nèi)置的交互式理解能力。實驗表明,UNIT技術(shù)應用模型可以讓98.1%的用戶對話被系統(tǒng)正確的理解,并具備持續(xù)學習的能力。
智能語音對話系統(tǒng)的開放域(open-domain)和封閉域(closed-domain)兩種類型的問題[10-12]是根據(jù)應用場景的不同劃分的。開放域?qū)υ捪到y(tǒng)沒有限定主題或明確目標,用戶和系統(tǒng)之間可以進行任何話題的自由對話,開發(fā)和實現(xiàn)難度非常大。封閉域的對話系統(tǒng)是面向具體任務的,具有明確的目標和限定的知識范圍。基于UNIT技術(shù)的智能語音主要應用于封閉域的對話系統(tǒng),按自身業(yè)務需求定制對話BOT(機器人英文縮寫),可以為用戶解答(如:今天會下雨嗎?杭州櫻花什么時候盛開?),執(zhí)行用戶指令(如:查一下我的快遞什么時候到),甚至通過一系列交互引導用戶達成某項需求(如:通過注冊-選座-下單完成訂票)。這種面向任務的理解與交互能力,可以滿足智能助手、智能家居、智能汽車、智能客服、機器人等各類產(chǎn)品和場景應用。
智能交互氣象服務依托浙江省氣象部門的海量數(shù)據(jù)支撐,利用UNIT技術(shù)理解分析用戶的語義并結(jié)合用戶行為分析后獲取的用戶意圖,為用戶智能提供天氣實況和預報、氣象預警、出行提醒等信息[13-17],并通過百度語音識別和轉(zhuǎn)換技術(shù),實現(xiàn)智能語音交互服務。
圖3為智能交互氣象服務系統(tǒng)的實現(xiàn)邏輯圖。
圖3 實現(xiàn)邏輯
首先,用戶通過語音或文字輸入,將需求提交至UNIT技術(shù)功能模塊,先進行語義解析,若解析失敗則返回請用戶重新輸入,若解析成功則進行意圖分析。若意圖不明確或意圖無法滿足,均返回請用戶補充或重新輸入,若意圖可滿足則根據(jù)需求調(diào)取氣象相關(guān)數(shù)據(jù),最終生成文字和語音返回給用戶。該邏輯的核心節(jié)點是意圖分析,也是UNIT最關(guān)鍵的理解能力。在其平臺上可根據(jù)實際需求進行對話BOT的技能定制和訓練。
具體的操作流程如圖4所示。
圖4 BOT模型訓練操作流程
第一步,新建一個自定義BOT;第二步,定義技能,即建立一系列的對話意圖的模型。比如天氣預報查詢,需要知道時間、地點兩個基本要素,所以需要添加時間、地點兩個詞槽(限定條件的詞匯類型),詞槽的提取已在語義解析中完成。除詞槽之外,還可以添加特征詞,使意圖分析更加細化。結(jié)合常見天氣類需求,增加一定的特征詞,如表2所示。
表2 天氣需求意圖分析
填寫完意圖和詞槽之后,標注訓練數(shù)據(jù),添加對話模板,配置觸發(fā)規(guī)則,滿足相應規(guī)則后觸發(fā)數(shù)據(jù)調(diào)用或相應回復。以表2的查天氣意圖為例,在對話模板中,特征詞“天氣”是必須的,而時間、地點用戶并不一定會表述和提供,一般情況下可以結(jié)合用戶行為分析得到目標地點和時間。但特殊情況下當詞槽缺失時,需要返回澄清話術(shù),要求補充說明。
通過以上流程的設(shè)計,完成一個技能模型的搭建,最后進行BOT模型的訓練,訓練完成并生效后進行對話BOT的應用。語音交互氣象服務系統(tǒng)以WebService后臺服務的形式對接前端應用,應用端只要提供用戶的ID和語音服務信息就可以建立交互關(guān)系提供服務。
浙江省氣象服務中心基于微信和智能手機開發(fā)平臺,將天氣與新聞、視頻和圖片等多種形式相融合,開發(fā)了微信小程序和手機APP“天氣羅盤”(見圖5(a))。以卡通人物“小諸葛”為入口,基于國內(nèi)城市的天氣實況和預報數(shù)據(jù),利用基于AI的UNIT技術(shù),開發(fā)智能語音互動服務,實現(xiàn)天氣查詢、常識解答及日常交互等豐富功能(見圖5(b)、圖5(c))。2017年12月5日“天氣羅盤”微信小程序上線,用戶可通過掃描二維碼或微信小程序入口搜索“天氣羅盤”訪問。浙江省旅游局、安監(jiān)局和氣象局2018年7月27日聯(lián)合發(fā)文,要求將二維碼印制在浙江省3A級以上景區(qū)的門票和入口處,引導游客主動接收基于位置的氣象災害預警信息?!疤鞖饬_盤”APP也于2019年下半年上線。截至2019年12月14日,兩款應用累計訪問已超過1 853萬次。
(a)“天氣羅盤”首頁 (b)智能交互頁面一 (c)智能交互頁面二
該文根據(jù)系統(tǒng)的框架設(shè)計和功能需求,分模塊設(shè)計了用例測試檢驗,對2019年以來的用戶對話樣本數(shù)據(jù)11 G進行統(tǒng)計,分析其功能實現(xiàn)情況,如表3所示。用例數(shù)、輸入、輸出、描述為用例的主要選項。該文設(shè)計的語音交互和用戶行為分析系統(tǒng)采集并存儲的數(shù)據(jù)與樣本數(shù)量是一致的,通過將樣本數(shù)量與存儲在系統(tǒng)中的語音交互數(shù)進行對比得到完成率。
表3 語音交互樣本測試結(jié)果
通過構(gòu)建Hadoop平臺引入MapReduce計算模式,依托“智慧氣象”APP、“天氣羅盤”小程序、“氣象安全導航”APP等浙江省氣象局的服務平臺和出口積累的用戶行為數(shù)據(jù),建立了基于Hadoop的用戶行為數(shù)據(jù)分析方法,利用UNIT技術(shù)通過DM Kit建立對話管理與任務執(zhí)行框架,結(jié)合用戶行為分析實現(xiàn)智能語音交互氣象服務系統(tǒng)。測試結(jié)果表明,所設(shè)計的基于AI智能語音交互氣象服務能夠結(jié)合用戶行為分析完成氣象服務的語音交互。在用戶行為分析方面,由于缺乏足夠的用戶行為記錄做分析,在語音交互的過程中未能達到100%的用戶行為分析關(guān)聯(lián),而50%的行為分析關(guān)聯(lián)用戶中絕大部分都是關(guān)注浙江氣象服務出口的忠實用戶。為進一步加強應用效果,下一步可以擴大收集范圍接入第三方的用戶行為數(shù)據(jù),同時不斷完善BOT模型的詞槽開展大量的訓練,改進應用功能和服務體驗。