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