天天看點

來了解下人工智能行業常用名詞?

來了解下人工智能行業常用名詞?

Photo by Dominik Scythe on Unsplash

基于我自己在工作中接觸到的,整理了人工智能行業中設計師需要了解的一些名詞、内容。

一方面供自己學習思考,另一方面也希望能幫助到準備投入到人工智能行業的設計師。之前聽有的朋友講到,覺得自己沒有計算機背景,有點害怕進入到這樣個領域來。

沒有計算機沒有關系的,隻要對這個充滿好奇,一個個的問題解決掉,在你眼前的迷霧都會散去的。

先簡單舉幾個人工智能在生活中有在應用的例子

像現在有的超市寄存物件,開箱時采用的人臉識别;像家裡購置的智能音響,時不時還能跟它聊上幾句;像接聽到的銀行電話(是的,對方可能是機器人噢);像在淘寶上咨詢的客服小蜜;像你手機裡的虛拟助手….等等這些都是人工智能在生活中的應用。

這幾個例子是在生活中比較普遍能接觸到的,實際人工智能應用的領域還在不斷的擴大,我們甚至都無法想象到,未來的生活會是怎樣的狀态和場景。

在這家公司之前,我做過語音互動類的産品互動設計。當時在定義人與裝置進行語音互動時,會是怎樣的一個互動場景。從說喚醒詞到發出指令,從收到回報到繼續對話。喚醒後等待的時間、結束的規則等等這些。

而現在,我大部分時間是在設計工具,如何讓使用者能快速的建立出一個智能機器人。如何讓機器人的建立者友善快捷的添加機器人的相關資料和建立出出對話場景。

是以在進行這些工具的設計之前,有些名詞概念,會需要設計師來了解一下,能讓我們更好的了解人工智能的一些原理以及能夠讓設計師具象化到實際的設計中,甚至能基于此技術/原理來進行相關的創新或研究。

整理内容如下:(内容基于工作及自身了解,如有概念了解錯誤,歡迎斧正~)

下面嘗試用較易了解的方式來解釋這些名詞:

與機器人進行對話,首先就需要讓機器人懂我們說的話,這其中,就需要來關注到自然語言處理,通過自然語言處理技術,能夠實作我們與機器之間“無障礙”對話。

自然語言處理(NLP):是人類與機器溝通的中介,需要靠它來了解、處理和運用自然語言

自然語言了解(NLU):指的是機器的語言了解能力,将人類語言轉化為機器可了解的内容

自然語言生成(NLG):指的是機器通過一系列的分析處理後,把計算機資料轉化生成為自然語言内容,讓人類可了解

我把這三者關系畫了張圖示,我是以這樣的方式了解的

來了解下人工智能行業常用名詞?

從圖中可進一步看出,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訓練師們就可以将這些資料資訊标注到對應的問題中去,這樣當使用者再用同樣方式表述時,機器人就能如預期回答了。

講到标注想到之前在朋友圈很火的你畫我猜,谷歌推出的這個小遊戲席卷朋友圈。他們用了個如此聰明的做法,其實我們參與其中的做法就是在做資料标注,而且還是主動提供資料的那種。

這也反映了,資料對于機器人的重要性,通過不斷的進行資料維護和補充資料,機器人就會越來越了解人的表達越來越智能了。就跟我們學習一樣,不斷學習才能夠了解其他的含義,甚至當認知能力提升了,看待問題的角度才能不一樣。

更為深入的名詞,像分詞、神經網絡、深度學習等等這些,可以搜尋Easyai 這個網站去了解。 還有很多詞我不太能轉為自己可了解的方式來表述。我也在繼續學習中,歡迎一起探讨~

以上,

推薦網站:

https://easyai.tech

人工智能學習庫

相關學習資料來源:

https://blog.csdn.net/IT_xiao_bai/article/details/81180513

淺談自然語言處理和自然語言了解

《自然語言處理實踐》

原文釋出時間:2019-11-28

本文作者:空明

本文來自

空明裡

,了解相關資訊可以關注“

繼續閱讀