通過機(jī)器學(xué)習(xí)和自然語言理解結(jié)束,Uber實(shí)現(xiàn)了一套智能的聊天系統(tǒng),從而有效的提升司機(jī)和乘客之間的溝通效率,減少對司機(jī)的打擾。
想象一下站在路邊等待你的優(yōu)步車過來接你時(shí),在你的應(yīng)用程序上,你會(huì)看到車子幾乎沒有移動(dòng)。于是你向司機(jī)發(fā)送消息了解發(fā)生了什么事。
你不知道的是,你的司機(jī)在前往接你的途中遇到了交通堵塞。他們會(huì)收到你的消息并希望回復(fù)。這種情況是優(yōu)步的司機(jī)伙伴們告訴我們的一個(gè)痛點(diǎn)。所以我們開始思考,如果有可能的話,司機(jī)可以通過一個(gè)簡單的點(diǎn)擊就可以與乘客進(jìn)行溝通。
我們提出了一種新的智能回復(fù)功能,稱為一鍵式聊天(OCC)。借助OCC,在開始行程前乘客和司機(jī)之間的協(xié)調(diào)更快、更無縫。利用機(jī)器學(xué)習(xí)和自然語言處理(NLP)技術(shù)來預(yù)測對一般乘客信息的響應(yīng),優(yōu)步開發(fā)了OCC讓司機(jī)更容易回復(fù)app內(nèi)的消息。
OCC 是UberChat最新的關(guān)鍵的增強(qiáng)功能之一,旨在通過提供最相關(guān)的回復(fù),為優(yōu)步的司機(jī)伙伴提供一鍵式聊天體驗(yàn)。
圖1:通過一鍵式聊天,司機(jī)可以更輕松地回復(fù)乘客的消息。
一鍵式聊天架構(gòu)
一鍵式聊天(OCC)利用Uber的機(jī)器學(xué)習(xí)平臺(tái)Michelangelo在乘客聊天消息上執(zhí)行NLP,并生成適當(dāng)?shù)幕貜?fù)。如下面的圖2所示,該體系結(jié)構(gòu)遵循五個(gè)步驟:
1.發(fā)送方(乘客app)發(fā)送消息。
2.一旦我們的后端服務(wù)收到消息,后端就會(huì)將消息發(fā)送給Michelangelo的機(jī)器學(xué)習(xí)服務(wù)。
3.機(jī)器學(xué)習(xí)模型對消息進(jìn)行預(yù)處理和編碼,為每個(gè)可能的意圖生成預(yù)測分?jǐn)?shù),并將它們發(fā)送回后端服務(wù)。
4.一旦后端服務(wù)收到預(yù)測,它將遵循回復(fù)檢索策略以找到最佳回復(fù)(在這種情況下,生成前四個(gè)最佳回復(fù))。
5.接收方(司機(jī)應(yīng)用程序)接收建議并將其呈現(xiàn)在應(yīng)用程序上供司機(jī)點(diǎn)擊。
圖2:優(yōu)步智能回復(fù)系統(tǒng)OCC的架構(gòu)由五步工作流程組成。
為了找到對每個(gè)接收消息的最佳回復(fù),我們將任務(wù)制定為具有兩個(gè)主要組件的機(jī)器學(xué)習(xí)解決方案:1)意圖檢測和2)回復(fù)檢索。
如下面的圖3所示,思考這個(gè)例子,以更好地理解機(jī)器學(xué)習(xí)如何實(shí)現(xiàn)OCC體驗(yàn):
圖3:機(jī)器學(xué)習(xí)算法賦予OCC體驗(yàn)流程。涉及兩個(gè)關(guān)鍵步驟:1)意圖檢測和2)回復(fù)檢索。
司機(jī)收到一條乘客的信息:“你現(xiàn)在在哪里?”,這在司機(jī)前往接乘客的途中非常常見的。OCC系統(tǒng)首先將消息的意圖檢測為“你在哪里?”這一步稱為意圖檢測。然后,系統(tǒng)會(huì)向司機(jī)發(fā)出前四個(gè)最相關(guān)的回復(fù),分別是“ 是的,我在路上 ”,“ 抱歉,堵車了 ”,“ 我在您的上車地點(diǎn) ”,以及“ 請給我打電話“。這是回復(fù)檢索步驟?,F(xiàn)在,司機(jī)可以選擇這四個(gè)回復(fù)中的一個(gè),并通過一次點(diǎn)擊將其發(fā)送給乘客。
在UberChat中實(shí)現(xiàn)OCC
我們的UberChat系統(tǒng)允許Uber平臺(tái)上的司機(jī),乘客,消費(fèi)者和派送員在app內(nèi)進(jìn)行通信。當(dāng)前流程遵循標(biāo)準(zhǔn)消息傳遞系統(tǒng):我們希望發(fā)送者輸入他們的消息,然后將消息發(fā)送給接收者。下面的圖4顯示了具有典型消息流的UberChat系統(tǒng)的概述:
圖4:UberChat后端服務(wù)管理發(fā)送者和接收者之間的消息流。
對于用戶發(fā)送的每條消息,Uber的消息傳遞平臺(tái)(UMP)執(zhí)行以下操作(如上圖4所示):
1.將Sender的消息發(fā)送到Uber的Edge Gateway
2.將消息路由到Uber的Messaging Platform
3.將消息添加到推送通知服務(wù)
4.向Uber的Cassandra數(shù)據(jù)庫存放持久化消息
5.推送遠(yuǎn)程和本地的表層消息給Receiver
6.收到消息后,從Messaging Platform獲取消息正文
為了支持智能回復(fù),我們要能夠使用機(jī)器學(xué)習(xí)模型以足夠低的延遲實(shí)時(shí)評(píng)估回復(fù)。為了滿足這一需求,我們利用Uber的內(nèi)部機(jī)器學(xué)習(xí)平臺(tái)Michelangelo的機(jī)器學(xué)習(xí)的訓(xùn)練和服務(wù)流水線。
在UberChat中通過機(jī)器學(xué)習(xí)提供智能回復(fù)
根據(jù)設(shè)計(jì),OCC旨在為司機(jī)伙伴們在前往接乘客期間(即Uber特定的場景和主題領(lǐng)域)提供簡單的聊天體驗(yàn)。然而,它與所有其他試圖理解普通文本信息的嘗試一樣都有一個(gè)技術(shù)挑戰(zhàn):它們不僅簡短,而且還包含縮寫、拼寫錯(cuò)誤和口語。我們在設(shè)計(jì)機(jī)器學(xué)習(xí)系統(tǒng)時(shí)考慮到了這一挑戰(zhàn)。
從外部看,OCC接收到最新傳入的消息并返回可能的回復(fù),但在后臺(tái)還有更多事情要做。有兩個(gè)主要的工作流為OCC ML系統(tǒng)、離線訓(xùn)練和在線服務(wù)提供服務(wù),如圖5所示:
圖5:OCC的背后,我們的機(jī)器學(xué)習(xí)系統(tǒng)依賴于兩個(gè)工作流程,離線訓(xùn)練和在線服務(wù)。
離線訓(xùn)練
在離線訓(xùn)練期間,我們使用以下基于嵌入的ML和NLP流水線來處理這些文本消息:
預(yù)處理器
為了準(zhǔn)備文本嵌入模型的訓(xùn)練數(shù)據(jù),我們利用了匿名的UberChat消息。我們首先按語言(語言檢測)對聊天消息進(jìn)行劃分,然后進(jìn)行長度截?cái)啵ㄩL度<= 2)。最后,我們對每條消息進(jìn)行標(biāo)記。
文本和消息的嵌入
在預(yù)處理之后,我們使用Doc2vec模型進(jìn)行消息嵌入,它從可變長度的文本片段(例如句子,段落和文檔)中學(xué)習(xí)固定長度的特征表示。我們在數(shù)百萬個(gè)匿名的、聚集的UberChat消息中訓(xùn)練Doc2vec模型,并使用該訓(xùn)練將每個(gè)消息映射到一個(gè)密集的向量嵌入空間。滿足我們需求的Doc2vec的兩個(gè)主要優(yōu)點(diǎn)是它可以捕獲單詞的順序和語義。下面的圖6使用t-SNE圖在二維投影中可視化單詞向量。由于它捕獲了單詞的語義,因此模型可以將相似的單詞聚集在一起。例如,“Toyota”接近““Prius”和“Camry”,但與“chihuahua”相距很遠(yuǎn)。
圖6:Doc2vec單詞嵌入的這種二維t-SNE投影顯示了模型自動(dòng)組織概念和隱式地學(xué)習(xí)單詞之間的關(guān)系的能力,并基于語義對它們進(jìn)行聚類。
意圖檢測
為了理解用戶的意圖,我們在嵌入過程之后訓(xùn)練了我們的意圖檢測模型。與Gmail的智能回復(fù)功能類似,我們將意圖檢測任務(wù)定義為分類問題。
為什么我們需要意圖檢測?因?yàn)槿祟愓Z言豐富。有很多方式會(huì)提出同樣的問題,比如“你要去什么地方?”,“你倆要去哪里?”,“你的目的地是什么?”拼寫錯(cuò)誤和縮寫會(huì)增加更多排列,所以聊天消息增加了一定程度的復(fù)雜性。
創(chuàng)建一個(gè)需要對數(shù)百萬個(gè)問題進(jìn)行回復(fù)的系統(tǒng)將無法擴(kuò)展,因此我們需要一個(gè)系統(tǒng)來識(shí)別每個(gè)問題背后的意圖或主題,從而對有限的意圖進(jìn)行回復(fù)。下面的圖7說明了不同的消息如何根據(jù)檢測到的意圖聚集在一起:
圖7:在這種二維t-SNE的句子嵌入的投影中,模型圍繞意圖聚類消息。
意圖-回復(fù)映射
我們利用匿名和聚集的歷史對話來查找每個(gè)意圖的最常見的回復(fù)。之后,我們的通信內(nèi)容策劃師和法律團(tuán)隊(duì)進(jìn)行一輪又一輪擴(kuò)充,使回復(fù)盡可能的容易理解和準(zhǔn)確。然后,我們?yōu)榛貜?fù)檢索創(chuàng)建意圖 - 回復(fù)映射。
在線服務(wù)
一旦我們完成模型的離線訓(xùn)練,在線服務(wù)就相對簡單了。我們獲取最新的輸入消息并通過與離線相同的預(yù)處理器發(fā)送它們。預(yù)處理的消息將通過預(yù)先訓(xùn)練的Doc2vec模型編碼為固定長度的向量表示,之后我們使用向量和意圖檢測分類器來預(yù)測消息的可能意圖。
最后,通過利用我們的意圖 - 回復(fù)映射,我們根據(jù)檢測到的意圖檢索最相關(guān)的回復(fù),并將它們顯示給接收消息的司機(jī)伙伴。此外,一些極端情況將由規(guī)則而不是算法所掩蓋,包括非常短的消息(預(yù)處理階段中被截?cái)嗟南ⅲ砬榉?hào)和低置信度預(yù)測(多意圖用例)。
下一步
我們計(jì)劃繼續(xù)在全球市場中將一鍵式聊天功能擴(kuò)展到其他語言。我們還在研究更多特定于Uber的上下文功能,如地圖和交通信息,并計(jì)劃將它們合并到我們現(xiàn)有的模型中。這些更新將增加我們更準(zhǔn)確地識(shí)別用戶意圖和展示定制回復(fù)的可能性,從而更好地協(xié)助司機(jī)伙伴們:簡而言之,讓優(yōu)步體驗(yàn)變得更加神奇。
此外,雖然當(dāng)前系統(tǒng)使用靜態(tài)意圖 – 回復(fù)映射來檢索回復(fù),但我們計(jì)劃構(gòu)建一個(gè)回復(fù)檢索模型以進(jìn)一步提高OCC系統(tǒng)的精度。
在高層次上,OCC是一個(gè)多回合對話系統(tǒng)的自然應(yīng)用,因?yàn)樗緳C(jī)伙伴們和乘客們可以在他們找到對方之前進(jìn)行多次對話。利用OCC和其他功能,構(gòu)建一個(gè)對話系統(tǒng)改善化成功接到乘客和聊天體驗(yàn)的這個(gè)長期過程,最終在我們的平臺(tái)上帶來更好的用戶體驗(yàn)。
OCC只是Uber中眾多不同的NLP / Conversational AI計(jì)劃中的一個(gè)。例如,NL也被用于提高Uber[1,2]的客戶服務(wù),同時(shí)也處于免提乘車的核心位置,這一塊我們將很快開始測試聲控命令。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8408瀏覽量
132580 -
Uber
+關(guān)注
關(guān)注
0文章
411瀏覽量
36245 -
自然語言
+關(guān)注
關(guān)注
1文章
288瀏覽量
13347
原文標(biāo)題:Uber的一鍵式聊天智能回復(fù)系統(tǒng)
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論