主頁 >  其他 > 機器學習在高德用戶反饋資訊處理中的實踐

機器學習在高德用戶反饋資訊處理中的實踐

2020-09-16 04:53:43 其他

1.背景
作為國內領先的出行大資料公司,高德地圖擁有眾多的用戶和合作廠商,這為高德帶來了海量的出行資料,同時通過各個渠道,這些用戶也在主動地為我們提供大量的反饋資訊,這些資訊是需要我們深入挖掘并作用于產品的,是高德地圖不斷進步和持續提升服務質量的重要手段,

本文將主要介紹針對用戶反饋的文本情報,如何利用機器學習的方法來提高大量用戶資料的處理效率、盡可能實作自動化的解題思路,

先來解釋一下重點名詞,

情報:是一種文本、圖片或視頻等資訊,用來解決高德地圖生產或者導航中的具體問題,本質上是指與道路或交通相關的知識或事實,通過一定空間和時間通知給特定用戶,

用戶反饋:是指用戶借助一定的媒介,對所使用的軟體等提供一些反饋資訊,包括情報、建議和投訴等,

典型的用戶反饋型別和選項如下圖所示:

2.問題及解法

用戶反饋的方式可以通過手機的Amap端、PC端等進行上報,上報時選擇一些選擇項以及文本描述來報告問題,以下是一個用戶反饋的示例,其中問題來源、大型別、子型別和道路名稱是選擇項,用戶描述是填寫項,一般為比較短的文本,這些也是我們可以使用的主要特征,

每個用戶在上報了問題之后,均希望在第一時間內問題能夠得到解決并及時收到反饋,但是高德每天的用戶反饋量級在幾十萬,要想達到及時反饋這個目標非常的不容易,

針對這些用戶反饋資訊,當前的整體流程是先采用規則進行分類,其中與道路相關的每條反饋都要經過人工核實,找到用戶上報的問題型別和問題發生的地點,及時更新道路資料,作用于導航,

針對一條反饋的操作需要經過情報識別、情報定位、情報驗證等環節:

1) 情報識別主要是判斷問題型別即給情報打標簽:①分析用戶上報的資訊包括問題來源、大型別、子型別和用戶描述等,②查看上傳的圖片資料,包括手機自動截圖和用戶拍照;

2) 情報定位主要是找到問題發生的位置資訊即定位坐標:①分析用戶反饋問題時戳的位置點即戳點的有效性,②查看用戶上報問題時車輛行駛的位置即自車位置,③分析用戶使用高德軟體程序中的規劃和實走軌跡等日志資訊;

3) 情報驗證:通過以上兩步確定了情報標簽和位置坐標,此環節需要驗證情報標簽(含道路名稱):①分析影像和大資料熱力圖或路網基礎資料,②查看用戶上傳的資料和采集的多媒體圖片資料,

整個業務處理流程如下圖所示:

在處理用戶反饋問題整個程序秉持的原則是完全相信用戶的問題存在,若用戶上報的資訊不足以判斷問題型別和問題發生地點,則會盡量通過用戶規劃和實走軌跡等日志資訊進行推理得出偏向用戶的結論,

目前整個用戶反饋問題處理流程存在的主要問題有:規則分發準確率低,人工核實流程復雜、技能要求高且效率低,去無效誤殺嚴重等,

為了解決以上問題,我們希望引入機器學習的方法,以資料驅動的方式提高作業能力,在進行機器學習化的探索程序中,我們首先對業務進行了拆解及層級化分類,其次使用演算法來替代規則進行情報分類,再次工程化拆解人工核實作業流程為情報識別、情報定位和情報驗證等步驟,實作單人單技能快速作業,最后將工程化拆解后的情報識別步驟使用演算法實作其自動化,

3.機器學習解題

3.1 業務梳理與流程層級化拆解

原始的用戶反饋問題經由規則分類后,再進行人工情報識別、定位和驗證,最終確認問題及其所在是屬于近百種小分類項中的哪一個,進而確定上一級分類以及整個層級的對應關系,

由此可以看出,整個問題處理流程只有一個步驟,處理程序相當復雜,對人工的技能要求很高,且效率低下,而且一千個人眼中就有一千個哈姆雷特,個人的主觀性也會影響對問題的判斷,

針對這種情況,我們對原有業務流程進行梳理和拆解,希望能夠利用機器學習和流程自動化等方式解決其中某些環節,提升整體問題處理的效率,

首先進行有效情報和無效情報的分類即去無效,接著將整個流程拆解為六個層級,包括業務一級、業務二級、業務三級、情報識別、情報定位和情報驗證,

如上圖所示,拆解后的前三個級別為情報分類環節,只有后三個級別需要部分人工干預,其他級別均直接自動化處理,這樣通過層級化、自動化和專人專職等方法極大地簡化了問題同時提高了效率,

3.2 業務與模型適配

我們可以看到用戶反饋中既有選擇項又有輸入項,其中選擇項如問題來源等都是有默認值的,需要點擊后選擇相應細分項,用戶不一定有耐心仔細選擇,有耐心的用戶可能會由于不知道具體分類標準而無法選擇正確的分類,而用戶描述,是需要用戶手動輸入的內容,是用戶表達真實意圖的主要途徑,是一條用戶反饋當中最有價值的內容,

用戶描述一般分為三種情況:無描述、有描述但無意義的、有描述且有意義的,前兩種稱之為無效描述,后一種稱之為有效描述,

根據業務拆解結果,業務流程第一步即為去無效,在這之后,我們將有效、無效描述的用戶反饋進行區分,分別建立相應的流程進行處理,

1) 有效描述的用戶反饋,逐級分類,第一級分為資料、產品、轉發三類,其中產品和轉發兩類直接進行自動化處理,資料類別會在第二級中分為道路和專題,專題是指非道路類的限行、步導、騎行等,

2) 無效描述的用戶反饋,進行同樣的分類,并走一樣的流程,但是樣本集和模型是不同的,并且最后沒有演算法處理的步驟,直接走人工或者規則處理,

3) 最終根據實際業務需要進行層層拆解后形成了下圖所示的業務與模型適配的結構,

由以上分析可見,情報分類和情報識別均為多分類的文本分類問題,我們針對各自不同的資料特點,進行相應的操作:

情報分類,每一級類別雖不同,但是模型架構卻是可以復用的,只需要有針對性的做微小改動即可,且有以前人工核實過(包含情報識別、情報定位、情報驗證等程序)具有最終結果作為分類標簽的歷史資料集作為真值,樣本集獲得相對容易,

情報識別,其分類標簽是在情報驗證之前的中間結果,只能進行人工標注,并且需要在保證線上正常生產的前提下,盡量分配人力進行標注,資源非常有限,所以我們先在情報分類資料集上做Finetuning來訓練模型,然后等人工標注樣本量積累到一定量級后再進行情報識別上的應用,

3.3 模型選擇

首先,將非結構化的文本用戶描述表示成向量形式即向量空間模型,傳統的做法是直接使用離散特征one-hot表示,即用tf-idf值表示詞,維度為詞典大小,但是這種表示方式當統計樣本數量比較大時就會出現資料稀疏和維度爆炸的問題,

為了避免類似問題,以及更好的體現詞語之間的關系如語意相近、語序相鄰等,我們使用word embedding的方式表示,即Mikolov提出的word2vec模型,此模型可以通過詞的背景關系結構資訊,將詞的語意映射到一個固定的向量空間中,其在向量空間上的相似度可以表示出文本語意上的相似度,本質上可以看作是語境特征的一種抽象表示,

其次,也是最重要的就是模型選擇,相對于傳統的統計學習方法復雜的特征工程步驟,深度學習方法更受青睞,NLP中最常用的是回圈神經網路RNN,RNN將狀態在自身網路中回圈傳遞,相對于前饋神經網路可以接受更廣泛的時間序列結構輸入,更好的表達背景關系資訊,但是其在訓練程序中會出現梯度消失或梯度爆炸等問題,而長短時記憶網路LSTM可以很好的解決這個問題,

3.4 模型架構

將每個用戶反饋情報的詞向量結果作為LSTM的輸入,接著將LSTM的最后一個單元的結果作為文本特征,與其他用戶選擇項問題一起merge后作為模型輸入,然后經過全連接層后使用softmax作為輸出層進行分類,得到的0~1之間的實數即為分類的依據,多分類的網路架構如下圖所示:

4.實戰經驗總結
理清業務邏輯、確定解題步驟、確認樣本標注排期并跑通了初版的模型后,我們覺得終于可以松一口氣,問題應該已經解決過半了,剩下的就是做做模型調參和優化、坐等樣本積累,訓練完模型就可以輕松上線了,

但實際情況卻是面臨著比預想更多的問題和困難,訓練資料量不夠、單個模型效果不好、超參設定不理想等問題接踵而至,漫長而艱難的優化和迭代程序才剛剛開始,

4.1 Fine-tuning

選定了模型之后,情報識別首先面臨的問題是樣本量嚴重不足,我們采用Fine-tuning的辦法將網路上已經訓練過的模型略加修改后再進行訓練,用以提升模型的效果,隨著人工標注樣本逐漸增加,在不同大小的資料集上都可以取得大約3個百分點的提升,

4.2 調參
模型的調參是個修煉內功煉制金丹的程序,實際上取得的效果卻不一定好,我們一共進行了近30組的調參實驗,得出了以下飽含血淚的寶貴經驗:

1)初始化,一定要做的,我們選擇 SVD初始化,

2) dropout也是一定要用的,有效防止過擬合,還有Ensemble的作用, 對于LSTM,dropout的位置要放到LSTM之前,尤其是bidirectional LSTM是一定要這么做的,否則直接過擬合,

3) 關于優化演算法的選擇,我們嘗試了Adam、RMSprop、SGD、AdaDelta等,實際上RMSprop和Adam效果相差不多,但基于Adam可以認為是RMSprop 和 Momentum 的結合,最終選擇了Adam,

4) batch size一般從128左右開始調整,但并不是越大越好,對于不同的資料集一定也要試試batch size為64的情況,沒準兒會有驚喜,

5) 最后一條,一定要記住的一條,盡量對資料做shuffle,

4.3 Ensemble
針對單個模型精度不夠的問題,我們采用Ensemble方式解決,進行了多組試驗后,最終選定了不同引數設定時訓練得到的最好模型中的5個通過投票的方式做Ensemble,整體準確率比單個最優模型提高1.5個百分點,

另外為了優化模型效果,后續還嘗試了模型方面的調整比如雙向LSTM和不同的Padding方式,經過對比發現在情報識別中差異不大,經分析是每個用戶描述問題的方式不同且分布差異不明顯所致,

4.4 置信度區分
當情報識別多分類模型本身的結構優化和調參都達到一定瓶頸后,發現模型最終的效果離自動化有一定的差距,原因是特征不全且某些特征工程化提取的準確率有限、類別不均衡、單個類別的樣本數量不多等,

為了更好的實作演算法落地,我們嘗試進行類別內的置信度區分,主要使用了置信度模型和按類別設定閾值兩種辦法,最終選擇了簡單高效的按類別設定閾值的方法,

置信度模型是利用分類模型的標簽輸出結果作為輸入,每個標簽的樣本集重新分為訓練集和驗證集做二分類,訓練后得到置信度模型,應用高置信的結果,

在置信度模型實驗中,嘗試了Binary和Weighted Crossentropy、Ensemble的方式進行置信度模型實驗,Weighted Crossentropy的公式為:

為了避免溢位,將公式改為:

其中,表示:

實驗的結果是Binary方式沒有明顯效果提升,Ensemble在95%置信度上取得了較高的召回率,但是沒有達到98%置信度的模型,

借鑒了情報分類演算法模型落地時按照各個類別設定不同softmax閾值的方式做高置信判斷即按類別設定閾值的方式,在情報識別中也使用類似的方法,取得的效果超過了之前做的高置信模型效果,所以最終選擇了此種方式,這部分可以很大地提高作業員的作業效率,同時為了減少作業員的操作復雜性,我們還提供了低置信部分的top N推薦,最大程度節省作業時間,

5.演算法效果及應用成果

5.1 情報分類

演算法效果:根據實際的應用需求,情報分類演算法的最終效果產品類準確率96%以上、資料類召回率可達99%,

應用成果:與其他策略共同作用,整體自動化率大幅提升,在通過規則優化后實際應用中取得的效果,作業人員大幅度減少,單位作業成本降低4/5,解決了用戶反饋后端處理的瓶頸,

5.2 情報識別

演算法效果:根據使用時高置信部分走自動化,低置信走人工進行標注的策略,情報識別演算法的最終效果是有效描述準確率96%以上,

應用成果:完成情報標簽分類模型接入平臺后通過對高低置信標簽的不同處理,最終提升作業人員效率30%以上,

6.總結與展望
通過此專案我們形成了一套有效解決復雜業務問題的方法論,同時積累了關于NLP演算法與業務緊密結合解題的實戰經驗,目前這些方法與經驗已在其他專案中很好的付諸實施,并且在持續的積累和完善中,在不斷提升用戶滿意度的前提下盡可能的高效自動化的處理問題,是我們堅持不懈的愿景和目標,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/53488.html

標籤:其他

上一篇:求大神解答下docker service 負債均衡策略問題

下一篇:從頭學pytorch(十四):lenet

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more