AI PM視角:對話機器人的演算法是如何開發的? | 人人都是產品經理

編輯導語:對話機器人在我們的日常生活中已經十分常見,那麼,你了解對話機器人中的具體演算法開發過程嗎?對話機器人所使用的演算法可分為哪些類別?本篇文章里,作者就對話機器人的演算法開發流程進行了整體總結,不妨來看一下。

AI對話機器人目前應用已經很廣泛了。智能客服、語音助手、外呼機器人……等等,在日常生活中你可能已經碰到了很多的對話機器人。那對話機器人中,演算法開發過程是怎麼樣的呢?今天筆者從一個AI產品經理的視角,做一個簡單的介紹和闡述。

如果你問一個AI演算法工程師,如何將演算法模型搭建至滿足業務需求,上線、給用戶使用,演算法工程師可能會跟你說一堆的AI技術細節。包括如何選型、演算法模型間的技術差異點,等等。往往讓非演算法技術人員聽得雲里霧裡,覺得很高大上但不明就裡。

本文我們不講AI技術細節,我們從AI PM的視角,來闡述對話機器人的開發過程中,演算法扮演了什麼角色,承擔了什麼任務,以及如何影響最終的產出結果的。

對話機器人當中使用的演算法,可大致分為:意圖識別、實體識別、相似度計算3大類。主要應用於機器人對於客戶應答的識別能力。在產品開發過程中,演算法的開發流程大致如下:

下面我們詳細描述每個環節的開發過程與內容。

一、需求定義

主要角色:產品經理、AI訓練師

在做演算法的開發之前,需要走做產品需求定義。對話機器人中,使用到演算法的地方,主要在於語義識別的部分。主要包括:意圖識別、實體識別、相似度計算,等等。這裡以意圖識別為例,做相應的介紹與闡述。

在應用於業務場景的對話機器人當中,通常需要基於該場景,做多個意圖的識別。通常來說,意圖的數量少則幾個,多則幾十個不等。而具體需要做多少意圖的識別,以及每個意圖的定義是什麼,意圖與意圖之間的邊界是什麼,需要做開發前的需求定義。

一般需求定義是由產品經理或AI訓練師來做的。意圖是根據業務場景進行切分的,而產品經理作為對話機器人的設計者,本身應對業務場景有深刻的了解。同時,不同於傳統的互聯網產品經理多是對於產品功能的設計,在對話機器人的【對話】層面的設計,更是體現AI產品經理價值與思路的方面。

所以產品經理需要基於業務,做每個意圖的定義,需做到明確、清晰、可驗證。這對後續的演算法開發至關重要,是開發的方向、驗收的標準、產品的價值體現。

除了產品經理,也可由AI訓練師做演算法需求定義。一般而言,AI訓練師的職責是基於客戶的對話場景,做對話流程設計、對話知識構建與優化的,AI訓練師應是業務場景專家,所以需要做演算法需求的定義。

AI訓練師與產品經理的區別在於,對話機器人的功能層面是有產品經理負責,而AI訓練師主要著重於基於對話場景的對話設計。產品經理也需對AI訓練師的工作內容熟悉,以相應地設計可構造優秀對話設計的產品功能。是對話機器人的整體owner。

二、模型預研

主要角色:演算法工程師

明確了產品需求,在產品經理/AI訓練師做完演算法需求的宣講之後,演算法工程師就要根據需求,進行演算法模型的預研。具體來說,就是要判斷目前積累的數據和沉澱的演算法,是否可以達到業務的需求。

預研的目的主要有2點:

  1. 演算法是目前業內較為優秀的;
  2. 演算法是可貼合業務需求的。

演算法工程師通常會在前期做技術相關的調研,了解目前業內主流演算法,包括已被驗證的較為優秀的模型,以保證在技術層面至少在業內是持平和領先的。

同時,不同業務要求的演算法能力不同。演算法工程師需要根據業務特性,選型相應的模型,多備幾套方案,以供模型訓練時使用。

模型預研的結果,通常需要做一個小型的彙報。目的是同步模型預期選型,讓產品經理、AI訓練師了解不同的演算法模型的優劣勢,以及后優化維護的不同特點。同時也收集各方的意見,做最終的模型選擇。

模型預研的目的主要是降低風險,即降低模型選錯的風險。因為模型是一個從搭建開始,通過數據不斷地訓練優化的過程。如果模型選型錯誤,有可能出現後續不管數據如何訓練,都無法解決業務問題的情況。所以模型預研對於後續的模型訓練,有著重要的意義。

三、數據準備與標註

主要角色:數據標註師、演算法工程師

當演算法需求確定后,就需要根據定義的需求,進行數據標註。這裡通常指的是有監督學習的演算法數據標註。數據標註的過程主要包括:數據準備、數據清洗、標註規範制定、試標數據、標註答疑、正式標註。

1)數據準備

在演算法團隊中,有專門的數據分析員,做相應的對話數據抽取。抽取的數據是數據標註的來源。數據抽取需要根據以下原則:

  • 抽取的數據需包含在行業中具有代表性的數據;如行業標杆客戶等。
  • 抽取的數據需儘可能覆蓋行業中多樣的數據;讓數據分佈更加均勻,提供覆蓋面廣的數據分佈。

2)數據清洗

抽取了數據之後,數據的結構、質量不一,需要進行數據清洗。通常會篩除吊無效的、質量不佳的數據。數據清洗可能運用的技術手段有:關鍵詞、實體識別、無監督學習等等。目的是可清洗出質量較好的數據以供標註。

3)標註規範制定

在需求定義時,通常會給每個意圖做定義,定義會明確意圖A是指什麼,意圖B時指什麼。哪些情況屬於意圖A,哪些情況屬於意圖B。標註團隊首先需要明確每個意圖的定義,作為標註的指南。

產品經理/AI訓練師會給出一份數據標註的規範。這份規範需要標註團隊leader與他們做深入的溝通與理解,以求理解透徹需求,並可實際落地至標註工作中,確保需求落地不偏差。

4)試標數據

制定了標註規範,同時拿到了已清洗的抽取數據后,就進入了試標數據環節。為什麼不直接正式標註呢?因為通常標註都是大批量的,若出現標註規範理解不到位,或者標註規範本身指定得有問題,那返工將是很大的人力物力損失。

為了降低這樣的風險,通常會在前期先拿一小部分數據進行試標。試標的量根據情況而定,通常控制在1-2天時間內,並需收集標註反饋,註明問題與疑惑。

試標結束后,需要召集標註同學、產品經理、AI訓練師、演算法工程師,召開問題同步討論會。會議的目的是確定試標的問題的解決方案,各方達成共識。方可進入下一步驟。

5)正式標註

按照確定的且達成共識的標註規範,標註團隊就進入了正式標註階段。通常標註的數量較多,需要在標註團隊中分配任務。

標註完成後,需要有標註審核員進行審核。通常為抽樣審核。若不通過需打回重標。

標註結束后,須由標註團隊Leader匯總標註結果,提交給演算法工程師。

四、模型構建

主要角色:演算法工程師

在接收到標註團隊的標註數據后,演算法工程師就需要拿這些數據,讓模型運轉起來。模型構建包括3個環節:模型設計、特徵工程、模型訓練。

1)模型設計

演算法工程師會根據業務的需要,以及演算法積累,進行模型設計。在這個環節中,產品經理應與演算法工程師確定,在當前業務下,這個模型該不該做,我們有沒有能力做這個模型。在這個階段中,最重要的是定義模型目標變數。不同的目標變數,決定了這個模型應用的場景,以及能達到的業務預期。

2)特徵工程

選型之後,演算法工程師會進行特徵工程的工作。整個模型構建可以理解為:從樣本數據中提取可以很好描述數據的特徵,再利用它們建立出對未知數據有優先預測能力的模型。

所以在模型構建中,特徵工程師非常重要的部分。數據和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。

而現有的技術能力,如神經網路等演算法能力,可通過模型的自主提取特徵能力,而取代人工提取特徵的過程。方式的不同,在效果上也可能比演算法工程師人工提取特徵,可能有提高。需具體業務情況具體看。

3)模型訓練

演算法工程師會根據數據在不同模型的訓練結果,做調參工作,以確保模型最終的效果是可滿足業務的要求,並可持續優化的。

演算法工程師在訓練模型時使用的數據為【訓練集】,該數據集合需不能與最後模型測試使用的【測試集】重合/有交集,以確保後續測試是客觀、不失真的。

五、模型測試

主要角色:測試工程師

模型構建完成後,就需要演算法測試工程師介入測試模型的效果。對於演算法的測試,衡量的基礎指標主要是:P值(精準率)、R值(召回率)F1值,分別衡量模型預測的準確性、覆蓋面和二者的綜合能力。

當然,還可以根據業務的不同,有其他的測試驗收指標,這邊不贅述。

測試的過程,一般會使用腳本自動化測試,以覆蓋數據量龐大的測試內容,保證最短時間內測可能多的內容。

測試完成後,測試工程師需出具測試報告。報告的接收方為:演算法工程師、產品經理、AI訓練師。需確認報告內容。同時,產品經理/AI訓練師需評估,模型的效果是否符合預期。若否,則需演算法模型重新訓練調優,直至達到上線標準為止。

六、模型驗證

主要角色:產品經理、AI訓練師

模型驗證指的是模型上線后的數據觀察,以驗證模型效果,通常由產品經理/AI訓練師,做上線后的跟蹤與觀察。在上線之後,一般會做演算法相關的數據統計,每天實時監測數據的情況。

若有數據異常或不符合預期,通常需要做以下處理。

1)告知演算法團隊,做數據反饋收集與模型優化

演算法的優化過程是較為緩慢的,涉及的流程包括數據重新標註、模型重新訓練、重新測試/調優等等。通常周期以「周」為單位。

2)通過規則矯正

業務的問題總是需要及時地處理與反饋的,所以需要一些輔助措施,來響應響應的需求。一旦發現演算法模型效果不佳,需要產品經理/AI訓練師通過規則矯正的方式,優先做處理。當後續演算法優化更新之後,再做原有規則的恢復。

七、結語

對話機器人演算法的開發過程,是一個閉環的過程。通過數據的訓練、測試、調優,達成相應的業務目標。隨著數據的不斷反饋,演算法模型的效果則會越來越符合業務的需求,是一個循序漸進的過程。本篇文章大致介紹了演算法開發的整個流程與脈絡,希望可以幫到你。

 

作者:咖喱魚丸,5年PM經驗,2年AI PM經驗