自然語言處理是一個龐大的領(lǐng)域,比如普通文本與對話就是兩個不同的領(lǐng)域,對話領(lǐng)域里,任務(wù)型對話又不同于閑聊型對話,問答式對話又不同于協(xié)作型對話……
因此,自然語言處理領(lǐng)域的玩家們,除了要思考模型的效果、產(chǎn)品的架構(gòu),更要思考一個最為本質(zhì)的問題:要處理什么數(shù)據(jù)?為什么要處理這類數(shù)據(jù)?
Recurrent AI 選擇了「呼叫系統(tǒng)」。
「電話錄音可追溯而不可作假,這讓呼叫系統(tǒng)成為了一個不可篡改的精準(zhǔn)用戶畫像來源。同時坐席與客戶的全部溝通過程也完整保留在電話錄音中,這意味著影響成單率的全部因素都在錄音之中,只要你能準(zhǔn)確地把它們提取出來。」CTO 張宇韜說。
如何選擇提取哪些信息?如何分步進(jìn)行提???近日,機(jī)器之心前往 Recurrent AI(??苽悾c CEO 陳麒聰、CTO 張宇韜、首席科學(xué)家楊植麟進(jìn)行了深入的對話。他們講述了一個用語音識別、語義理解和數(shù)據(jù)挖掘,把呼叫系統(tǒng)「變廢為寶」的故事。
機(jī)器之心Synced語音識別小程序
機(jī)器之心:能否介紹一下 DealTape(交易磁帶)智能呼叫系統(tǒng)?
我們的產(chǎn)品是一個優(yōu)化溝通的 AI,希望能夠從統(tǒng)計分析的角度幫助人們?nèi)シ治?,在不同的商業(yè)背景下,哪些話術(shù)產(chǎn)生了積極的影響,哪些產(chǎn)生了消極的影響。想要實現(xiàn)這一點,就首先需要語音識別和自然語言處理技術(shù),把聲音轉(zhuǎn)換成由標(biāo)簽組成的向量,因此這也是我們的技術(shù)棧的主要構(gòu)成部分。
我們最先切入的行業(yè)是那些會使用呼叫系統(tǒng)的行業(yè)。購買呼叫系統(tǒng)說明他們對監(jiān)督坐席與客戶溝通的過程是有強(qiáng)需求的。然而過去囿于技術(shù),大部分錄音只能靠人工重聽或者棄置。而我們的系統(tǒng)可以節(jié)省 90% 以上聽錄音的時間,讓坐席和管理者都能夠直接發(fā)現(xiàn)溝通中的問題、直接進(jìn)行有針對性的優(yōu)化。
機(jī)器之心:為什么選擇做智能呼叫系統(tǒng)?
我們幾位創(chuàng)始人的背景集中在 NLP 與數(shù)據(jù)挖掘領(lǐng)域。最開始我們是從聊天機(jī)器人開始進(jìn)行業(yè)務(wù)上的探索的。然而一段時間之后,我們逐漸認(rèn)識到,聊天機(jī)器人在商業(yè)邏輯上有一些不通暢的地方:一方面,現(xiàn)在的任務(wù)型聊天機(jī)器人仍然需要非常深度的定制,換言之成本十分高昂,另一方面,它對于大多數(shù)公司仍然是一樣「nice to have」的東西,大家的支付意愿也不是特別高。
因此,我們就在思考,做一些技術(shù)棧更深一點的東西。與其說創(chuàng)造對話,不如對已有對話進(jìn)行分析。而對話數(shù)據(jù)最多的地方就是呼叫中心。
呼叫中心的用戶花了大量成本進(jìn)行錄音,但是卻沒有利用它獲得任何價值。電話錄音可追溯而不可作假,這讓呼叫系統(tǒng)成為了一個不可篡改的精準(zhǔn)用戶畫像來源。同時坐席與客戶的全部溝通過程也完整保留在電話錄音中,這意味著影響成單率的全部因素都在錄音之中,只要你能準(zhǔn)確地把它們提取出來。
所以我們就在思考,如何能把利用這些數(shù)據(jù)提高企業(yè)的價值。
機(jī)器之心:DealTape 能夠滿足哪些需求?
兩個典型的需求是培訓(xùn)和實時座席輔助。
一方面是找到各種話術(shù)與成單率之間的關(guān)系,幫助管理者可視化座席問題在哪里,然后通過個性化提示讓坐席學(xué)習(xí)容易成單的話術(shù),能夠提高他們的銷售水平。
另一類是自動填寫客戶畫像,節(jié)省銷售記錄的時間,可以聯(lián)系更多的客戶 , 以及實時根據(jù)客戶問題推送來自銷冠的優(yōu)秀回復(fù)案例。
另一類是把客戶畫像抽取出來,分析其分布,不同類型客戶的流失率、成單率等,是一個數(shù)據(jù)來源詳實的商業(yè)分析工具。
機(jī)器之心:DealTape 服務(wù)于哪些行業(yè)?對不同行業(yè)的系統(tǒng)進(jìn)行什么程度的定制?
會購買呼叫系統(tǒng)的企業(yè)都是我們的潛在用戶。我們現(xiàn)在比較集中的行業(yè)是金融,教育和 B2B。這些行業(yè)的很多基本情況非常類似:沒有一家獨斷的壟斷龍頭公司,而是有非常多中等規(guī)模的企業(yè),同時都可以支付得起呼叫系統(tǒng)和相關(guān)服務(wù)。因此在這些領(lǐng)域內(nèi),DealTape 既有可擴(kuò)展性,也能夠進(jìn)行一些定制。
針對每個不同的行業(yè),我們都對語音和語義模型進(jìn)行了定制化。
這是因為,同樣是呼叫系統(tǒng),不同行業(yè)的使用方式差別會很大,最后音頻中的信息分布、信息量以及內(nèi)容差異也非常大。例如保險銷售需要在電話里和客戶確認(rèn)非常多個人信息,一通電話可能長達(dá)一小時。而信貸行業(yè)去銷售的時候,只需要詢問對方房產(chǎn),社保等資質(zhì)再加微信邀約就可以結(jié)束了,一個電話平均只要幾分鐘。
機(jī)器之心:從模型角度看,DealTape 智能呼叫系統(tǒng)可以分成幾部分?
我們的整個技術(shù)??梢苑譃槿龑樱?/p>
第一層是語音識別層,主要解決的是如何把呼叫系統(tǒng)里一段短則幾分鐘,長則幾小時的電話錄音轉(zhuǎn)換為機(jī)器可以處理的雙軌文字記錄。
第二層是語義理解,通過一系列的文本分類模型,為文本中體現(xiàn)坐席與客戶特點的句子打上標(biāo)簽,并為對話雙方建立「畫像」。
第三層是數(shù)據(jù)挖掘?qū)?,計算不同的?biāo)簽與成單率之間的關(guān)系,將結(jié)果用于培訓(xùn)、實時座席輔助等不同目標(biāo)。
圖:坐席的「話術(shù)點」標(biāo)簽類別
機(jī)器之心:語音識別層和語義理解層分別包括哪些模塊?進(jìn)行哪些任務(wù)?
語音識別層首先通過把人聲段落和背景噪音段落分開的形式把長錄音斷句,進(jìn)一步根據(jù)聲紋信息區(qū)分不同說話人身份,并判斷哪一方是銷售坐席,哪一方是客戶。這個階段解決的是「誰在說話」以及「在什么時候說話」。最后,才對每一句話(utterance)進(jìn)行語音識別。
語義理解層的目的是把自然語言結(jié)構(gòu)化,最后給出一系列關(guān)于坐席和客戶的標(biāo)簽,我們稱之為「畫像」。
常見的針對坐席的標(biāo)簽包括「是不是加了微信」,「是不是約了下次見面」等 KPI 衡量指標(biāo)。而常見的客戶標(biāo)簽則會根據(jù)行業(yè)的不同而產(chǎn)生比較大的差異。例如,在金融信貸領(lǐng)域,「是否有社?!?、「是否有房產(chǎn)」,就是一些重要的二值標(biāo)簽。標(biāo)簽的數(shù)量從幾個到幾十個不等,隨著新用戶逐漸加入,需求逐漸增多,我們也在不斷擴(kuò)充自己的標(biāo)簽體系。
圖:保險行業(yè)的「保險責(zé)任 1」標(biāo)簽對應(yīng)的語句樣例
機(jī)器之心:數(shù)據(jù)挖掘?qū)尤绾卫蒙蟽蓪咏o出的信息?
數(shù)據(jù)挖掘?qū)酉袷且粋€商業(yè)智能(BI)工具包。
在這一層,我們會對所有標(biāo)簽與成單率之間的關(guān)系建模,找到那些與成單率負(fù)相關(guān)程度最高的、波及客戶最多的因素,將它們視為目前坐席需要解決的首要問題。
同時,我們會分析具有這些因素反而成單的案例,例如「被連續(xù)拒絕反而成單」的案例,「被競品先入為主反而成單」的案例,分析究竟哪些話術(shù)起了作用促成了成單,找出銷售打動客戶的原因。
對于銷售坐席來說,我們可以利用分析結(jié)果進(jìn)行有針對性的話術(shù)培訓(xùn)。我們可以根據(jù)某一位坐席的數(shù)據(jù)進(jìn)行回歸分析,再把報表推送給他:通過數(shù)據(jù)分析,我們發(fā)現(xiàn),從用戶角度,你在遇到某種情況的客戶時成單率最低,從個人角度,你的某一環(huán)節(jié)最為薄弱,然后推送和他情況類似的成單案例,對他進(jìn)行有針對性的話術(shù)培訓(xùn)。
對于管理者來說,我們可以給出管理建議:例如,一位坐席同時維護(hù)多少個客戶的時候,成單率最高;又如,哪些話術(shù)能夠最有效地促進(jìn)成單。
另外,我們也可以通過上一層的語義理解,進(jìn)行類似「網(wǎng)站埋點」,監(jiān)督坐席是不是按要求完成了工作,例如是不是推廣了小程序。
機(jī)器之心:語音識別層的核心技術(shù)要點有哪些?
眾所周知,語音識別模型除了需要聲學(xué)模型還需要語言模型。
如果沒有語言模型,單純用聲學(xué)模型進(jìn)行識別,文字會出現(xiàn)漏字、同音字錯誤識別等可讀性問題。因此我們需要一個語言模型在解碼過程中對聲學(xué)模型定向搜索過的結(jié)果進(jìn)行一次重排序。
經(jīng)典的語言模型做法是采用 n-gram 統(tǒng)計模型、但 n-gram 模型存在幾個問題,一是因為參數(shù)非常多,所以容易過擬合;二是即使在 n 取值非常小的時候,例如 3-gram,仍然會發(fā)生參數(shù)爆炸。后來有了基于神經(jīng)網(wǎng)絡(luò)的語言模型,把每個詞,或者每個詞的分布變成一個嵌入碼(embedding), 然后用 RNN 模型來刻畫句子的上下文。這一做法的局限性在于,無論如何設(shè)計模型結(jié)構(gòu),最后都要通過 softmax 進(jìn)行輸出,模型的表現(xiàn)力就被嵌入碼的規(guī)模所限制了。
因此我們在語言模型中引入了「softmax 混合體」概念,相當(dāng)于將若干個 softmax 解碼器做成了一個混合模型,克服了基于神經(jīng)網(wǎng)絡(luò)的語言模型的表現(xiàn)力限制性,在多個語言建模標(biāo)準(zhǔn)數(shù)據(jù)集上獲得復(fù)雜度(perplexity)的大幅提升,例如在 1B Word 數(shù)據(jù)集上就提高了 5.6%。這篇文章入選了 ICLR 2018 oral,是前段時間影響力比較好的一個工作。
機(jī)器之心:訓(xùn)練語音模型需要進(jìn)行什么規(guī)模的標(biāo)注工作?
在冷啟動階段,我們對接了兩家不同行業(yè)的客戶,分別來自信貸領(lǐng)域和 B2B 銷售,我們從他們的數(shù)據(jù)庫中提取數(shù)據(jù),進(jìn)行了數(shù)百個小時的人工標(biāo)注,然后利用這部分?jǐn)?shù)據(jù)訓(xùn)練處了一個基本可用的基線模型,用于后續(xù)的數(shù)據(jù)標(biāo)注。有了基線模型之后,新的未標(biāo)注數(shù)據(jù)首先通過基線模型進(jìn)行預(yù)識別,再交給標(biāo)注員做精細(xì)標(biāo)注,這樣成本就大大降低了。同時,基線模型的訓(xùn)練集也在不斷擴(kuò)充,現(xiàn)在我們最新的基線模型訓(xùn)練集規(guī)模已經(jīng)達(dá)到數(shù)千個小時。
至于生產(chǎn)階段,每個行業(yè)都有一個專屬的語音識別模型,如果用戶所在行業(yè)是我們之前沒有接觸過的,那么我們需要大量標(biāo)注數(shù)據(jù)從頭訓(xùn)練;如果我們之前做過相關(guān)行業(yè),那么標(biāo)注的目的只是適配一下特定公司的數(shù)據(jù)特點,這時只需要進(jìn)行「輕標(biāo)注」,標(biāo)注量大概是新行業(yè)的十分之一。
機(jī)器之心:目前市面上已經(jīng)有許多公司將語音識別視作一項基礎(chǔ)能力模塊,對外提供相對比較成熟的技術(shù)服務(wù)。為什么 Recurrent AI 仍然選擇「自己造輪子」?而不是調(diào)用其他 API?
我們嘗試過用通用的語音識別引擎去識別電話錄音,識別的結(jié)果并不足以支撐上層的語義處理任務(wù)。這是我們「重造輪子」的主要原因。通用語音識別引擎的識別結(jié)果會丟掉很多關(guān)鍵信息,例如一些實體的名稱,像公司名稱和產(chǎn)品名稱之類的,這是用戶最關(guān)心的一部分內(nèi)容,但是反而不能被正確識別。我們甚至嘗試過用一些規(guī)則修改通用識別引擎的識別結(jié)果,比如用戶的企業(yè)名稱是「百姓網(wǎng)」,經(jīng)常被識別成「百姓好」,那么我們可以制定規(guī)則把所有的「百姓好」修改成「百姓網(wǎng)」。但是識別模型是不可控的,可能的錯誤方式有太多了。
另外,從「造輪子」的可行性角度,雖然我們公司創(chuàng)始成員的主要背景是自然語言處理和數(shù)據(jù)挖掘,但是深度學(xué)習(xí)這類端到端的算法在不同領(lǐng)域之內(nèi)有相通之處,而且它大大降低了語音識別的門檻——比如說標(biāo)注精度就從原來的需要「逐字校準(zhǔn)」變成了給出每句的對應(yīng)文本即可,這就是一個成本和精力上可控的任務(wù)了。
機(jī)器之心:數(shù)據(jù)挖掘?qū)拥暮诵募夹g(shù)要點有哪些?
數(shù)據(jù)挖掘的難點就在于如何結(jié)合所有的特征去預(yù)測。我們一般從三個層面來考慮這個問題,一是特征工程(feature engineering),二是模型,三是模型的結(jié)合(ensemble)。模型層面需要考慮的問題比較少,用分類器解決預(yù)測問題已經(jīng)成為定式,xgboost 等工具已經(jīng)非常成熟了。所以我們考慮的主要是,第一,怎么樣去定義更有效的特征;第二,怎么樣去做特征的交叉與結(jié)合,使得其表達(dá)能力和泛化能力更強(qiáng);第三,在最后模型結(jié)合、調(diào)參的層面,把利用不同特征訓(xùn)練出來的模型進(jìn)行結(jié)合。
機(jī)器之心:各個行業(yè)的「標(biāo)簽」是如何確定的?
每個行業(yè)的標(biāo)簽都有所不同,標(biāo)簽是和我們的用戶逐步溝通出來的。
用戶公司的運營人員會和產(chǎn)品溝通,提供一小部分音頻。我們的運營人員在聽過錄音之后會幫助他們進(jìn)行設(shè)計,而用戶也會給出很多需求。
有一些標(biāo)簽?zāi)苊黠@地體現(xiàn)出用戶的商業(yè)邏輯。比如說,在一個競價排名銷售的場景里,用戶就要求系統(tǒng)能夠區(qū)分出「不想花錢」、「價格異議」和「問優(yōu)惠」。在用戶看來,「不想花錢」指代的是完全不想付費、想要免費使用的客戶?!竷r格異議」是一個更為積極的信號,表示客戶有支付意愿,只是覺得價格太貴。而會「問優(yōu)惠」的客戶則更為主動,信號更為積極。
機(jī)器之心:行業(yè)內(nèi)存在哪些競品嗎?
在美國,公司使用呼叫系統(tǒng)的歷史遠(yuǎn)比國內(nèi)悠久,普及情況也遠(yuǎn)勝于國內(nèi),因此有一些類似的產(chǎn)品。例如有一家名為 Chorus 的公司,還有 Gong.io (http://gong.io/) 都是針對銷售領(lǐng)域的智能對話系統(tǒng)公司,但它們針對的對象通常是視頻 demo,在國內(nèi),這一類場景還比較少。