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