全流程攻略:如何構建人工智能產品?

2 評論 14273 瀏覽 73 收藏 33 分鐘

人工智能產品的構建過程分為三個階段,每個階段都有著不同的思考方式。從挖掘行業屬性到模型的建立與調優,作者對每個階段需要注意的問題進行了分析說明,供大家一起參考學習。

在人工智能產品構建過程分為很多階段,從最頂層的商業思考到下層的模型研發都有著不同的思考方式。

第一階段是商業模式設計,任何產品早期都會對商業模式進行細致的考慮,商業模式的設計牽扯到方方面面,我們需要重點突出產品的行業屬性與產業價值。

第二階段是數據洞察與業務轉化,我們需要去收集有意義的數據并將轉化為模型的輸入。

第三階段是產品建模與評估,需要前兩階段的準備對產品模型進行開發與測試。

(1)行業洞察:首先對行業需要有深刻的理解與洞察。

(2)價值分析:針對于產品具體分析給用戶帶來什么價值,什么樣的價值能夠使用戶認可。需要以用戶的視角來分析產品的價值所在。

(3)數據分析:針對行業的特點分析數據應如何整理,如何利用,如何構成產品。

(4)資源評估:評估是否有足夠的數據與人員支持人工智能產品的開發。

(5)資源收集:通過各種渠道購買、收集數據,以及各類人員的資源分配。

(6)設計研發方案:根據以上結論設計人工智能產品的模型搭建與評估方案。

一、深度挖掘行業,探究產品價值

1. 深刻挖掘行業屬性

當前產業互聯網恰逢其時,AI技術也更多的應用于行業之中。我們開發人工智能產品首要問題就是需要深刻理解行業痛點,做出有價值的產品。如何了解一個行業也有一些實用的方法可以借鑒。

構建產品之初首先需要充分了解這個行業,而且也要充分了解自己。了解自己主要從自身的所學專業、興趣程度、個人性格等方面綜合考量。當今社會所做的行業與自身專業不匹配的狀況時有發生,只有充分認識自我并且充分認知行業,才能做出成熟的判定。我們先不談對自己的了解,首先給出如何快速認識一個行業的切入路徑。

第一步:行業認知——行業分解認知、行業組合認知

第二步:行業分析——業務流程、產業鏈、商業模式

第三步:行業常識——業內典型企業與領導者

對于行業切入路徑仍然需要作一些說明,這個方法只是一個初步了解行業的路徑。由于大家教育背景不同專業不同,各個行業壁壘有有高有底,并不要指望通過某個方法就能夠立刻深入到某個行業中,想真正深入某個行業還需要系統的學習行業知識,并真正在行業中沉淀一段時間,才能夠深入體會。

行業認知是切入行業的第一步,在行業認知的過程中分為2個步驟:行業分解認知與行業組合認知。

(1)行業分解認知

研究某個行業不能囫圇吞棗,首先要對行業進行分解。所謂行業分解認知是將行業細分成一個個子領域,針對這些子領域再進行一一分析的過程。對于一個未細分的行業是無法拿來研究的,只有將其分解才能各個擊破。用大家熟悉的互聯網產品經理來舉例,現在產品經理行業也產生了很多子領域,包括數據產品經理、后臺產品經理、人工智能產品經理等。盡管這些產品經理在職能方面可能有所交叉,但是分解的越細代表對產品經理這個行業了解的越深入。

(2)行業組合認知

在行業分解認知之后,我們已經對行業有了一個初步的了解,之后我們需要通過行業組合認知對行業進行綜合分析。行業組合認知是指將之前行業分解得到的子領域,統一回歸到整體行業的框架下思考,思考的重點是每個子領域對整體行業的貢獻,以及研究各個子領域在產業中的關系與地位。因此,分析好每個細分子領域對行業整體的貢獻,才能更加透徹地審視全局。

2. 探究產品價值

無論何種產品都必須要體現價值才能贏得商業,AI產品當然更是如此。對于一個成功的AI產品,并不是重視其使用了多么先進的AI技術,而是通過技術能否真正得到行業價值。

例如,在過構建工業知識圖譜時,如果只強調知識圖譜可以將不同的知識連接起來,則不能突出其價值。工業知識圖譜真正的價值根據不同項目,概括為在生產產生偏差時,快速尋找到相關原因?;驅⑺泄ば蛭募嚓P聯,確保生產過程的合規性檢查。產品的價值必須符合行業屬性,并使用戶有清晰的辨識度。

針對產業互聯網而言,產品價值主要體現以下2個方面。

(1)效率價值

人工智能技術應用于產業,最重要的一點就是提升產業效率。人工智能技術是對人的模仿技術,人工智能產品可以提供某個工序的工作效率,降低人員的參與程度,降低人員成本,提高工作準確率。

(2)創新價值

在效率產生大幅度提升時,則意味著創新。但是創新并不是僅僅是通過效率提升而產生的。隨著人工智能技術的發展,大規模邏輯網絡的形成,知識圖譜的大規模應用,已經能夠運用此類技術構建新知識新發現。

人工智能產品的研發,首先可以先以實現效率價值為目標,在逐步實現創新價值。需要以行業訴求為最終的價值判別依據。

二、數據洞察與處理

1. 需求與數據

當今是一個數據爆炸的時代,數據積累的規模遠遠超過了之前人類社會數據積累規模的總和。在大數據這個概念出現之前,計算機并不能很好的解決需要人去做判別的一些問題。如今人工智能利用用大量的數據作導向,能夠使機器完成一些之前機器所不能完成的功能,使之前無法滿足的需求得以滿足。人工智能技術離不開數據,數據與需求之間首先應該搭建起一個橋梁。

(1)從數據到需求

我們首先將經歷聚焦到數據上來,認真分析這些積累下來的數據都有哪些?思考這些數據都能夠做些什么?哪些與我們的業務關聯性高,哪些關聯性低?例如一個外貿公司積累了之前5年的銷售流水數據,那我們可以考慮用這些數據推測第六年的銷售流水。從數據到需求的階段,我們只需要考慮數據能夠做什么,暫時無需考慮數據的產出是否與業務相關。

(2)從需求到數據

當我們完成對數據的聚焦后,開始對需求進行聚焦。對需求的聚焦需要分析業務,重點分析的內容是滿足這些需求都需要哪些數據來支撐。滿足一個業務需求,可能需要很多數據支持,這些數據有些已經被積累,有些則沒有被積累。

例如一個外貿公司需要預測下一年的銷售額,需要前10年的公司銷售額,除此之外還需要上一年股市大盤的走勢數據,同時也需要公司前5年的用戶數據。從需求到數據的過程是為了使公司清楚針對某一個特定需求,哪些數據已經保留,哪些數據需要外購,哪些數據在以后的公司發展中需要保留下來。

首先從數據到需求,再由需求到數據。數據與需求是一個相互漸進、反復循環的過程,如圖所示。從數據到需求是一個數據價值提升的過程,這個過程首先數據賦予了價值;從需求到數據是一個數據升級的過程,更多圍繞需求的數據被挖掘,也更加明確了數據與需求的聯系。

數據的來源主要有2種方式,可以自己采集也可以購買。采集來的大多是用戶與業務數據,這部分數據可以用來完善產品或者制作數據分析報告;購買的標注數據可以作為訓練集,用于構建模型。

對于非監督學習可以使用未標注過的訓練集進行訓練,不過在實際真正的產品構建中,大家應盡量少的使用非監督學習。非監督學習學習效率較低,無法快速得到較好的模型效果,產品也就無法落地實用。非監督學習可以更多的應用于科研或者課題研究方面。

2. 數據標注

數據質量是影響人工智能產品準確性的關鍵所在,一個具有高質量標注的數據集對于模型的提升效果,遠遠高于算法優化帶來的效果。數據標注是通過人工或半自動的方式,將原始數據打上相應的標簽,打好標簽的原始數據稱為標注數據或者訓練集數據。

數據標注過程有2個意義:其一,使人類經驗蘊含于標注數據之中;其二,使標注數據信息能夠符合機器的讀取方式。標注的數據的難度越高價格越昂貴,以此訓練出的模型價值就越高。

數據標注的流程通常分為五個步驟。

(1)業務分析

產品經理與算法工程師要對業務進行理解,明確原始數據的意義與數據標注的價值。業務理解是所有產品工作的基礎。

(2)確定原始數據與標注結果

產品經理需要與算法工程師共同確認原始數據及數據標準結果,并確定標注工具。數據標注的結果必須得到算法工程師確認,確保后續建模過程的順利開展。

(3)撰寫標注教程

在確認原始數據與標注結果后,產品經理需要撰寫標注教程。標注教程就好像軟件說明書,需要將標注過程按順序一一列出。標注教程包含4個要素:標注軟件(平臺)、標注要求、標注對象、標注流程。撰寫的標注教程同樣需要得到算法工程師確認。

(4)數據標注

該過程為數據標注過程,產品經理需要不定時進行標注結果抽查。

(5)標注結果驗收

產品經理與算法工程師共同對標注結果進行質量驗收,驗收不合格需要搞清異常原因并重新標注。對于有行業壁壘的數據,標準準確性需要行業專家進行判斷。

針對不同的數據類型有不同的標注工具。圖像類標注可以使用LabelMe,文本標注可以使用Brat或DeepDive等,當然還有很多后期開發的標注平臺可以使用。

三、 模型建立與調優

早期的人工智能系統,被稱為專家系統。專家系統通過學習或總結人類經驗獲得智能,并可以恰當應用這些經驗來解決實際問題。如今隨著大數據的發展,新生事物不斷增加,各種知識層出不窮。很多領域的經驗已經無法總結成系統化的專家經驗,而這些經驗被包含在大量產生的數據之中,所以說數據是人工智能發展的基礎。

由此可見,建模的根本在于尋找人類經驗。但根據尋找人類經驗的方式不同,可以分為知識建模、非知識建模、混合建模3種。

知識建模屬于早期專家系統的建模方法,重點在于如何將總結好的知識轉化為機器可以識別、儲存、運用的形式。知識建模適用于數據難以收集,或業務邏輯相對容易總結的問題。

非知識建模不需要提取人類經驗,甚至不需要模型具有可解釋性,通過數據特征得到對應的模型。非知識建模適用于業務邏輯難以總結,而業務數據容易獲得的情況。

混合建模結合了知識建模與非知識建模2種方式,根據特定問題進行建模。

建模過程是一個系統而復雜的工程,需要根據業務類型、數據情況等多方面情況才能夠完成。據筆者了解,當前很多人工智能工作者只重視非知識建模的方式,認為知識建模過時了,不適用于當今人工智能的發展。這樣的認識是偏頗的,必須根據實際問題將不同建模方式結合起來才能達到較好效果。

1. 知識建模

知識建模源于人工智能起源的一大學派,該學派稱為符號主義。符號主義認為人工智能源于數理邏輯,也可以說以一種高級的推理過程。從符號主義的觀點來看,知識是信息的一種形式,知識邏輯體系是構成智能的基礎。

人工智能的核心在于知識表示、知識推理、知識運用,知識可用符號進行描述,認知是符號的處理過程,推理是基于知識與搜索對問題的求解過程。推理過程同樣可以用符號化的語言來描述,也就構成了我們認知的模型。符號主義認為可以建立起人類智能與機器智能的統一理論體系。

在知識建模中,有兩個重要問題。其一是知識的符號表示,其二是推理方法。知識的符號表示是將知識轉化為機器所能識別、儲存、運用的數據化形式。推理方法是機器運用知識解決實際問題的能力。

(1)知識的符號表示

常見的知識符號表示有方法有謂詞邏輯法、狀態空間法、問題規約法等。由于知識建模構建的是一種推斷邏輯,所以謂詞邏輯法使用較為普遍。

謂詞是用來描述或判定客體性質、特征或者客體之間關系的詞項。例句“小明是我的朋友”中,“是”就是謂詞,該句中只有“小明”一個客體,這樣的謂詞我們稱為一階謂詞;例句“5大于4”中,“大于”就是謂詞,該句中“大于”涉及到兩個客體,這樣的謂詞稱為二階謂詞。

使用謂詞表示知識有兩個步驟:

①確定每個謂詞的個體以及確切含義。

②利用邏輯符號連接謂詞,對知識進行表達。

[例]利用謂詞邏輯法表述以下語句

人人學雷鋒

①確定每個謂詞的個體以及確切含義。

個體:人

謂詞:學、是(“人人”隱含了“是人”的客觀事實)

定義謂詞:

people(x):x是人

learn(x,y):x學y

②利用邏輯符號連接謂詞,對知識進行表達。

(表示對于任意)

(2)推理方法

推理方法是研究機器如何模擬人類進行知識選擇,并運用這些知識分析和解決實際問題的邏輯方法。我們也可以理解為推理是依據一定的原則,從已有事實推出結論的過程。推理系統主要由謂詞邏輯組成的知識庫和控制推理過程的機構組成。

常用的推理方法有3種:正向推理、逆向推理、雙向推理。

正向推理是由條件出發,向結論方向進行的推理過程。它以當前的事實出發,根據輸入的推理規則,向結論進行推理。例如我們知道發燒、咽痛、關節酸痛具有較高概率能夠推理出的結論是感冒。這種推理方式就是典型的正向推理。正向推理是早期專家系統解決問題的一個重要特征,即專家在解決問題時,首先是發現問題提供了什么信息,根據提供的信息再借助推理規則推導出新的信息,從而加深對問題的了解。

逆向推理是指從問題的目標狀態出發,按照目標組成的邏輯順序逐級向初始狀態遞歸的問題解決策略。簡單來講,當一件事結果是正確的或客觀的,那么可以根據這一結果進行反向推理從而得到原因。當我們已經知道患者得了感冒,可以推想他可能是受涼、感染流感病毒等多個原因導致感冒,這就是逆向推理的思維模式。

雙向推理結合正向推理與逆向推理,它是構成推理網絡的理論基礎。

知識建模是早期人工智能技術的代表,由知識建模而構建的專家系統為醫學、教育、工業領域做出巨大貢獻。知識建模的優點可以總結為以下3個方面:

  1. 知識高效表達:通過知識的符合表示方法,可以高效準確地表達難以用數學方法描述的復雜、定性的人類經驗知識。
  2. 靈活性:知識的表達相對獨立,方便進行知識的修改和擴充,系統也可以快速獲得新的規則。
  3. 可解釋性:知識建模最大的特點是可解釋性。所有的推理邏輯與公式,都可以經過嚴謹的數理證明進行解釋。這一點與當前非常流行的神經網絡模型相比,具有非常大的優勢。

任何建模方法同樣有缺點,知識建模的缺點同樣可以總結為以下3個方面:

  1. 知識獲取的困難:專家的經驗知識加以提取、整理、轉換成各種符合表示,還要考慮知識之間的相容性等問題,這本身就是一項困難的工作。
  2. 高復雜度問題:對于復雜的知識體系,知識之間的關系以及知識庫中的節點會變得異常復雜。推理中對知識的搜索和運用分支將呈幾何級數的增加。
  3. 容錯能力差:由于知識推理具有非常嚴密推理條件與推理邏輯,知識的不完備可能會導致推理出現困難,從而降低了系統的精度。同時,如果出現錯誤的規則,可能導致整個推理的錯誤,并且這種錯誤不易更正。

2. 非知識建模

非知識建模是當前大數據時代的主流建模方式。由于數據中蘊含著人的知識或經驗,但是建模過程并不需要將這種知識提取出來,而是直接通過獲取大量數據去訓練模型。非知識建模避免了知識提取的過程,也回避了建模人員對專業知識的理解問題。

由于非知識建模中不涉及到對知識的提取,所以非知識建模中最重要是數據準備工作。這些數據準備是為了構成模型的訓練集,我們需要準備存儲格式統一、真實性高、標注明確合規的數據作為模型的訓練集。

在準備好訓練集后,我們可以根據具體業務進行模型的選型,根據選擇模型的特點對訓練數據進行微調,以滿足不同模型的訓練要求。對于數據特征不明顯的數據集,我們也可以通過特征工程來提取數據特征,使訓練出的模型更加高效準確。模型訓練的過程如下圖所示。

在進行模型訓練時,我們需要通過某個學習算法,得到我們的目標模型。模型是否能夠得到較好效果,主要在于訓練數據的質量,所以數據才是整個算法構建的核心要素。非知識建模主要就是通過數據使機器自動提取某些內在的業務特征,從而達到模型效果。模型的選擇種類也根據不同的業務,以及不同算法工程師的偏好靈活選擇。

3. 模型的評估:分類任務評價

分類最常見的機器學習任務,主要目的是數據劃歸為不同類別。分類問題包括二分類與多分類問題。識別垃圾郵件或判定是否為潛在用戶就是典型的二分類問題,用戶畫像、輔助診斷系統等屬于多分類問題。分類問題的評估指標主要有準確率、損失函數、精準率-召回率、曲線下面積(AUC)等。

(1)準確率

準確率是一個非常直接的評價指標,指的是分類正確的個數占總體個數的比。但是準確率并不能夠公正的評價一個模型。主要原因有2個:

第一原因是兩種分類重要程度不同。例如在癌癥診斷中,確診癌癥患者中未患有癌癥的情況(假陽性)與確診未患有癌癥患者中患癌的情況(假陰性),這兩種情況對于患者的意義截然不同;

第二個原因是數據分布不均,如果兩個分類個數相差過大,占有大樣本的一方會主導準確率的計算。

(2)平均準確率

為了處理每個類別樣本數量不一致的情況,使用平均準確率來進行度量。平均準確率將多個分類的準確率取平均值來對模型進行評價。平均準確率是對整體模型進行的評價,而并不等于某一個分類的準確率。在某個類別數量很少時,會造成該類別準確率的方差過大,使準確率可靠性降低。

(3)對數損失函數(Log-loss)

對數損失函數很像Logistic回歸的損失評價函數,這些評價標準都基于概率估計。對數損失通過懲罰錯誤的分類,實現對分類器的準確度(Accuracy)的評價。損失函數最小意味著分類器具有最佳的性質,分類器提供的是輸入樣本所屬類別的概率值。對于多分類問題對數損失函數表示如公式(3.5.1)所示。

(4)精確率-召回率(Precision-Recall)

精確率-召回率其實是兩個評價指標,但是它們經常同時使用。精確率是指分類器分類正確的正樣本的個數占該分類器所有分類為正樣本個數的比例。召回率是指分類器分類正確的正樣本個數占所有的正樣本個數的比例。具體解釋在后面混淆矩陣中詳細介紹。

(5)AUC (Area under the Curve, AUC)

AUC的意義為曲線下的面積,所描述的是ROC曲線(Receiver OperatingCharacteristic, ROC)。首先我們需要了解ROC曲線是如何繪制的。

ROC曲線的x與y軸的含義:

  • 橫軸:負正類率(False Postive Rate, FPR),分類器分類錯誤的負樣本個數占總負樣本個數的比例。
  • 縱軸:真正類率(True Postive Rate, TPR),分類器分類正確的正樣本個數占總正樣本個數的比例。

對于設定一個閾值,就可以對應算出一組(FPR,TPR)從而在平面中得到對應坐標點。隨著閾值的逐漸減小,越來越多的實例被劃分為正類,但是這些正類中同樣也摻雜著真正的負實例,即TPR和FPR會同時增大。閾值最大時對應坐標點為(0,0),閾值最小時對應坐標點(1,1)。

以下面一個例子解釋ROC曲線繪制過程,如圖所示數據。

如圖有20個樣本依次編號,屬性是樣本的類別,p代表正樣本,n代表負樣本,得分代表樣本被判定為正樣本的概率。在繪制ROC曲線時,每給定一個閾值計算一次(FPR,TPR)點。對于二分類器,我們可以設定閾值,認為樣本中得分大于等于這個閾值為正樣本。由于有20個樣本,閾值可以按照20個樣本的得分依次進行選取。

假設閾值1=0.9,正樣本數量為10個,負樣本數量為10個。

即認為大于等于0.9的樣本為正,其余為負樣本。根據圖3-36所示數據與FTR、TPR定義可知

FTR=0(未出現誤判的樣本)

TPR=0.1

我們得到第一個點為(0,0.1)。

假設閾值3=0.7,正樣本數量為10個,負樣本數量為10個。

即認為大于等于0.7的樣本為正,其余為負樣本。根據圖3-36所示數據與FTR、TPR定義可知

FTR=0.1(有一個負樣本被判定為正樣本)

TPR=0.2

我們得到第3個點為(0.1,0.2)。

如此通過設定閾值可以得到20個(FPR,TPR)點,從而繪制ROC曲線如圖3-36所示??梢娮詈玫姆诸惼魇荈PR=0%,TPR=100%,當然這是一種極端情況。如果同時比較多個分類器性能,通過ROC曲線較難實現,我們便選取了曲線下面積(AUC)作為指標進行度量。分類器效果越好,AUC面積越大。大多數情況AUC值在0.5-1之間。

使用AUC對分類器進行評價可以避免樣本不均衡的影響。在真實情況下樣本不均衡的現象經常出現,有時正樣本個數遠遠大于負樣本個數,或正負樣本個數可能隨時間而改變,在使用AUC進行評價時可以有效避免。

(6)混淆矩陣(Confusion Matrix)

混淆矩陣可以關聯上述的所有概念,也作為分類結果評價的常用手段。混淆矩陣是一個分類的正誤表,對于二分類問題則是一個2*2矩陣,對于多分類問題是一個n*n矩陣,以二分類問題為例,如表所示。

表-二分類問題的混淆矩陣

真正(True Positive, TP):分類正確的正樣本。即本來是正樣本,分類為正樣本。
從混淆矩陣中直接提取的成為一級指標,具體含義如下:

假負(False Negative, FN):分類錯誤的正樣本。即本來是正樣本,分類為負樣本。

假正(False Positive, FP):分類錯誤的負樣本。即本來是負樣本,分類為正樣本。

真負(True Negative, TN):分類正確的負樣本。即本來是負樣本,分類為負樣本。

通過明確混淆矩陣的一級指標的含義,可以定義二級指標,如表3-3所示。

混淆矩陣可以將諸多概念加以串聯,在模型評價中具有重要地位。除此之外,混淆矩陣在試驗評價等諸多領域還有廣泛的用途。

最后把封面的人工智能產品經理流程圖配上,具體的內容將在下一篇文章說明。

上述就是一個人工智能產品的整體構建流程,如果還希望能夠了解的更詳細,可以關注我的新書《手把手構建人工智能產品》,書中會有更詳細AI產品經理項目方案。

#專欄作家#

白白,公眾號:白白說話(xiaob-talk)。人人都是產品經理專欄作家,醫藥行業資深產品專家,負責人工智能行業類產品綜合架構與技術開發。在行業云產品架構,藥物設計AI輔助、醫療知識圖譜等領域有深入研究。

本文原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于 CC0 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 您好,想要了解下,如何對人工智能類產品設定階段性的目標以及時間節點呢?目前產品迭代過程中碰到的問題是,算法研發人員很難給出一個在某個時間點達到什么樣的衡量指標,麻煩幫忙解答下

    來自北京 回復
  2. 歡迎關注我的《手把手構建人工智能產品》,里面有更詳細的AI產品攻略。

    來自北京 回復