產(chǎn)品經(jīng)理視角下的自然語言處理
編輯導(dǎo)語:自然語言理解俗稱“人機(jī)對話”,AI領(lǐng)域分支科學(xué),以語言學(xué)為基礎(chǔ),涉及心理學(xué)、邏輯學(xué)、聲學(xué)、數(shù)學(xué)和計(jì)算機(jī)科學(xué)。其算法和邏輯的設(shè)計(jì)和實(shí)現(xiàn)自然十分復(fù)雜和困難,作為智能語音系統(tǒng)的產(chǎn)品,本文作者今天從產(chǎn)品的視角和大家簡單的聊一聊“自然語言理解”及其周邊知識(shí)。
一、名詞解釋
1. 語音交互“三駕馬車”
1)ASR
語音自動(dòng)識(shí)別,把外界的聲音轉(zhuǎn)寫成文字,相當(dāng)于人類的耳朵。
2)NLP
分為NLU和NLG兩部分, NLU負(fù)責(zé)理解內(nèi)容,NLG負(fù)責(zé)生成內(nèi)容。
前者是對外界輸入的理解,后者是根據(jù)理解的內(nèi)容生成對應(yīng)的輸出,相當(dāng)于人類的大腦。
3)TTS
語音合成,NLG生成的文字由TTS由不同音色播報(bào)出來,相當(dāng)于人類的嘴巴。
2. 自然語言理解
1)語料
語料是構(gòu)成訓(xùn)練集和測試集的基本單位,可以是句子、短語,通過對大量語料學(xué)習(xí)幫助模型識(shí)別用戶的意圖。
2)訓(xùn)練集和測試集
顧名思義前者是用來訓(xùn)練模型進(jìn)行意圖識(shí)別的,而后者是用來測試模型學(xué)習(xí)效果如何的,二者都是由語料構(gòu)成。
3)置信度
人為設(shè)定,超過了模型的置信度表示模型就會(huì)去理解(結(jié)果可能會(huì)理解錯(cuò)或理解對),小于置信度,強(qiáng)制模型不去理解。
3. 模型及算法
1)機(jī)器學(xué)習(xí)模型
通過算法使得機(jī)器能從大量歷史數(shù)據(jù)中學(xué)習(xí)規(guī)律,從而對新的樣本做出智能識(shí)別或?qū)ξ磥碜龀鲱A(yù)測,相當(dāng)于培養(yǎng)模型“舉一反三”的能力。
2)神經(jīng)網(wǎng)絡(luò)模型
通過大量的簡單計(jì)算單元構(gòu)成的非線性系統(tǒng),在一定程度上模仿了人腦神經(jīng)系統(tǒng)的信息處理、存儲(chǔ)和檢索功能,是對人腦神經(jīng)網(wǎng)絡(luò)的某種簡化、抽象和模擬,相當(dāng)于“由淺入深”的學(xué)習(xí)過程。
二、語音交互的應(yīng)用場景
從目前商業(yè)市場劃分來看,語音交互主要應(yīng)用場景及細(xì)分賽道眾多:智能家居、車載場景、醫(yī)療場景、教育場景和客服場景等。
從有無硬件載體上可簡單粗暴的分為兩大類:
1. 聊天機(jī)器人
產(chǎn)品定位于日常的“人機(jī)閑聊”。
可掌控簡單或復(fù)雜場景人機(jī)交互,依賴于ASR、NLP和TTS,通常使用嵌入式系統(tǒng)與硬件完成對接,如常見的天貓精靈、Siri和車載機(jī)器人等,主要應(yīng)用在智能機(jī)器人領(lǐng)域。
2. 語音外呼
產(chǎn)品定位于“完成任務(wù)”,業(yè)務(wù)屬性更強(qiáng)。
上游通過呼叫中心(FS)、電信運(yùn)營商拿到路線和號(hào)碼資源,下游觸達(dá)用戶完成活動(dòng)營銷、欠款通知和生活服務(wù),主要應(yīng)用于智能語音外呼和呼入,通常會(huì)有固定的“業(yè)務(wù)流程“作為客戶引導(dǎo)手段。
目前智能語音行業(yè)由于應(yīng)用場景、業(yè)務(wù)要求、客戶體驗(yàn)或監(jiān)管要求等原因都會(huì)使用封閉問答集來約定與客戶交互的邊界。
如在保險(xiǎn)營銷的業(yè)務(wù)中,客戶若是詢問了和業(yè)務(wù)不相關(guān)的內(nèi)容(今天氣溫是多少度?晚餐有什么推薦的嗎?)機(jī)器會(huì)使用提前設(shè)定好的固定的“兜底”話術(shù)來應(yīng)答(你說啥,我不懂,請回答業(yè)務(wù)相關(guān)的內(nèi)容)將用戶重新拉回業(yè)務(wù)流程中,而不會(huì)與客戶進(jìn)行“不相關(guān)領(lǐng)域”的閑聊。
由于業(yè)務(wù)屬性的特殊性,客服性質(zhì)的外呼業(yè)務(wù)對監(jiān)管和用戶投訴格外關(guān)注,B端客戶對應(yīng)答話術(shù)的要求及意圖識(shí)別的準(zhǔn)確率要求較高。
所以除了使用語料來訓(xùn)練模型,基本上還會(huì)使用正則表達(dá)式和關(guān)鍵字的策略進(jìn)行意圖匹配的輔助。
三、自然語言理解
NLP(自然語言處理)被譽(yù)為人工智能的掌上明珠,究其原因“交流”在人類社會(huì)演進(jìn)中起到了最重要的作用。
作為“交流”最重要的途徑和方式之一,語言伴隨著人類社會(huì)的發(fā)展,歷久彌新,形成了博大精深、非常復(fù)雜的體系。
不同的職業(yè)領(lǐng)域、不同的歷史時(shí)期、也就是我們常說的“自然語言”,就像平常媽媽和你說話一樣,不需要完整的語法、不需要主謂賓定狀補(bǔ)的限定,擬人比喻倒裝夸張對偶各種修辭一起來。
讓孔子來理解我們今天的“語言”他其實(shí)也不知道我們在表達(dá)什么意思,更何況是機(jī)器人呢。
和媽媽交互的場景,在機(jī)器人眼里以下對話可能是這個(gè)樣子的:
- 媽:“把你那豬窩收拾收拾,和你爹一個(gè)熊樣”!
- 機(jī)器人的理解:你和你爸都是熊,你倆長得很像。你養(yǎng)了一只豬,豬窩太亂你需要整理下。
如果沒有具體的對話場景,而且對于一個(gè)沒有感情的機(jī)器,很難讓他理解我們?nèi)祟惾粘I钪械恼Z言。
但是,我們可以教他,就像兒童成長過程一樣:你媽第一次罵你“和你爹一個(gè)熊樣”你也不知道是什么意思,但是罵的多了加上她罵人時(shí)的表情、語氣、情緒等你就知道了“和你爹一個(gè)熊樣”實(shí)際上是在罵你。
四、理解和優(yōu)化過程
1. 訓(xùn)練模型
如上圖“不想上班“標(biāo)簽的訓(xùn)練集的語料內(nèi)容,都是表明作者不想上班的意思,并把其中的80%語料作為訓(xùn)練集扔給模型,讓其去學(xué)習(xí)(可以抽象成將復(fù)雜的非向量化的文本內(nèi)容歸一化為可以計(jì)算的數(shù)學(xué)模型,之后再轉(zhuǎn)換為機(jī)器可以理解的0和1,具體的實(shí)現(xiàn)過程作者也了解過,其中涉及到很多的數(shù)學(xué)內(nèi)容,較為復(fù)雜感興趣的同學(xué)可自行學(xué)習(xí))。
最終,機(jī)器可以明白了其中的大部分意思。
2. 測試模型
不能機(jī)器說學(xué)會(huì)了,我們就認(rèn)為它學(xué)會(huì)了,還要使用測試集對它進(jìn)行“考試”,使用上述語料中剩余的20%作為測試集進(jìn)行測試,得到模型的“識(shí)別率”。
識(shí)別率和“訓(xùn)練集”和“測試集”中的語料內(nèi)容很大的關(guān)系,需要合理的進(jìn)行分配。
否則結(jié)果會(huì)出現(xiàn)“過擬合”(考的恰好都是我會(huì)的,不會(huì)的都沒考,成績很高)和“欠擬合”(考的都不會(huì),成績很低)的現(xiàn)象。
最終考試成績好,皆大歡喜;考試成績不好,回家優(yōu)化。
3. 模型結(jié)果優(yōu)化
1)停用詞
“停用詞”指在一句話中沒有實(shí)際意義,即使去掉對句子的整體理解(句式除外)也不會(huì)造成影響的詞。
如啊、哦、吧這種語氣詞或是出于具體的業(yè)務(wù)考量可以忽略的詞語,在語料預(yù)處理階段會(huì)將這些詞語忽略掉以增加語料的“純粹性”。
2)添加語料
模型識(shí)別的基礎(chǔ)是語料,盡可能多的添加優(yōu)質(zhì)的語料,保證模型在更好的“教育環(huán)境“下學(xué)習(xí),通常在業(yè)務(wù)前期的語料積累階段,添加語料是提高準(zhǔn)確率最直接的方法。
理想的場景是在模型訓(xùn)練之前將完整的語料庫準(zhǔn)備好,以供第一次就可以訓(xùn)練好,但是語料的收集和整理也是耗時(shí)耗力且枯燥的工作,需要大量人工的投入。
3)模型參數(shù)調(diào)節(jié)
參數(shù)(超參數(shù))不僅僅包括一些數(shù)字的調(diào)整,也包括了相關(guān)的網(wǎng)絡(luò)結(jié)構(gòu)的調(diào)整和一些函數(shù)的調(diào)整(前面的停用詞也可以理解為預(yù)處理階段的一種參數(shù)),如對學(xué)習(xí)率、正則化方法、初始化權(quán)值的調(diào)整。
不同的模型類型,可調(diào)節(jié)的參數(shù)不同,需要算法工程師給出具體的優(yōu)化意見。
4. 其他手段
在對模型的優(yōu)化達(dá)到瓶頸之后,若是還不能達(dá)到理想的正確率,可以從其他方面想辦法和提高,如增加“完全匹配”、“正則表達(dá)式”等其他手段。
1)模型識(shí)別的問題
與語料相同的用戶回答可能也不能正確識(shí)別出意圖。
如:語料中有”周六怎么還要加班呢“,客戶也回答”周六怎么還要加班呢“,有時(shí)并不一定會(huì)識(shí)別出“不想上班”的意思。
作者剛開始并不理解為什么會(huì)這樣?
這是因?yàn)槟P蛯⑺姓Z料都進(jìn)行了向量化,所以對模型來說是不存在”相同文字“的概念。
我們可以這樣想,模型對語料的訓(xùn)練集內(nèi)容擬合為一條曲線,離曲線近的內(nèi)容可以識(shí)別出來,離曲線遠(yuǎn)的內(nèi)容識(shí)別不出來,完全相同的語料恰巧很遠(yuǎn)。
2)完全匹配
為了規(guī)避這種場景的出現(xiàn),增加完全匹配,只要和語料完全相同的內(nèi)容在模型之前會(huì)進(jìn)行一輪意圖識(shí)別。
3)正則表達(dá)式
與完全匹配類似,使用正則來表達(dá)復(fù)雜但是具有統(tǒng)一格式規(guī)范的句子,如<.*不想上班.*>,可匹配“我今天不想上班了”、“他們是一群不想上班的產(chǎn)品經(jīng)理”等,可以理解為完全匹配的一種特殊形式。
正則的使用通??梢源蟠蟮暮喕瘜Ψ忾]性問題的語料編輯,節(jié)約工作量,適用于封閉性問題且需要使用著對正則有一定的書寫和理解基礎(chǔ),不適用大規(guī)模的使用。
4.5 未識(shí)別的處理
前面所說的方案都是為了提高意圖理解的準(zhǔn)確性,即使加上了完全匹配和正則的情況下,目前不存在實(shí)際場景下100%識(shí)別準(zhǔn)確率的模型,部分內(nèi)容還是會(huì)給出錯(cuò)誤的判斷。
但是在交互過程,尤其是在真實(shí)業(yè)務(wù)場景(催收、營銷、續(xù)保、欠費(fèi)通知、物業(yè)報(bào)修,餐飲訂座)中觸達(dá)用戶中“不懂裝懂”可不是一個(gè)很好的現(xiàn)象。
- Question:“你吃飯了嗎?”
- Answer:”不想上班就沒人給你發(fā)工資“
這樣的體驗(yàn)肯定是不行的,不會(huì)的問題就說不會(huì),所以我們會(huì)設(shè)置模型的“置信度”。
模型分值高于置信度(參數(shù)的一種),我們相信模型識(shí)別對,低于置信度的我們會(huì)設(shè)定“兜底”的話術(shù)來進(jìn)行應(yīng)答,如“主人,我不懂你的意思唉”、“可能是信號(hào)不好,我沒聽清楚”,既靈活的敷衍了自己不明白的尷尬局面,又表達(dá)了你說的太難了我不懂的意思。
最后,不論是主動(dòng)學(xué)習(xí)還是被動(dòng)接受,語音交互已經(jīng)深入到我們生活的各個(gè)角落,雖然目前語音交互過程通常會(huì)有“所聞非所答”、“這個(gè)機(jī)器人真笨”的感覺,發(fā)展過程中出現(xiàn)的坑,總會(huì)前赴后繼的被填平并駐成山峰。
希望文章會(huì)各位在對自然語言理解的過程中有一定的幫助。
本文由 @Jira狂想曲 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Pexels,基于 CC0 協(xié)議
看完就想起了自己上學(xué)的時(shí)候做文本挖掘的亞子??
????
作者前半部分講的自然語言處理的一些知識(shí),通過形象的比如,簡單易懂,很適合想要初步了解這塊知識(shí)的人,后面關(guān)于模型優(yōu)化那塊感覺還可以出個(gè)后續(xù)?!半x曲線近的內(nèi)容可以識(shí)別出來,離曲線遠(yuǎn)的內(nèi)容識(shí)別不出來,完全相同的語料恰巧很遠(yuǎn)?!薄@里的“完全相同的語料恰巧很遠(yuǎn)”不是很明白
謝謝關(guān)注,在工作中我也會(huì)再深入了解算法和其中的應(yīng)用的,爭取后面出個(gè)后續(xù)
產(chǎn)品在其中主要承擔(dān)哪些工作呢?需要理解機(jī)器學(xué)習(xí)的算法嗎?
AI產(chǎn)品經(jīng)理是要深入懂得算法的,我只了解NLP的淺層的問題,畢竟有時(shí)候要和開發(fā)去討論如何進(jìn)行優(yōu)化。
產(chǎn)品在其中的工作有2方面:
1、熟悉業(yè)務(wù):意圖和功能都是為業(yè)務(wù)服務(wù)的,每個(gè)業(yè)務(wù)上算法模型大同小異的,但是業(yè)務(wù)層面有很大的差別,首先要將業(yè)務(wù)了解清楚,為之后的流程設(shè)計(jì)做好鋪墊;(40%)
2、協(xié)調(diào)資源:各個(gè)階段下的協(xié)調(diào)資源,包括前期的收集整理語料,中期的模型訓(xùn)練和測試,后期的持續(xù)優(yōu)化運(yùn)營等(60%)