2019-12-10 資深UI設計者
本文整理了人工智能行業(yè)中設計師需要理解的一些名詞和內(nèi)容。
一方面供自己學習思考,另一方面也希望能幫助到準備投入到人工智能行業(yè)的設計師。之前聽有的朋友講到,覺得自己沒有計算機背景,有點害怕進入到這樣一個領域來。
沒有計算機背景沒有關系,只要對這個行業(yè)充滿好奇,一個個的問題解決掉,在你眼前的迷霧都會散去的。
先簡單舉幾個人工智能在生活中有在應用的例子:
像現(xiàn)在有的超市寄存物件,開箱時采用的人臉識別;像家里購置的智能音響,時不時還能跟它聊上幾句;像接聽到的銀行電話(是的,對方可能是機器人噢);像在淘寶上咨詢的客服小蜜;像你手機里的虛擬助手….等等這些都是人工智能在生活中的應用。
人工智能在設計領域的應用也相當廣泛,具體可以看這篇文章:
這幾個例子是在生活中比較普遍能接觸到的,實際人工智能應用的領域還在不斷的擴大,我們甚至都無法想象到,未來的生活會是怎樣的狀態(tài)和場景。
在這家公司之前,我做過語音交互類的產(chǎn)品交互設計。當時在定義人與設備進行語音交互時,會是怎樣的一個交互場景。從說喚醒詞到發(fā)出指令,從收到反饋到繼續(xù)對話。喚醒后等待的時間、結束的規(guī)則等等這些。
而現(xiàn)在,我大部分時間是在設計工具,如何讓使用者能快速的創(chuàng)建出一個智能機器人。如何讓機器人的創(chuàng)建者方便快捷的添加機器人的相關數(shù)據(jù)和創(chuàng)建出對話場景。
所以在進行這些工具的設計之前,有些名詞概念,會需要設計師來了解一下,能讓我們更好的理解人工智能的一些原理以及能夠讓設計師具象化到實際的設計中,甚至能基于此技術/原理來進行相關的創(chuàng)新或研究。
整理內(nèi)容如下:(內(nèi)容基于工作及自身理解,如有概念理解錯誤,歡迎指正)
下面嘗試用較易理解方式來解釋這些名詞:
與機器人進行對話,首先就需要讓機器人懂我們說的話,這其中,就需要來關注到自然語言處理,通過自然語言處理技術,能夠?qū)崿F(xiàn)我們與機器之間「無障礙」對話。
我把這三者關系畫了張圖示,我是以這樣的方式理解的
從圖中可進一步看出,NLU 和 NLG 是 NLP 的子集,而 NLP 是人與機器溝通中很重要的存在。
涉及到語音就會經(jīng)常聽到 ASR 和 TTS
語音識別(ASR):將語音內(nèi)容轉(zhuǎn)為文字
如微信里面,當別人發(fā)的語音信息不方便外放收聽時,可以轉(zhuǎn)為文字查看
語音合成(TTS):將文字內(nèi)容轉(zhuǎn)為語音
如現(xiàn)在很多的閱讀軟件,支持播放,有的就是利用 TTS,直接將文本內(nèi)容轉(zhuǎn)為語音播放出來。
我試著將上面提到的 NLP 和 ASR、TTS 組合起來,關系可以如下圖所示
當我們說一句話的時候,機器知道我們表達的是什么嗎?
意圖(Intent):一個人希望達到的目的,或者解釋為想要做什么,他的動機是什么。
如:
槽位(Slot):可以理解為系統(tǒng)要向用戶收集的關鍵信息。
如:
「買張明天從上海到北京的機票」
上面這句話中,獲取到意圖(買機票);提取關鍵信息 時間(明天)、地點(出發(fā)地:上海;到達地:北京)
這些關鍵的信息就是槽位,當系統(tǒng)獲知到這些信息后,就能去執(zhí)行下一步動作。
還可以這樣理解,當我們?nèi)ャy行營業(yè)廳辦理卡的時候,會填寫一張表,表每個要填寫的選項,就是一個個的槽位。槽位就是為你服務的人員要從你那收集的關鍵信息。
實體(Entity):用戶在語句中提到的具體信息
實體這詞放在生活中,我們很容易理解,就是實實在在的物體,像桌子、電腦、熊貓等等這些都是實體。
但是在人機對話中,機器理解人的語句內(nèi)容,會識別出語句中的實體信息(如:地點、人名、歌曲名等),然后進行標記。
那槽位和實體是不是講的是一回事?只是不同的說法?
我之前有一度陷入這樣的困惑中,但其實這兩者還是有所區(qū)別的。比如,一個實體是數(shù)字,但是在語句中,數(shù)字將代表不同的含義。
如:
人:有沒有10元的鮮花? 機器人:玫瑰花10元一支 。
這句話中,實體number「10」,但這個 10 在句子中表達的是價格,所以收集到的槽位信息是價格:「10元」
這樣說可能還是不太能理解,那我們可以先了解下,在一句表達中,需要進行槽位信息收集,但機器如何知道「買張明天從上海到北京的機票」中,「上?!故浅鞘?,并且「上?!故浅霭l(fā)地呢?
「上?!惯@個詞會被建立在一個城市實體詞庫中,這是「上?!鼓鼙蛔R別到是「城市」的原因。
其次,通過將解析槽位加入語料中,加以訓練讓機器學習相關表述結構,來獲知該句式中,收集到的第一個城市是出發(fā)地,于是把第一個城市填到對應的槽位中。
使用什么工具來讓機器知道,這個信息是要提取的信息?
解析器(Parser):抽取/解析用戶語句中的關鍵信息
上一個講到實體,這里講到的解析器則是這么個工具,用來抽取這些信息。比如會有些通用的解析器如時間解析器、城市解析器、歌手解析器等等。
解析器的類型也比較多,如通用解析器、詞典解析器、正則解析器、組合解析器等等,這里就不再擴展開講具體解析器,實在過于復雜了。
命名實體識別(NER):用來識別具有特定意義的實體。主要會包括像機構、地名、組織等。
是不是發(fā)現(xiàn),解析器和 NER 在做差不多的事情?我是這樣理解的,解析器的話是一個更大的存在,其中包括了 NER。解析器下會有不同類型和不同功能的工具來實現(xiàn)關鍵信息的識別/抽取。
在我們與機器人對話時,一般會涉及到四個不同類型的對話,開放域的聊天、任務驅(qū)動的對話、問答(FAQ)和推薦。
上面是在有次分享中提到的,這四個不同類型的對話,在機器人平臺中,會需要借助不同的功能模塊來實現(xiàn)。
任務對話(Task Dialogue ):有上下文聯(lián)系,就像我們要去訂票、訂餐之類的一段任務型的對話。
我們公司產(chǎn)品中,任務引擎模塊就是做這個任務對話的創(chuàng)建,比如,要訂機票的場景。用戶在這個訂機票的場景中,會涉及到的對話內(nèi)容、流程的設計。
知識圖譜(Knowledge Graph):這個可以理解為可視化關聯(lián)信息。
比如:查詢一個明星的身高、年齡,他的學校、他的女友,他的相關作品,這些基于這個人而構建的信息庫,都可以通過知識圖譜在做整理。并且在構建時能夠做到可視化的了解。
要讓機器人知道,它腦子里有貨了!
訓練(Train):這個概念可以這樣理解,比如你創(chuàng)建了個機器人,但是它什么都還不懂,于是你塞了堆知識給他,這時,它就需要自己訓練學習了。訓練好了,就能回答你塞的那堆知識里的問題了。
講到這就忍不住想用這個學習的例子,來簡單講下一般機器人的創(chuàng)建流程。像我們在學校,會經(jīng)歷上課學習新知識-復習溫習-考試-整理錯題集,以此循環(huán)進行。
這個創(chuàng)建機器人的流程也是一樣通過知識的導入/創(chuàng)建-訓練-測試-優(yōu)化-上線-優(yōu)化,以此循環(huán),不斷強化機器人,讓它越來越智能。
其他:
數(shù)據(jù)標注:將對話日志中的有價值數(shù)據(jù)做標注(標記/匹配/關聯(lián)之類)。
因為人的表達萬千,多種表達方式都代表的同一個意思。有時用戶說了句話,是語料庫中并不包含,于是機器人可能就答非所問了。
Ai 訓練師們就可以將這些數(shù)據(jù)信息標注到對應的問題中去,這樣當用戶再用同樣方式表述時,機器人就能如預期回答了。
講到標注想到之前在朋友圈很火的你畫我猜,谷歌推出的這個小游戲席卷朋友圈。他們用了個如此聰明的做法,其實我們參與其中的做法就是在做數(shù)據(jù)標注,而且還是主動提供數(shù)據(jù)的那種。
這也反映了,數(shù)據(jù)對于機器人的重要性,通過不斷的進行數(shù)據(jù)維護和補充數(shù)據(jù),機器人就會越來越理解人,表達也會越來越智能。就跟我們學習一樣,不斷學習才能夠理解其他的含義,甚至當認知能力提升了,看待問題的角度才能不一樣。
文章來源:優(yōu)設