OPPO小布助手算法系统探索、实践与思考
1 前言
對話交互是繼傳統PC、PC互聯網及移動互聯網之后,下一個時代非常有想象力的關鍵技術方向,無論是學術界還是工業界都有極高的關注度,同時作為OPPO萬物互融戰略的關鍵節點之一,承載著偉大而艱巨的使命。
算法是對話交互的核心能力之一,決定了語音助手能達到的智能化水平,具有極高的技術價值。本文將主要從對話交互的目標、算法要解決的關鍵問題,行業現狀與趨勢、小布主要實踐與進展,以及挑戰與未來幾個方面做個介紹。
2 對話交互目標與關鍵問題
通俗來說,對話交互的目標就是通過語音或文字以自然對話的方式,完成任務執行、信息獲取、情感交流等人機交互過程。比如像科幻電影里面的賈維斯、大白等智能助理,代表了人們關于對話交互能力理想狀態的期待。
對話交互近年來受到越來越多的關注,其背后的原因究竟是什么呢?其實回顧下近40年來信息科技發展的歷程,就不難理解。我們知道,信息科技先后經歷了傳統PC、PC互聯網、移動互聯網幾個大時代,其中每一個時代都與設備密切相關,進而催生入口和交互方式的革命。而今我們正邁向被寄予厚望的AIoT時代,對話交互因其在新一代搜索引擎、超級服務分發中心、新型交互方式等方面的巨大想象力,恰好承載了這一新時代下一入口級交互變革的使命愿景。
然而,想要達到理想的對話交互效果是非常困難的,主要是因為它需要跨越目前成熟的感知智能技術,邁向認知智能,當下在認知智能領域還存在很多尚未根本解決甚至未能清晰定義的問題。典型的認知難題包括如何表示和理解常識,如何使機器具有推理和規劃能力,如何使機器有像人一樣的想象力和自主性等。在某種程度上,可以說解決了認知智能的問題,基本上就等同于實現了強人工智能,足見對話交互的難度之高。
對話交互的主干流程如下圖所示,從中不難發現幾乎所有關鍵節點都與算法相關,算法是取得較好對話交互效果的核心能力。
對于OPPO自研的小布助手,其算法能力現狀如下表所示,語音喚醒主要由三方和軟件工程系統支持,目前在新機效果上對齊行業Top競品,但是存在老機型技術升級成本高、部分低端機型無法支持語音喚醒等問題;語音識別同時使用了三方和OPPO研究院的能力,由于語音識別技術相關成熟,整體效果較好,字錯率能控制在6%以下,目前的主要問題在于音頻質量;語音合成與語音識別類似,也是由三方和OPPO研究院共同支持,在準確性和流暢度上效果較好,但是自然度、情感化等維度評測非常主觀,目前也暫不支持用戶個性化;語義理解和對話能力主要有業務技術團隊提供,在語義理解方面準確率和召回率都能達到90%以上,存在開放域長尾query理解難度大的問題;在對話能力方面目前支持沉浸式強多輪、自由切換弱多輪、上文推理多輪等,多輪的難點主要是難評測,用戶習慣弱、線上滲透率低。
語義理解和對話能力是本文的重點,主要任務是在拿到用戶Query后,通過先理解用戶要什么,再決定給用戶什么,最終組裝合適資源恰當滿足用戶。由語義理解和對話能力組成語義算法系統就是為了達成以上目標的,該系統的涉及主要會面臨系統性問題和技術類問題兩大類,如下圖所示。
系統性問題包括面向需要支持全領域query、數百項技能、多設備多渠道的復雜系統,如何解耦拆解;面向產品需求多、模塊多流程長、算法不確定性大等問題,如何高效迭代;面向無法窮舉的多樣化口語Query,如何通過效果監控保障體驗;如何規避低級缺陷、答非所問、過度兜底等“智障”體驗。
技術類問題則包括算法的選型、關鍵問題的建模求解、多輪對話的控制、性能方面的保障等。
3 行業現狀與算法趨勢
首先,對話交互在應用場景方面已日趨成熟,涵蓋智能家居、車載、生活出行、專業服務等眾多領域,方便快捷是自然語言對話交互方式的天然優勢,被越來越多的用戶接受,據預估2020年將有超過70億部設備搭載語音助手。
另外,發展趨勢來看,近十年來頂級科技公司從未放棄在此方向上的投入,國外以蘋果、亞馬遜、谷歌三家公司作為代表,無一不把對話交互作為他們非常重要的方向;國內情況也類似,百度、小米、阿里巴巴都積極布局,旨在搶占對話交互這一未來流量入口。
一個值得關注的趨勢是,面向第三方設備的對話交互智能助理逐漸淡出,各家主要集中在自有設備上大力發展,除了相關技術與設備耦合緊密的原因外,還有一個更重要的原因是這一入口太重要了,沒有任何一個頭部設備廠商愿意將其完全交給第三方技術方。
對話交互也是學術界研究的熱點,從ACL論文的趨勢分析可以看出,近5年來對話交互方向異軍突起,在2019和2020年成為當前最熱門的研究方向。
參考:Trends of ACL: https://public.flourish.studio/visualisation/2431551/
在核心的認知理解算法方面,其求解范式由傳統的強依賴語言、問題類型和人工定制經驗的多模塊流水線方案,演變成了更簡單、通用、高效的端到端一體化方案。這種范式的演進極大地簡化了問題求解流程,不僅能夠有效避免累積誤差,更使得大數據、大模型、大算力能夠落地應用,顯著提升效果。
近兩年來,在模型層面以谷歌BERT為代表的大規模預訓練模型橫空出世,橫掃各大語言建模任務榜單,為研發更先進的語義理解算法模型釋放了巨大的潛能,這無疑會給對話交互的發展提供堅實的技術支撐。
總結來看,無論是工業界還是學術界都非常關注對話交互這一方向,這反映了行業對未來趨勢的預判。而算法技術的突破性進展則進一步催化了對話交互產品落地的速度,使得未來將會更早到來。
4 小布算法系統實踐與進展
如前所述,語義理解和對話能力一起構成了小布核心的語義算法系統,以下部分將詳細呈現我們在這一方向上的實踐與關鍵進展。
首先,在業務需求方面我們主要考慮業務邊界、對話能力、用戶體量,以及評價指標這四個維度。在業務邊界方面,小布助手屬于全場景開放域對話交互系統,需要支持的領域包括系統控制、信息查詢、影音娛樂、生活服務、智能聊天等,共約包括數百項技能,用戶Query的廣度非常大;在對話能力方面,除了簡單指令型命令控制和單輪問題,還需要支持面向多輪的任務型、弱多輪、上下文理解等能力,以及對話推薦、主動對話等高階能力;在用戶體量方面,小布需要覆蓋歐加集團三品牌手機,以及手表、電視等億級別設備,千萬量級的日活;在評價指標方面,主要考慮需求覆蓋度、意圖召準率、技能滿意度、響應時間等。
概況來講,小布助手的使命任務是建立一種對話連接,連接的一端是歐加集團設備生態龐大的用戶群,另一端是優質的對話式服務,借助于這種連接來實現用戶價值、營銷價值,以及技術價值。
為了支撐上述業務需求,我們抽象總結了四項設計原則來指導算法系統的設計:
領域分治:采用劃分領域的方式將全領域復雜問題進行分解,轉化成更簡單的子問題分組求解,降低求解的難度,提升系統的可掌控性;
效果優先:為了盡可能避免“智障”體驗,不拘泥于任何單一技術,以效果優先驅動算法方案設計,規避低級缺陷;
閉環監控:建立完善的閉環監控機制,在研發階段通過產品、測試、研發等多方拉通的測試例設計提升測試覆蓋度,在線上采用實時動態測試集監控和人工評測來保障體驗;
平臺提效:為了應對眾多中長尾的技能支持,推進技能平臺的建設,以一致、通用的平臺化解決方案降低中長尾技能的研發和維護成本。
參考業務需求和設計原則,小布助手目前的算法系統整體架構如下圖所示。首先,在平臺與工具方面,基礎算法以行業主流的深度學習算法為主,在其上針對不同的問題類型構建算法方案,并進一步封裝成NLU框架、通用圖譜問答、技能平臺、開放平臺等模塊。然后在業務方面,最上層會采用符號化、結構化、數值化的思路對query進行通用處理,再按系統應用、生活服務、影音娛樂、信息查詢、智能聊天幾個維度進行業務拆分,各業務線獨立迭代。最后再結合對話生成、融合排序優選出最佳的技能去滿足用戶的訴求。
從處理流程上,又可以分為預處理、意圖識別、多分類ranking、資源獲取和后置處理幾個環節,其中前三個節點主要對意圖的召準率負責,后兩個節點對資源的覆蓋度和結果相關性負責,全流程一起為最終的技能執行滿意度負責。
語義算法系統中涉及的關鍵算法模塊如下圖所示,后續將分別對語義理解、對話管理、對話生成三個核心模塊進行介紹。
意圖識別是語義理解的核心模塊,其主要任務是通過對用戶當前Query,以及交互歷史的分析,推斷用戶到底想要干什么,包括封閉域、開放域、上下文幾種典型的場景。
槽位提取是與意圖識別密切關聯的任務,主要任務是從用戶當前Query以及交互歷史中提取關鍵信息,輔助精準獲取用戶所需的答案/內容。
意圖識別和槽位提取共同構成語義理解模塊,其難點主要在于口語多樣化(億級別獨立Query);歧義性(如小豬佩奇是動畫片,也是App);依賴知識(如“可不可以”竟然也是一首歌名)。
對話管理是語義算法系統的另一關鍵模塊,其任務是根據當前Query和對話上下文推導對話狀態,并據此推理對話系統下一步的最佳響應。
完成語義理解和對話管理后,還需結合對話生成才能實現技能的最終恰當的執行反饋,對話生成的任務就是根據語義理解的解析結果和要執行的動作,通過恰當的方式獲取恰當的響應話術。
在算法模型方面,小布以強深度學習驅動為主,這類模塊一方面效果較好,另外技術方案也已經比較成熟,存在非常多成功的案例。
然而值得強調的是,在這一領域基本不存在“一招鮮”的單一模型解決所有技術問題的算法方案,一般基于深度學習的主模型負責保障效果的基本面,仍需要結合定制規則來處理邊角的badcase。
面對系統應用操控類技能,為了提升語義理解的效果,我們主要采用基于規則和深度學習模型融合的方案,其中反向規則用于快速拒絕領域外的Query,正向規則用于覆蓋強說法,深度學習模型負責通用case的泛化識別。此外為了提升意圖和槽位的聯合準確率,引入了多任務聯合學習。
多任務聯合學習能使得意圖和槽位互相消歧,主要應用在電話、短信、日程等技能上,相對與單任務獨立學習,一般準確率能提升1%~3%。結合細致的數據驅動優化和規則校驗,基本可以做到95%以上的召準率。
面向知識強依賴型的技能,如音樂、電臺、影視等,我們主要采用了融合知識的意圖識別方案,如下圖所示。這類技能主要難點是單從句式無法判定意圖,從Query中準確提取資源字段非常關鍵,融合資源關聯結果后再進行意圖識別能顯著降低問題求解的難度。
不同于封閉域,開放域的意圖識別難以建模成分類問題,一般需要采用語義匹配方案進行求解。針對這類問題,我們主要采用深度語義匹配方式,如下圖所示。相對傳統基于文本符號的匹配,效果更好,匹配準確率可達到95%以上;不過也存在主語識別、語義包含等問題,需要配合下游驗證策略控制。目前主要應用在信息查詢和閑聊QA匹配中。
此外,為了進一步提升語義理解的效果,我們也在探索大規模復雜模型的落地方案。在大規模預訓練語言模型方向,團隊在開源模型基礎上進行改進、重訓與微調,實現了效果上的快速提升,目前排在中文語言理解測評基準(CLUE)總排行榜第六名。
不過這類模型計算復雜度很高,一般難以滿足線上推理的時效性要求,需要結合知識蒸餾等加速方案才能落地應用。
常見的知識蒸餾方案可以分為數據蒸餾和模型蒸餾兩種,其中數據蒸餾的假設是簡單模型是因為標注數據的缺失導致效果不如復雜模型,如果利用復雜模型提供足夠多的偽標注數據,可以幫助簡單模型逐漸逼近復雜模型的效果;模型蒸餾的假設是簡單模型不僅僅是缺少足夠多的數據,而是缺乏好的指引,如果通過訓練復雜模型過程中獲得的中間結果來同時指引簡單模型的訓練過程,則有助于簡單模型逼近復雜模型的效果。數據蒸餾和模型蒸餾都有在小布助手業務中落地應用。
對話系統也被認為是下一代搜索引擎,用戶關于知識問答類的訴求也非常多,預期是能夠獲得精準答案,為了滿足這類需求,我們通過數據獲取、數據挖掘構建自有知識庫,再結合在線語義匹配、KBQA等提供問答服務。
此外,為了精準回答垂域事實類的問題,我們還構建了基于知識圖譜的通用問答能力,對于精品垂類,通過數據合作和自助爬取構建領域圖譜,再基于模版和圖譜進行精準問答。
小布助手目前線上有超過50%的頭部流量由自建知識問答服務,長尾部分還以來度秘、搜狗等強搜索公司。
在對話管理方面,常用的方案包括基于有限狀態機的方案、基于Slot-Filling的方案,以及端到端的方案,其難點是靈活的流程控制、上下文的繼承與遺忘、意圖跳轉、異常處理等,目前主要采用Slot-Filling的模式。
為了在多輪中達到比較好的上下文理解效果,小布助手實現了基于指代消解的上下文理解方案,用于處理多輪對話中普遍存在的指代和省略問題。
參考:ACL’2019 Improving Multi-turn Dialogue Modelling with Utterance ReWriter
借助于對話管理和上下文理解,小布助手已支持沉浸式強多輪、自由切換弱多輪、上下文推理多輪等模式,覆蓋了任務型、信息查詢、多輪聊天等業務場景。
在對話生成方面,目前行業里主要有基于模板、基于檢索、基于模型三種類型,由于生成式模型可控性弱,目前小布主要采用基于模版和基于檢索的方案,生成式模型仍在預研中。
在算法工程方面,早期為了快速上線,提供了基于Python的服務框架,通過部署多實例來彌補單服務并發能力弱的問題;目前針對計算復雜度高的服務也在探索算子化工程重構優化,以及聯合機器學習平臺團隊探索更簡單高效的服務模式。
在技能建設方面,早期為了快速上線,以技能定制研發為主;去年底開始啟動技能平臺建設。主要思路是標準化離線模型生成和在線推理流程,將關鍵算法算子化,通過數據導入和流程配置完成技能研發,降低中長尾技能支持和維護成本。
最后,為了保障對話交互的效果體驗,我們聯合數據團隊和評測團隊構建了全流程的閉環監控方案,先由研發自測保證算法模型效果符合預期,然后在發版時再進入一輪批測,確保不會引入新的風險;上線以后,會有例行的監控和即時監控來分別保障整體效果和監控關鍵功能正常;此外,還會引入基于人工的抽樣評測和三方評測進一步監控體驗。
5 挑戰與未來思考
盡管對話交互近幾年來在算法技術上取得了很大的進展,但是相對于用戶期待的賈維斯和大白,還存在非常多的挑戰。
首先在語義理解方面,目前的模型本質上還是基于數據的統計歸納,遇到極端case時缺乏魯棒性和完備性。
其次,作為有潛力替代搜索引擎的候選,勢必要承擔“百事通”的角色。然后,低頻問答存在領域開放、長尾效應明顯、非常依賴知識內容等難題,建設難度和成本非常高。
另外,不同于相對成熟的搜索和推薦場景,對話交互能力迭代優化主要依賴人工,難以接上大數據驅動的自反饋自學習高速引擎,難以快速提升。
未來的挑戰還遠遠不止于此,我們將持續在更強大的語義理解能力、更淵博的知識、更流暢的對話、更領域的對話管理,以及自反饋、弱監督、自進化學習能力等方面積極探索,為打造中文領域用戶體驗最好的智能助理而不懈努力。
歡迎對智能助理和對話交互技術感興趣的同事一起交流討論!
作者簡介
zhenyu OPPO小布智能中心NLP與對話算法負責人
深圳市高層次人才計劃入選者,于中國科學技術大學獲得計算機學士和博士學位。
近年來專注于對話式AI關鍵算法技術研發與落地,2018年加入OPPO主導小布助手NLP與對話算法系統建設。所從事研究工作學術論文代表作單篇他引超過800次,曾獲高等院校(科學技術)科技進步二等獎1次、湖南省科技進步二等獎2次。
獲取更多精彩內容,請掃碼關注[OPPO數智技術]公眾號
總結
以上是生活随笔為你收集整理的OPPO小布助手算法系统探索、实践与思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机中的传感器及其应用场景
- 下一篇: 和秋叶一起学PPT之线条(课时六)