機(jī)器學(xué)習(xí)在高德用戶反饋信息處理中的實(shí)踐
背景
作為國內(nèi)領(lǐng)先的出行大數(shù)據(jù)公司,高德地圖擁有眾多的用戶和合作廠商,這為高德帶來了海量的出行數(shù)據(jù),同時通過各個渠道,這些用戶也在主動地為我們提供大量的反饋信息,這些信息是需要我們深入挖掘并作用于產(chǎn)品的,是高德地圖不斷進(jìn)步和持續(xù)提升服務(wù)質(zhì)量的重要手段。
本文將主要介紹針對用戶反饋的文本情報,如何利用機(jī)器學(xué)習(xí)的方法來提高大量用戶數(shù)據(jù)的處理效率、盡可能實(shí)現(xiàn)自動化的解題思路。
先來解釋一下重點(diǎn)名詞。
情報:是一種文本、圖片或視頻等信息,用來解決高德地圖生產(chǎn)或者導(dǎo)航中的具體問題,本質(zhì)上是指與道路或交通相關(guān)的知識或事實(shí),通過一定空間和時間通知給特定用戶。
用戶反饋:是指用戶借助一定的媒介,對所使用的軟件等提供一些反饋信息,包括情報、建議和投訴等。
典型的用戶反饋類型和選項(xiàng)如下圖所示:
問題及解法
用戶反饋的方式可以通過手機(jī)的 Amap 端、PC 端等進(jìn)行上報,上報時選擇一些選擇項(xiàng)以及文本描述來報告問題,以下是一個用戶反饋的示例,其中問題來源、大類型、子類型和道路名稱是選擇項(xiàng),用戶描述是填寫項(xiàng),一般為比較短的文本。這些也是我們可以使用的主要特征。
每個用戶在上報了問題之后,均希望在第一時間內(nèi)問題能夠得到解決并及時收到反饋。但是高德每天的用戶反饋量級在幾十萬,要想達(dá)到及時反饋這個目標(biāo)非常的不容易。
針對這些用戶反饋信息,當(dāng)前的整體流程是先采用規(guī)則進(jìn)行分類,其中與道路相關(guān)的每條反饋都要經(jīng)過人工核實(shí),找到用戶上報的問題類型和問題發(fā)生的地點(diǎn),及時更新道路數(shù)據(jù),作用于導(dǎo)航。
針對一條反饋的操作需要經(jīng)過情報識別、情報定位、情報驗(yàn)證等環(huán)節(jié):
情報識別主要是判斷問題類型即給情報打標(biāo)簽:①分析用戶上報的信息包括問題來源、大類型、子類型和用戶描述等,②查看上傳的圖片資料,包括手機(jī)自動截圖和用戶拍照;
情報定位主要是找到問題發(fā)生的位置信息即定位坐標(biāo):
分析用戶反饋問題時戳的位置點(diǎn)即戳點(diǎn)的有效性, 查看用戶上報問題時車輛行駛的位置即自車位置, 分析用戶使用高德軟件過程中的規(guī)劃和實(shí)走軌跡等日志信息;情報驗(yàn)證:通過以上兩步確定了情報標(biāo)簽和位置坐標(biāo),此環(huán)節(jié)需要驗(yàn)證情報標(biāo)簽(含道路名稱):①分析影像和大數(shù)據(jù)熱力圖或路網(wǎng)基礎(chǔ)數(shù)據(jù),②查看用戶上傳的資料和采集的多媒體圖片資料。
整個業(yè)務(wù)處理流程如下圖所示:
在處理用戶反饋問題整個過程秉持的原則是完全相信用戶的問題存在。若用戶上報的信息不足以判斷問題類型和問題發(fā)生地點(diǎn),則會盡量通過用戶規(guī)劃和實(shí)走軌跡等日志信息進(jìn)行推理得出偏向用戶的結(jié)論。
目前整個用戶反饋問題處理流程存在的主要問題有:規(guī)則分發(fā)準(zhǔn)確率低,人工核實(shí)流程復(fù)雜、技能要求高且效率低,去無效誤殺嚴(yán)重等。
為了解決以上問題,我們希望引入機(jī)器學(xué)習(xí)的方法,以數(shù)據(jù)驅(qū)動的方式提高作業(yè)能力。在進(jìn)行機(jī)器學(xué)習(xí)化的探索過程中,我們首先對業(yè)務(wù)進(jìn)行了拆解及層級化分類,其次使用算法來替代規(guī)則進(jìn)行情報分類,再次工程化拆解人工核實(shí)作業(yè)流程為情報識別、情報定位和情報驗(yàn)證等步驟,實(shí)現(xiàn)單人單技能快速作業(yè),最后將工程化拆解后的情報識別步驟使用算法實(shí)現(xiàn)其自動化。
機(jī)器學(xué)習(xí)解題
業(yè)務(wù)梳理與流程層級化拆解原始的用戶反饋問題經(jīng)由規(guī)則分類后,再進(jìn)行人工情報識別、定位和驗(yàn)證,最終確認(rèn)問題及其所在是屬于近百種小分類項(xiàng)中的哪一個,進(jìn)而確定上一級分類以及整個層級的對應(yīng)關(guān)系。
由此可以看出,整個問題處理流程只有一個步驟,處理過程相當(dāng)復(fù)雜,對人工的技能要求很高,且效率低下。而且一千個人眼中就有一千個哈姆雷特,個人的主觀性也會影響對問題的判斷。
針對這種情況,我們對原有業(yè)務(wù)流程進(jìn)行梳理和拆解,希望能夠利用機(jī)器學(xué)習(xí)和流程自動化等方式解決其中某些環(huán)節(jié),提升整體問題處理的效率。
首先進(jìn)行有效情報和無效情報的分類即去無效,接著將整個流程拆解為六個層級,包括業(yè)務(wù)一級、業(yè)務(wù)二級、業(yè)務(wù)三級、情報識別、情報定位和情報驗(yàn)證。
如上圖所示,拆解后的前三個級別為情報分類環(huán)節(jié),只有后三個級別需要部分人工干預(yù),其他級別均直接自動化處理。這樣通過層級化、自動化和專人專職等方法極大地簡化了問題同時提高了效率。
業(yè)務(wù)與模型適配我們可以看到用戶反饋中既有選擇項(xiàng)又有輸入項(xiàng),其中選擇項(xiàng)如問題來源等都是有默認(rèn)值的,需要點(diǎn)擊后選擇相應(yīng)細(xì)分項(xiàng),用戶不一定有耐心仔細(xì)選擇,有耐心的用戶可能會由于不知道具體分類標(biāo)準(zhǔn)而無法選擇正確的分類。而用戶描述,是需要用戶手動輸入的內(nèi)容,是用戶表達(dá)真實(shí)意圖的主要途徑,是一條用戶反饋當(dāng)中最有價值的內(nèi)容。
用戶描述一般分為三種情況:無描述、有描述但無意義的、有描述且有意義的。前兩種稱之為無效描述,后一種稱之為有效描述。
根據(jù)業(yè)務(wù)拆解結(jié)果,業(yè)務(wù)流程第一步即為去無效,在這之后,我們將有效、無效描述的用戶反饋進(jìn)行區(qū)分,分別建立相應(yīng)的流程進(jìn)行處理。
有效描述的用戶反饋,逐級分類,第一級分為數(shù)據(jù)、產(chǎn)品、轉(zhuǎn)發(fā)三類,其中產(chǎn)品和轉(zhuǎn)發(fā)兩類直接進(jìn)行自動化處理,數(shù)據(jù)類別會在第二級中分為道路和專題,專題是指非道路類的限行、步導(dǎo)、騎行等。 無效描述的用戶反饋,進(jìn)行同樣的分類,并走一樣的流程,但是樣本集和模型是不同的,并且最后沒有算法處理的步驟,直接走人工或者規(guī)則處理。 最終根據(jù)實(shí)際業(yè)務(wù)需要進(jìn)行層層拆解后形成了下圖所示的業(yè)務(wù)與模型適配的結(jié)構(gòu)。由以上分析可見,情報分類和情報識別均為多分類的文本分類問題,我們針對各自不同的數(shù)據(jù)特點(diǎn),進(jìn)行相應(yīng)的操作:
情報分類,每一級類別雖不同,但是模型架構(gòu)卻是可以復(fù)用的,只需要有針對性的做微小改動即可。且有以前人工核實(shí)過(包含情報識別、情報定位、情報驗(yàn)證等過程)具有最終結(jié)果作為分類標(biāo)簽的歷史數(shù)據(jù)集作為真值,樣本集獲得相對容易。
情報識別,其分類標(biāo)簽是在情報驗(yàn)證之前的中間結(jié)果,只能進(jìn)行人工標(biāo)注,并且需要在保證線上正常生產(chǎn)的前提下,盡量分配人力進(jìn)行標(biāo)注,資源非常有限。所以我們先在情報分類數(shù)據(jù)集上做 Finetuning 來訓(xùn)練模型。然后等人工標(biāo)注樣本量積累到一定量級后再進(jìn)行情報識別上的應(yīng)用。
模型選擇首先,將非結(jié)構(gòu)化的文本用戶描述表示成向量形式即向量空間模型,傳統(tǒng)的做法是直接使用離散特征 one-hot 表示,即用 tf-idf 值表示詞,維度為詞典大小。但是這種表示方式當(dāng)統(tǒng)計(jì)樣本數(shù)量比較大時就會出現(xiàn)數(shù)據(jù)稀疏和維度爆炸的問題。
為了避免類似問題,以及更好的體現(xiàn)詞語之間的關(guān)系如語義相近、語序相鄰等,我們使用 word embedding 的方式表示,即 Mikolov 提出的 word2vec 模型,此模型可以通過詞的上下文結(jié)構(gòu)信息,將詞的語義映射到一個固定的向量空間中,其在向量空間上的相似度可以表示出文本語義上的相似度,本質(zhì)上可以看作是語境特征的一種抽象表示。
其次,也是最重要的就是模型選擇,相對于傳統(tǒng)的統(tǒng)計(jì)學(xué)習(xí)方法復(fù)雜的特征工程步驟,深度學(xué)習(xí)方法更受青睞,NLP 中最常用的是循環(huán)神經(jīng)網(wǎng)絡(luò) RNN,RNN 將狀態(tài)在自身網(wǎng)絡(luò)中循環(huán)傳遞,相對于前饋神經(jīng)網(wǎng)絡(luò)可以接受更廣泛的時間序列結(jié)構(gòu)輸入,更好的表達(dá)上下文信息,但是其在訓(xùn)練過程中會出現(xiàn)梯度消失或梯度爆炸等問題,而長短時記憶網(wǎng)絡(luò) LSTM 可以很好的解決這個問題。
模型架構(gòu)將每個用戶反饋情報的詞向量結(jié)果作為 LSTM 的輸入,接著將 LSTM 的最后一個單元的結(jié)果作為文本特征,與其他用戶選擇項(xiàng)問題一起 merge 后作為模型輸入,然后經(jīng)過全連接層后使用 softmax 作為輸出層進(jìn)行分類,得到的 0~1 之間的實(shí)數(shù)即為分類的依據(jù)。多分類的網(wǎng)絡(luò)架構(gòu)如下圖所示:
實(shí)戰(zhàn)經(jīng)驗(yàn)總結(jié)
理清業(yè)務(wù)邏輯、確定解題步驟、確認(rèn)樣本標(biāo)注排期并跑通了初版的模型后,我們覺得終于可以松一口氣,問題應(yīng)該已經(jīng)解決過半了,剩下的就是做做模型調(diào)參和優(yōu)化、坐等樣本積累,訓(xùn)練完模型就可以輕松上線了。
但實(shí)際情況卻是面臨著比預(yù)想更多的問題和困難,訓(xùn)練數(shù)據(jù)量不夠、單個模型效果不好、超參設(shè)置不理想等問題接踵而至,漫長而艱難的優(yōu)化和迭代過程才剛剛開始。
Fine-tuning選定了模型之后,情報識別首先面臨的問題是樣本量嚴(yán)重不足,我們采用 Fine-tuning 的辦法將網(wǎng)絡(luò)上已經(jīng)訓(xùn)練過的模型略加修改后再進(jìn)行訓(xùn)練,用以提升模型的效果,隨著人工標(biāo)注樣本逐漸增加,在不同大小的數(shù)據(jù)集上都可以取得大約 3 個百分點(diǎn)的提升。
調(diào)參模型的調(diào)參是個修煉內(nèi)功煉制金丹的過程,實(shí)際上取得的效果卻不一定好。我們一共進(jìn)行了近 30 組的調(diào)參實(shí)驗(yàn),得出了以下飽含血淚的寶貴經(jīng)驗(yàn):
初始化,一定要做的,我們選擇 SVD 初始化。 dropout 也是一定要用的,有效防止過擬合,還有 Ensemble 的作用。對于 LSTM,dropout 的位置要放到 LSTM 之前,尤其是 bidirectional LSTM 是一定要這么做的,否則直接過擬合。 關(guān)于優(yōu)化算法的選擇,我們嘗試了 Adam、RMSprop、SGD、AdaDelta 等,實(shí)際上 RMSprop 和 Adam 效果相差不多,但基于 Adam 可以認(rèn)為是 RMSprop 和 Momentum 的結(jié)合,最終選擇了 Adam。 batch size 一般從 128 左右開始調(diào)整,但并不是越大越好。對于不同的數(shù)據(jù)集一定也要試試 batch size 為 64 的情況,沒準(zhǔn)兒會有驚喜。 最后一條,一定要記住的一條,盡量對數(shù)據(jù)做 shuffle。 Ensemble針對單個模型精度不夠的問題,我們采用 Ensemble 方式解決,進(jìn)行了多組試驗(yàn)后,最終選定了不同參數(shù)設(shè)定時訓(xùn)練得到的最好模型中的 5 個通過投票的方式做 Ensemble,整體準(zhǔn)確率比單個最優(yōu)模型提高 1.5 個百分點(diǎn)。
另外為了優(yōu)化模型效果,后續(xù)還嘗試了模型方面的調(diào)整比如雙向 LSTM 和不同的 Padding 方式,經(jīng)過對比發(fā)現(xiàn)在情報識別中差異不大,經(jīng)分析是每個用戶描述問題的方式不同且分布差異不明顯所致。
置信度區(qū)分當(dāng)情報識別多分類模型本身的結(jié)構(gòu)優(yōu)化和調(diào)參都達(dá)到一定瓶頸后,發(fā)現(xiàn)模型最終的效果離自動化有一定的差距,原因是特征不全且某些特征工程化提取的準(zhǔn)確率有限、類別不均衡、單個類別的樣本數(shù)量不多等。
為了更好的實(shí)現(xiàn)算法落地,我們嘗試進(jìn)行類別內(nèi)的置信度區(qū)分,主要使用了置信度模型和按類別設(shè)定閾值兩種辦法,最終選擇了簡單高效的按類別設(shè)定閾值的方法。
置信度模型是利用分類模型的標(biāo)簽輸出結(jié)果作為輸入,每個標(biāo)簽的樣本集重新分為訓(xùn)練集和驗(yàn)證集做二分類,訓(xùn)練后得到置信度模型,應(yīng)用高置信的結(jié)果。
在置信度模型實(shí)驗(yàn)中,嘗試了 Binary 和 Weighted Crossentropy、Ensemble 的方式進(jìn)行置信度模型實(shí)驗(yàn),Weighted Crossentropy 的公式為:
為了避免溢出,將公式改為:
其中,表示:
實(shí)驗(yàn)的結(jié)果是 Binary 方式?jīng)]有明顯效果提升, Ensemble 在 95% 置信度上取得了較高的召回率,但是沒有達(dá)到 98% 置信度的模型。
借鑒了情報分類算法模型落地時按照各個類別設(shè)定不同 softmax 閾值的方式做高置信判斷即按類別設(shè)定閾值的方式,在情報識別中也使用類似的方法,取得的效果超過了之前做的高置信模型效果,所以最終選擇了此種方式,這部分可以很大地提高作業(yè)員的作業(yè)效率。同時為了減少作業(yè)員的操作復(fù)雜性,我們還提供了低置信部分的 top N 推薦,最大程度節(jié)省作業(yè)時間。
算法效果及應(yīng)用成果
情報分類算法效果:根據(jù)實(shí)際的應(yīng)用需求,情報分類算法的最終效果產(chǎn)品類準(zhǔn)確率 96% 以上、數(shù)據(jù)類召回率可達(dá) 99%。
應(yīng)用成果:與其他策略共同作用,整體自動化率大幅提升。在通過規(guī)則優(yōu)化后實(shí)際應(yīng)用中取得的效果,作業(yè)人員大幅度減少,單位作業(yè)成本降低 4/5,解決了用戶反饋后端處理的瓶頸。
情報識別算法效果:根據(jù)使用時高置信部分走自動化,低置信走人工進(jìn)行標(biāo)注的策略,情報識別算法的最終效果是有效描述準(zhǔn)確率 96% 以上。
應(yīng)用成果:完成情報標(biāo)簽分類模型接入平臺后通過對高低置信標(biāo)簽的不同處理,最終提升作業(yè)人員效率 30% 以上。
總結(jié)與展望
通過此項(xiàng)目我們形成了一套有效解決復(fù)雜業(yè)務(wù)問題的方法論,同時積累了關(guān)于 NLP 算法與業(yè)務(wù)緊密結(jié)合解題的實(shí)戰(zhàn)經(jīng)驗(yàn)。目前這些方法與經(jīng)驗(yàn)已在其他項(xiàng)目中很好的付諸實(shí)施,并且在持續(xù)的積累和完善中。在不斷提升用戶滿意度的前提下盡可能的高效自動化的處理問題,是我們堅(jiān)持不懈的愿景和目標(biāo)。
原文鏈接:https://mp.weixin.qq.com/s/FcUV8omDV6b69RBmQKOcoQ
相關(guān)知識
運(yùn)動處方與人生物反饋信息.doc
人工智能和機(jī)器學(xué)習(xí)在健康行業(yè)中的應(yīng)用
全世界都在積極實(shí)踐的患者門戶如何引領(lǐng)健康管理革命
在線健康社區(qū)用戶健康信息態(tài)度的形成機(jī)理研究
幼兒活動教案中的早期教育理念與實(shí)踐.docx
培養(yǎng)自信與獨(dú)立:《愛的教育》在家庭教育中的教育價值及實(shí)踐探索
韶關(guān)多功能生物反饋訓(xùn)練系統(tǒng),心理健康自助儀
「探索」康復(fù)機(jī)器人在神經(jīng)康復(fù)中的應(yīng)用
護(hù)理專業(yè)《健康評估》課程在實(shí)踐教學(xué)中的應(yīng)用與研究
重慶財(cái)經(jīng)學(xué)院《信息檢索與利用》2022
網(wǎng)址: 機(jī)器學(xué)習(xí)在高德用戶反饋信息處理中的實(shí)踐 http://m.u1s5d6.cn/newsview364814.html
推薦資訊
- 1發(fā)朋友圈對老公徹底失望的心情 12775
- 2BMI體重指數(shù)計(jì)算公式是什么 11235
- 3補(bǔ)腎吃什么 補(bǔ)腎最佳食物推薦 11199
- 4性生活姿勢有哪些 盤點(diǎn)夫妻性 10428
- 5BMI正常值范圍一般是多少? 10137
- 6在線基礎(chǔ)代謝率(BMR)計(jì)算 9652
- 7一邊做飯一邊躁狂怎么辦 9138
- 8從出汗看健康 出汗透露你的健 9063
- 9早上怎么喝水最健康? 8613
- 10五大原因危害女性健康 如何保 7828