AI對(duì)話機(jī)器人目前應(yīng)用已經(jīng)很廣泛了,。智能客服、語音助手,、外呼機(jī)器人……等等,,在日常生活中你可能已經(jīng)碰到了很多的對(duì)話機(jī)器人。那對(duì)話機(jī)器人中,,算法開發(fā)過程是怎么樣的呢,?今天筆者從一個(gè)AI產(chǎn)品經(jīng)理的視角,做一個(gè)簡單的介紹和闡述,。 如果你問一個(gè)AI算法工程師,,如何將算法模型搭建至滿足業(yè)務(wù)需求,上線,、給用戶使用,,算法工程師可能會(huì)跟你說一堆的AI技術(shù)細(xì)節(jié)。包括如何選型,、算法模型間的技術(shù)差異點(diǎn),,等等。往往讓非算法技術(shù)人員聽得云里霧里,,覺得很高大上但不明就里,。 本文我們不講AI技術(shù)細(xì)節(jié),我們從AI PM的視角,,來闡述對(duì)話機(jī)器人的開發(fā)過程中,,算法扮演了什么角色,承擔(dān)了什么任務(wù),,以及如何影響最終的產(chǎn)出結(jié)果的,。 對(duì)話機(jī)器人當(dāng)中使用的算法,可大致分為:意圖識(shí)別,、實(shí)體識(shí)別,、相似度計(jì)算3大類。主要應(yīng)用于機(jī)器人對(duì)于客戶應(yīng)答的識(shí)別能力,。在產(chǎn)品開發(fā)過程中,,算法的開發(fā)流程大致如下: 下面我們詳細(xì)描述每個(gè)環(huán)節(jié)的開發(fā)過程與內(nèi)容,。 一,、需求定義主要角色:產(chǎn)品經(jīng)理,、AI訓(xùn)練師在做算法的開發(fā)之前,需要走做產(chǎn)品需求定義,。對(duì)話機(jī)器人中,,使用到算法的地方,主要在于語義識(shí)別的部分,。主要包括:意圖識(shí)別,、實(shí)體識(shí)別、相似度計(jì)算,,等等,。這里以意圖識(shí)別為例,做相應(yīng)的介紹與闡述,。 在應(yīng)用于業(yè)務(wù)場景的對(duì)話機(jī)器人當(dāng)中,,通常需要基于該場景,做多個(gè)意圖的識(shí)別,。通常來說,,意圖的數(shù)量少則幾個(gè),多則幾十個(gè)不等,。而具體需要做多少意圖的識(shí)別,,以及每個(gè)意圖的定義是什么,意圖與意圖之間的邊界是什么,,需要做開發(fā)前的需求定義,。 一般需求定義是由產(chǎn)品經(jīng)理或AI訓(xùn)練師來做的。意圖是根據(jù)業(yè)務(wù)場景進(jìn)行切分的,,而產(chǎn)品經(jīng)理作為對(duì)話機(jī)器人的設(shè)計(jì)者,,本身應(yīng)對(duì)業(yè)務(wù)場景有深刻的了解。同時(shí),,不同于傳統(tǒng)的互聯(lián)網(wǎng)產(chǎn)品經(jīng)理多是對(duì)于產(chǎn)品功能的設(shè)計(jì),,在對(duì)話機(jī)器人的【對(duì)話】層面的設(shè)計(jì),更是體現(xiàn)AI產(chǎn)品經(jīng)理價(jià)值與思路的方面,。 所以產(chǎn)品經(jīng)理需要基于業(yè)務(wù),,做每個(gè)意圖的定義,需做到明確,、清晰,、可驗(yàn)證。這對(duì)后續(xù)的算法開發(fā)至關(guān)重要,,是開發(fā)的方向,、驗(yàn)收的標(biāo)準(zhǔn)、產(chǎn)品的價(jià)值體現(xiàn),。 除了產(chǎn)品經(jīng)理,,也可由AI訓(xùn)練師做算法需求定義,。一般而言,AI訓(xùn)練師的職責(zé)是基于客戶的對(duì)話場景,,做對(duì)話流程設(shè)計(jì)、對(duì)話知識(shí)構(gòu)建與優(yōu)化的,,AI訓(xùn)練師應(yīng)是業(yè)務(wù)場景專家,,所以需要做算法需求的定義。 AI訓(xùn)練師與產(chǎn)品經(jīng)理的區(qū)別在于,,對(duì)話機(jī)器人的功能層面是有產(chǎn)品經(jīng)理負(fù)責(zé),,而AI訓(xùn)練師主要著重于基于對(duì)話場景的對(duì)話設(shè)計(jì)。產(chǎn)品經(jīng)理也需對(duì)AI訓(xùn)練師的工作內(nèi)容熟悉,,以相應(yīng)地設(shè)計(jì)可構(gòu)造優(yōu)秀對(duì)話設(shè)計(jì)的產(chǎn)品功能,。是對(duì)話機(jī)器人的整體owner。 二,、模型預(yù)研主要角色:算法工程師明確了產(chǎn)品需求,,在產(chǎn)品經(jīng)理/AI訓(xùn)練師做完算法需求的宣講之后,算法工程師就要根據(jù)需求,,進(jìn)行算法模型的預(yù)研,。具體來說,就是要判斷目前積累的數(shù)據(jù)和沉淀的算法,,是否可以達(dá)到業(yè)務(wù)的需求,。 預(yù)研的目的主要有2點(diǎn): 算法工程師通常會(huì)在前期做技術(shù)相關(guān)的調(diào)研,了解目前業(yè)內(nèi)主流算法,,包括已被驗(yàn)證的較為優(yōu)秀的模型,,以保證在技術(shù)層面至少在業(yè)內(nèi)是持平和領(lǐng)先的。 同時(shí),,不同業(yè)務(wù)要求的算法能力不同,。算法工程師需要根據(jù)業(yè)務(wù)特性,選型相應(yīng)的模型,,多備幾套方案,,以供模型訓(xùn)練時(shí)使用。 模型預(yù)研的結(jié)果,,通常需要做一個(gè)小型的匯報(bào),。目的是同步模型預(yù)期選型,讓產(chǎn)品經(jīng)理,、AI訓(xùn)練師了解不同的算法模型的優(yōu)劣勢,,以及后優(yōu)化維護(hù)的不同特點(diǎn)。同時(shí)也收集各方的意見,,做最終的模型選擇,。 模型預(yù)研的目的主要是降低風(fēng)險(xiǎn),,即降低模型選錯(cuò)的風(fēng)險(xiǎn)。因?yàn)槟P褪且粋€(gè)從搭建開始,,通過數(shù)據(jù)不斷地訓(xùn)練優(yōu)化的過程,。如果模型選型錯(cuò)誤,有可能出現(xiàn)后續(xù)不管數(shù)據(jù)如何訓(xùn)練,,都無法解決業(yè)務(wù)問題的情況,。所以模型預(yù)研對(duì)于后續(xù)的模型訓(xùn)練,有著重要的意義,。 三,、數(shù)據(jù)準(zhǔn)備與標(biāo)注主要角色:數(shù)據(jù)標(biāo)注師、算法工程師當(dāng)算法需求確定后,,就需要根據(jù)定義的需求,,進(jìn)行數(shù)據(jù)標(biāo)注。這里通常指的是有監(jiān)督學(xué)習(xí)的算法數(shù)據(jù)標(biāo)注,。數(shù)據(jù)標(biāo)注的過程主要包括:數(shù)據(jù)準(zhǔn)備,、數(shù)據(jù)清洗、標(biāo)注規(guī)范制定,、試標(biāo)數(shù)據(jù),、標(biāo)注答疑、正式標(biāo)注,。 1)數(shù)據(jù)準(zhǔn)備 在算法團(tuán)隊(duì)中,,有專門的數(shù)據(jù)分析員,做相應(yīng)的對(duì)話數(shù)據(jù)抽取,。抽取的數(shù)據(jù)是數(shù)據(jù)標(biāo)注的來源,。數(shù)據(jù)抽取需要根據(jù)以下原則:
2)數(shù)據(jù)清洗 抽取了數(shù)據(jù)之后,,數(shù)據(jù)的結(jié)構(gòu)、質(zhì)量不一,,需要進(jìn)行數(shù)據(jù)清洗,。通常會(huì)篩除吊無效的、質(zhì)量不佳的數(shù)據(jù),。數(shù)據(jù)清洗可能運(yùn)用的技術(shù)手段有:關(guān)鍵詞,、實(shí)體識(shí)別、無監(jiān)督學(xué)習(xí)等等,。目的是可清洗出質(zhì)量較好的數(shù)據(jù)以供標(biāo)注,。 3)標(biāo)注規(guī)范制定 在需求定義時(shí),,通常會(huì)給每個(gè)意圖做定義,定義會(huì)明確意圖A是指什么,,意圖B時(shí)指什么,。哪些情況屬于意圖A,哪些情況屬于意圖B,。標(biāo)注團(tuán)隊(duì)首先需要明確每個(gè)意圖的定義,,作為標(biāo)注的指南。 產(chǎn)品經(jīng)理/AI訓(xùn)練師會(huì)給出一份數(shù)據(jù)標(biāo)注的規(guī)范,。這份規(guī)范需要標(biāo)注團(tuán)隊(duì)leader與他們做深入的溝通與理解,以求理解透徹需求,,并可實(shí)際落地至標(biāo)注工作中,,確保需求落地不偏差。 4)試標(biāo)數(shù)據(jù) 制定了標(biāo)注規(guī)范,,同時(shí)拿到了已清洗的抽取數(shù)據(jù)后,,就進(jìn)入了試標(biāo)數(shù)據(jù)環(huán)節(jié)。為什么不直接正式標(biāo)注呢,?因?yàn)橥ǔ?biāo)注都是大批量的,,若出現(xiàn)標(biāo)注規(guī)范理解不到位,或者標(biāo)注規(guī)范本身指定得有問題,,那返工將是很大的人力物力損失,。 為了降低這樣的風(fēng)險(xiǎn),通常會(huì)在前期先拿一小部分?jǐn)?shù)據(jù)進(jìn)行試標(biāo),。試標(biāo)的量根據(jù)情況而定,,通常控制在1-2天時(shí)間內(nèi),,并需收集標(biāo)注反饋,,注明問題與疑惑。 試標(biāo)結(jié)束后,,需要召集標(biāo)注同學(xué),、產(chǎn)品經(jīng)理、AI訓(xùn)練師,、算法工程師,,召開問題同步討論會(huì)。會(huì)議的目的是確定試標(biāo)的問題的解決方案,,各方達(dá)成共識(shí),。方可進(jìn)入下一步驟。 5)正式標(biāo)注 按照確定的且達(dá)成共識(shí)的標(biāo)注規(guī)范,,標(biāo)注團(tuán)隊(duì)就進(jìn)入了正式標(biāo)注階段,。通常標(biāo)注的數(shù)量較多,,需要在標(biāo)注團(tuán)隊(duì)中分配任務(wù)。 標(biāo)注完成后,,需要有標(biāo)注審核員進(jìn)行審核,。通常為抽樣審核。若不通過需打回重標(biāo),。 標(biāo)注結(jié)束后,,須由標(biāo)注團(tuán)隊(duì)Leader匯總標(biāo)注結(jié)果,提交給算法工程師,。 四,、模型構(gòu)建主要角色:算法工程師在接收到標(biāo)注團(tuán)隊(duì)的標(biāo)注數(shù)據(jù)后,算法工程師就需要拿這些數(shù)據(jù),,讓模型運(yùn)轉(zhuǎn)起來,。模型構(gòu)建包括3個(gè)環(huán)節(jié):模型設(shè)計(jì)、特征工程,、模型訓(xùn)練,。 1)模型設(shè)計(jì) 算法工程師會(huì)根據(jù)業(yè)務(wù)的需要,以及算法積累,,進(jìn)行模型設(shè)計(jì),。在這個(gè)環(huán)節(jié)中,產(chǎn)品經(jīng)理應(yīng)與算法工程師確定,,在當(dāng)前業(yè)務(wù)下,,這個(gè)模型該不該做,我們有沒有能力做這個(gè)模型,。在這個(gè)階段中,,最重要的是定義模型目標(biāo)變量。不同的目標(biāo)變量,,決定了這個(gè)模型應(yīng)用的場景,,以及能達(dá)到的業(yè)務(wù)預(yù)期。 2)特征工程 選型之后,,算法工程師會(huì)進(jìn)行特征工程的工作,。整個(gè)模型構(gòu)建可以理解為:從樣本數(shù)據(jù)中提取可以很好描述數(shù)據(jù)的特征,再利用它們建立出對(duì)未知數(shù)據(jù)有優(yōu)先預(yù)測能力的模型,。 所以在模型構(gòu)建中,,特征工程師非常重要的部分。數(shù)據(jù)和特征決定了機(jī)器學(xué)習(xí)的上限,,而模型和算法只是逼近這個(gè)上限而已,。 而現(xiàn)有的技術(shù)能力,如神經(jīng)網(wǎng)絡(luò)等算法能力,可通過模型的自主提取特征能力,,而取代人工提取特征的過程,。方式的不同,在效果上也可能比算法工程師人工提取特征,,可能有提高,。需具體業(yè)務(wù)情況具體看。 3)模型訓(xùn)練 算法工程師會(huì)根據(jù)數(shù)據(jù)在不同模型的訓(xùn)練結(jié)果,,做調(diào)參工作,,以確保模型最終的效果是可滿足業(yè)務(wù)的要求,并可持續(xù)優(yōu)化的,。 算法工程師在訓(xùn)練模型時(shí)使用的數(shù)據(jù)為【訓(xùn)練集】,,該數(shù)據(jù)集合需不能與最后模型測試使用的【測試集】重合/有交集,以確保后續(xù)測試是客觀,、不失真的,。 五、模型測試主要角色:測試工程師模型構(gòu)建完成后,,就需要算法測試工程師介入測試模型的效果。對(duì)于算法的測試,,衡量的基礎(chǔ)指標(biāo)主要是:P值(精準(zhǔn)率),、R值(召回率)和F1值,分別衡量模型預(yù)測的準(zhǔn)確性,、覆蓋面和二者的綜合能力,。 當(dāng)然,還可以根據(jù)業(yè)務(wù)的不同,,有其他的測試驗(yàn)收指標(biāo),,這邊不贅述。 測試的過程,,一般會(huì)使用腳本自動(dòng)化測試,,以覆蓋數(shù)據(jù)量龐大的測試內(nèi)容,保證最短時(shí)間內(nèi)測可能多的內(nèi)容,。 測試完成后,,測試工程師需出具測試報(bào)告。報(bào)告的接收方為:算法工程師,、產(chǎn)品經(jīng)理,、AI訓(xùn)練師。需確認(rèn)報(bào)告內(nèi)容,。同時(shí),,產(chǎn)品經(jīng)理/AI訓(xùn)練師需評(píng)估,模型的效果是否符合預(yù)期。若否,,則需算法模型重新訓(xùn)練調(diào)優(yōu),,直至達(dá)到上線標(biāo)準(zhǔn)為止。 六,、模型驗(yàn)證主要角色:產(chǎn)品經(jīng)理,、AI訓(xùn)練師模型驗(yàn)證指的是模型上線后的數(shù)據(jù)觀察,以驗(yàn)證模型效果,,通常由產(chǎn)品經(jīng)理/AI訓(xùn)練師,,做上線后的跟蹤與觀察。在上線之后,,一般會(huì)做算法相關(guān)的數(shù)據(jù)統(tǒng)計(jì),,每天實(shí)時(shí)監(jiān)測數(shù)據(jù)的情況。 若有數(shù)據(jù)異?;虿环项A(yù)期,,通常需要做以下處理。 1)告知算法團(tuán)隊(duì),,做數(shù)據(jù)反饋收集與模型優(yōu)化 算法的優(yōu)化過程是較為緩慢的,,涉及的流程包括數(shù)據(jù)重新標(biāo)注、模型重新訓(xùn)練,、重新測試/調(diào)優(yōu)等等,。通常周期以“周”為單位。 2)通過規(guī)則矯正 業(yè)務(wù)的問題總是需要及時(shí)地處理與反饋的,,所以需要一些輔助措施,,來響應(yīng)響應(yīng)的需求。一旦發(fā)現(xiàn)算法模型效果不佳,,需要產(chǎn)品經(jīng)理/AI訓(xùn)練師通過規(guī)則矯正的方式,,優(yōu)先做處理。當(dāng)后續(xù)算法優(yōu)化更新之后,,再做原有規(guī)則的恢復(fù),。 七、結(jié)語對(duì)話機(jī)器人算法的開發(fā)過程,,是一個(gè)閉環(huán)的過程,。通過數(shù)據(jù)的訓(xùn)練、測試,、調(diào)優(yōu),,達(dá)成相應(yīng)的業(yè)務(wù)目標(biāo)。隨著數(shù)據(jù)的不斷反饋,,算法模型的效果則會(huì)越來越符合業(yè)務(wù)的需求,,是一個(gè)循序漸進(jìn)的過程,。本篇文章大致介紹了算法開發(fā)的整個(gè)流程與脈絡(luò),希望可以幫到你,。 |
|