在人工智能應用方面,企業需要獲取商業利益、構建技術框架和模型,以獲得更好的商業成果。
在人工智能、機器學習和深度學習方面,目前有很多市場熱議和技術探討。大多數問題有的過于松散,有的過于數學化,有的過于籠統,有的過于專注于特定的應用程序,與業務成果和指標脫節,有的沒有方向性。
本文通過以下方式概述這些相關技術:
?定義人工智能、機器學習和深度學習,解釋與傳統方法的區別,描述何時使用它們,并指出它們的優缺點。
?解釋它們如何補充業務框架并實現業務成果和指標。
?描述常見類型的機器學習和深度學習模型培訓、算法、架構、性能評估和良好性能的障礙。
?提供工作中的機器學習模型和算法的示例。
?為業務成果的人工智能實施提出潛在的框架。
商業環境中的人工智能
所有的組織都致力于實現特定的結果,他們同時兼顧了一些業務指標和流程來實現這一目標,例如收入、成本、上市時間、流程準確性和效率。但他們的資源有限(費用、時間、人力和其他資產)。因此,問題歸結為對資源配置做出正確的決策(什么樣的資源、多少資源、應該做什么、需要什么能力等等),并且比競爭對手更快、比市場變化更快地做出正確的決策。
做出這些決定很困難,但是很明顯,當可以獲得數據、信息和知識時,它們變得非常容易。假設這些輸入信息可用,則需要對它們進行匯總和挖掘。分析人員需要時間獲得行業專家的專業知識和經驗,以適應不斷變化的業務規則,在可能的情況下針對個人偏見進行校準,并找出模式并產生見解。在理想情況下,分析人員和管理人員應該(在時間允許的情況下)評估多種情況并進行多次實驗,以增強對其建議和決策的信心。最后,需要將決策付諸實踐。
輸入人工智能、機器學習和深度學習,其中:
?根據觀察為組織建模。
?通過同時審查許多因素和變量來產生見解(遠遠超出在合理的時間段和成本約束下所能達到的水平)。
?在提供新的觀察結果時不斷學習。
?量化結果的可能性(即預測可能發生的事情)。
?規定具體行動,以優化業務目標和指標。
?通過更快的再培訓與傳統的較慢的重新編程,快速適應新的業務規則。
使人工智能、機器學習和深度學習成為可能的是數據量和數據類型的激增,加上計算和存儲硬件和工具的成本降低。Facebook、Google、Amazon和Netflix等公司已經證明了它的有效性,所有行業的組織都在緊隨其后。結合商業智能,人工智能、機器學習、深度學習三者克服了決策的障礙,從而促進組織實現其商業目標。
人工智能、機器學習和深度學習適用于指標驅動型組織和企業中的每個人。
麥肯錫全球研究院在其2011年5月出版的《大數據:創新、競爭和生產力的下一個前沿》一書中指出,美國對于使用分析結果的管理人員和分析師的需求為150萬人,超過了對分析人員(例如數據分析師和數據科學家)的需求。
換句話說,數據價值鏈中的瓶頸不是數據或分析,而是能夠根據場景和智能方式利用數據/分析實施的能力。對于業務和流程專業人員來說,這是一個將人工智能、機器學習和深度學習與已經很好理解的業務框架和概念結合起來的機會。這是一個在這些框架和概念中定義問題和假設的機會,然后使用人工智能、機器學習和深度學習來發現模式(洞察)和測試假設,這些假設需要太長時間才能測試,否則識別和測試成本太高,或者對人們來說太難執行。
組織越來越多地轉向人工智能、機器學習和深度學習,而業務正變得越來越復雜。組織一次要處理的事情太多了。也就是說,有太多數據點(相關的和不相關的)需要整合。這樣看,處理太多的數據可能是一個責任。
但是,人工智能、機器學習和深度學習可以通過系統地確定數據的重要性、預測結果、規定具體行動和自動化決策,將這堆數據變成一種資產。簡而言之,人工智能、機器學習和深度學習使組織和企業能夠承擔驅動業務復雜性的因素,其中包括:
?價值鏈和供應鏈更加全球化,相互交織,并專注于微細分市場。
?快速變化的業務規則,以與競爭對手以及客戶的需求和偏好保持同步。
?正確預測和部署稀缺資源,以優化競爭項目/投資和業務指標。
?需要同時提高質量和客戶體驗,同時降低成本。
在許多方面,人工智能、機器學習和深度學習要優于顯式編程和傳統統計分析:
?不需要真正了解業務規則即可達到預期的結果,只需對機器進行樣例輸入和輸出方面的培訓即可。
?如果業務規則發生變化,使得相同的輸入不再導致相同的輸出,則只需對機器進行重新培訓(而不是重新編程)即可,從而可以縮短響應時間,并減輕人們學習新業務規則的需要。
?與傳統的統計分析相比,人工智能、機器學習和深度學習模型的建立相對較快,因此可以通過嘗試學習重試方法快速迭代多個模型。
然而,人工智能、機器學習和深度學習確實有不利之處。其中,仍以統計數據為依據,因此產出存在不確定性因素。這使得將人工智能、機器學習和深度學習集成到工作流中變得棘手,因為機器決策中的高度模糊性很可能由一個人來處理。為了提高機器的準確性,錯誤或正確的答案應該反饋給機器,用于額外的訓練(學習)。
此外,人工智能、機器學習和深度學習模型的解釋也較少;也就是說,可能不清楚他們如何做出決定。對于具有許多“層”和“神經元”的復雜深度學習模型尤其如此。在高度管制的行業中,這種不清晰可能會特別令人擔憂。應該注意的是,有很多研究集中在這一領域,因此也許將來不會成為不利條件。
考慮到這些優點和缺點,那么什么時候使用人工智能、機器學習和深度學習是合適的?以下是一些想法:
?值得一提的是:取得高潛力的業務成果,但傳統的方法過于繁瑣、耗時,或者根本不合適。
?相關數據可用且可訪問。
?主題專家認為數據包含有意義的信號(也就是說,可以從數據中獲得洞察力)。
?問題定義與機器學習或深度學習問題相關,例如分類、聚類或異常檢測。
?用例的成功可以映射到機器學習和深度學習模型的性能指標,例如精確調用和準確性。
人工智能定義:從商業智能到人工智能的自然演進
人工智能、機器學習和深度學習是商業智能的自然發展。在商業智能描述和診斷過去事件的地方,人工智能、機器學習和深度學習試圖預測未來事件的可能性,并規定如何增加這些事件實際發生的可能性。說明這一點的一個簡單示例是GPS可以引導車輛從A點行駛到B點:
?描述:車輛行駛了哪條路線,行駛了多長時間?
?診斷:為什么車輛在特定的交通信號燈下花費很長時間(假設GPS平臺/工具跟蹤事故和車流情況等)?
?預測:如果車輛從A點到B點,預計到達時間是多少?
?規定:如果車輛從A點駛向B點,則該車輛應在哪條路線行駛可以預期到達?
人工智能的預測
預測的一個例子是情感分析(某人喜歡某事的概率)。假設組織可以跟蹤和存儲任何用戶發布的文本內容(例如推文、博客文章和論壇消息)。然后,組織可以建立一個模型,根據用戶發布來預測其情緒。
另一個例子是提高客戶轉化率:如果人們有機會獲得他們想要的獎品,人們更有可能注冊訂閱,因此就可以預測哪些獎品會帶來最高的轉化次數。
人工智能中的處方
人工智能的處方是關于在營銷、銷售和客戶服務等各個流程中優化業務指標的,它是通過告訴規范分析系統應優化哪些指標來實現的。這就像告訴GPS要優化的內容,例如最少的油耗、最快的時間、最低的行駛里程,或者經過的快餐店。在業務環境中,組織可以將轉化率提高10%,銷售額提高20%或將推廣者得分(NPS)提高5點。
從那里,說明性分析系統將規定一系列操作,這些操作可以導致組織想要的相應業務成果。
假設要實現10%的轉化率提升。系統可能會規定:
?將直接郵件營銷的頻率降低15%。
?同時將Twitter和Facebook的參與度分別提高10%和15%。
?當企業的社交媒體總參與度達到12%時,開始將公眾引導到組織的客戶社區門戶以實現客戶的參與。
這些說明性操作就像GPS系統建議組織在旅途中進行的轉彎以優化其設定的目標一樣。
商業智能、統計數據和人工智能之間的關系
這是定義商業智能、統計信息和人工智能之間差異的一種方法:
?傳統上,商業智能是面向查詢的,并且依靠分析師來確定模式(例如最賺錢的客戶,為什么他們最賺錢,它們與眾不同的屬性(例如年齡或工作類型)。
?統計數據還依賴于分析人員了解數據的屬性(或結構)以在數據中找到有關總體的信息,但它在推斷一般化方面增加了數學上的嚴謹性(例如,實際生活中的這些客戶群體與樣本數據中的客戶群體之間是否存在差異)。
?人工智能、機器學習和深度學習依靠算法(而非分析師)來自主找到數據中的模式并啟用預測和處方。
請注意,商業智能和人工智能,機器學習和深度學習可以做的更多。
雖然一方面使用統計建模,另一方面使用機器學習和深度學習來建立業務狀況模型,但兩者之間存在一些關鍵差異,尤其是:
?統計建模需要在輸入和輸出之間建立一個數學方程式。相比之下,機器學習和深度學習并不會嘗試使用該數學方程;與其相反,它們只是嘗試在給定輸入的情況下重新創建輸出。
?統計建模需要了解變量之間的關系,并對數據總體的統計屬性進行假設。機器學習和深度學習則沒有。
通常,由于統計建模需要數學方程式,并且需要了解數據之間的關系,因此統計模型在建立統計模型以研究和處理數據時需要花費相對較長的時間。但是,如果成功完成(即找到方程式并且很好地理解數據之間的統計關系),則該模型可能會致命。
另一方面,機器學習和深度學習模型的構建速度非常快,但啟動時可能無法獲得高性能。但是由于它們很容易在早期階段構建,因此可以同時嘗試許多算法,并不斷嘗試最有希望的算法,直到模型性能變得非常好為止。
機器學習和深度學習模型還具有額外的優勢,即可以“獨立”不斷地從新數據中學習,從而提高其性能。
如果數據的性質發生變化,機器學習和深度學習模型只需對新數據進行再培訓;而統計模型通常需要全部或部分重建。
機器學習和深度學習模型在解決高度非線性問題方面也很出色(人們很難做到這一點,因為這些方程太長了)。隨著微細分成為規范(例如細分的客戶群、大規模定制、個性化客戶體驗、個人和精準醫療),并且流程和根本原因分析變得越來越多方面和相互依賴,機器學習和深度學習的這一屬性真的很有用。
人工智能、機器學習和深度學習有何不同
到目前為止,把人工智能、機器學習和深度學習結合在一起。但它們并不完全相同。
一般來說:
人工智能是機器執行人類智能特征任務的地方。它包括計劃、理解語言、識別物體和聲音、學習和解決問題。這可以是人工通用智能(AGI)或人工狹義智能(ANI)的形式。
?人工通用智能(AGI)具有人類智慧的所有特征,包括人們的所有感官(甚至更多)和推理能力,因此可以像人們一樣思考。有些人將其描述為“認知”,例如C3PO等。
?人工狹義智能(ANI)具有人類智能的某些方面,但不是全部。它用于執行特定任務。例子包括Pinterest等服務中的圖像分類和Facebook上的人臉識別。人工狹義智能(ANI)是大多數業務應用程序當前關注的焦點。
機器學習是指機器使用算法來學習和執行任務而無需進行顯式編程(也就是說,不必向它們提供特定的業務規則來從數據中學習;換句話說,它們不需要諸如“如果看到X,就做Y”)。
深度學習是機器學習的子集,通常使用人工神經網絡。深度學習的好處是,從理論上說,無需告知哪些數據元素(或機器學習中的“特征”很重要),但是大多數時候,它需要大量數據。
以識別手寫數字為例,可以更好地理解顯式編程、機器學習和深度學習之間的差異。對于人們來說,識別手寫數字并不難。多年來,人們已經從父母、老師、兄弟姐妹和同學學到很多知識和技能。
現在假設讓一臺機器通過顯式編程執行相同的操作。在顯式編程中,必須告訴機器要查找的內容。例如,圓形對象為零,豎線為1,依此類推。但是,如果對象不是完美的圓形,或者末端沒有連接而并不是一個完整的圓形,會發生什么?當直線不是豎直線而是向側面傾斜時,或者該行的頂部有一個鉤子(例如“ 1”)時,會發生什么?是數字7嗎?手寫字母的多種變體使編寫一個明確的程序變得困難。組織將不斷添加新的“業務規則”以說明差異。在機器學習方法中,將顯示機器示例1s,2s等,并告訴它要尋找什么“特性”(重要特征)。特征工程很重要,重要特征的示例可以是圓的數量、直線的數量、直線的方向、直線相交的數量以及直線相交的位置。不重要特征的示例可能是顏色、長度、寬度和深度。假設組織為機器提供了正確的功能,并提供了示例和答案,則機器最終將自行了解這些功能對于不同數字的重要性,然后希望能夠正確區分(或分類)數字。
需要注意,使用機器學習時,必須告訴機器重要的功能(即要查找的內容),因此機器與確定適當功能的人員一樣好。
深度學習的承諾是,無需工作人員告訴機器要使用哪些功能(即哪些功能最重要),它就會自動發現這一點。需要做的就是為它提供所有功能,它會從中自動選擇重要的功能。盡管這是一個明顯的優勢,但它是以高數據量要求和長時間培訓的形式付出的代價,而這需要大量的計算處理能力。
人工智能模型概念綜述
機器學習和深度學習模型背后的思想是,它們從給定的數據(他們以前看到的東西)中學習,然后可以概括為對新數據(他們以前沒有看到的東西)做出正確的決策。
但是什么構成模型?模型的一種定義是由三個部分組成:
?數據:歷史數據用于訓練模型。例如,在學習彈鋼琴時,輸入的數據是不同的音符、不同類型的音樂、不同的作曲家風格等。
?算法:模型用于學習過程的一般規則。在鋼琴示例中,組織的內部算法可能會告訴尋找音符,如何在琴鍵上移動手指、如何以及何時按下踏板等。
?超參數:這些是數據科學家為改善模型性能而進行調整的“旋鈕”,它們并不是從數據中學習到的。再次以鋼琴為例,超參數包括人們練習音樂作品的頻率、練習的位置、一天中的練習時間,用于練習的鋼琴等。這種想法是,調整這些“旋鈕”可以提高其學習如何演奏音樂的能力。
將所有這些放在一起,便會構建一個鋼琴演奏模型。從理論上講,根據其訓練水平,可以創作以前從未彈奏過的新音樂作品,并且可以演奏它們。
機器學習的類型
機器就像人一樣可以通過不同的方式學習。在此將再次使用鋼琴訓練的例子進行解釋:
?有人監督:鋼琴教師向彈奏者展示或告訴其正確的演奏方法,以及糾正錯誤的演奏方法。在理想的情況下,將提供相同數量的示例,說明如何正確和錯誤地演奏方法。實質上,訓練數據由要從一組預測變量(獨立變量)中預測的目標/結果變量(或因變量)組成。使用這些變量集,將生成一個將輸入映射到所需輸出的函數。訓練過程一直持續到模型在訓練數據上達到期望的性能水平為止。監督培訓的業務示例顯示了已獲批準或被拒絕(目標結果和決策)的貸款申請的系統示例(由信用歷史、工作歷史、資產所有權、收入和教育等預測變量組成)。
?無人監督:如果演奏者自己一個人在演奏,也就是說沒有人教他如何彈鋼琴,因此他可以根據自己的想法來決定對與錯,以優化對其重要的參數,例如完成樂曲的速度,高音符與柔和音符的比率,或觸按琴鍵的數量。本質上,數據點沒有與之關聯的標簽來告知是對還是錯。與其相反,目標是以某種方式組織數據或描述其結構。這可能意味著將其分組,或者尋找查看復雜數據的不同方法,從而使其看起來更簡單或更有組織。通常,無監督學習在訓練模型方面不如無監督學習有效,但是當沒有標簽存在時(換句話說,“正確”的答案是未知的),這可能是必要的。一個常見的商業例子是市場細分:通常不清楚什么是“正確”的市場細分,但每個營銷人員都在尋找自然親緣關系的細分,以便他們能夠以正確的信息、提議和產品接近這些細分。
?半監督:受監督和無監督的組合。在沒有足夠監督數據的情況下使用此方法。在鋼琴示例中,就會得到一些指導,但不會得到很多指導(可能是因為課程昂貴或老師人數不足)。
?強化:系統不會告知演奏者正確和錯誤的演奏方式,也不知道要優化的參數是什么,但是會告訴何時做對或錯。在進行鋼琴訓練的情況下,當彈錯音符或以不正確的節奏演奏時,鋼琴教師可能會糾正,并且當演奏者彈奏得很好時,就會給予鼓勵。強化學習現在非常流行,因為在某些情況下,每種情況下沒有足夠的監督數據,但是已知“正確”的答案。例如,在國際象棋游戲中,要記錄到文檔(標簽)的移動過多。但是強化學習仍然可以告訴機器何時做出對與錯的決定,進而贏得勝利(比如在國際象棋中捕捉棋子和強化位置)。
?轉移學習:演奏者已經掌握了一些可轉移的技能(例如閱讀筆記的能力,甚至掌握了手指的敏捷性),因此可以利用自己的彈奏鋼琴知識來學習另一種樂器,以此來學習如何吹小號。之所以使用轉移學習,是因為它減少了學習時間,對于使用深度學習架構的模型而言,這可能很重要(數小時甚至數天)。
通用機器學習算法
常見的算法類型包括:
?回歸只是通過數據點繪制曲線或直線。
?分類是確定某物屬于哪個組。二進制分類(兩組)正在確定某物是否屬于一類,例如圖片中的動物是否是狗。以動物為例,多種分類(兩個以上類別)是動物是狗、貓、鳥等。
?聚類類似于分類,但是并不會提前知道分類。再次以識別動物圖片為示例,可以確定存在三種類型的動物,但是不知道這些動物是什么,因此只需將它們分為幾類即可。一般而言,當沒有足夠的受監管數據時,或者當想在數據中找到自然分組而不受限于特定組(例如狗、貓或鳥)時,可以使用聚類。
?時間序列假定數據順序很重要(隨著時間的推移獲取的數據點具有應考慮的內部結構)。例如,可以將銷售數據視為時間序列,因為可能希望隨時間變化收入趨勢,以檢測季節性并將其與促銷活動相關聯。
深度學習模型
深度學習基于人工神經網絡(ANN)的概念。這樣可以就像人類的大腦一樣工作,在這種情況下,根據某種反饋,突觸變得更強或更弱,而神經元則根據特定條件激發。通過深度學習模型解決了難題,其中包括自動駕駛汽車、圖像檢測、視頻分析和語言處理。
為了避免認為深度學習模型是唯一應該使用的東西,這里有一些注意事項:
?首先,它們需要大量數據,通常比機器學習模型要多得多。如果沒有大量數據,深度學習通常會表現不佳。
?其次,由于深度學習模型需要大量數據,因此訓練過程需要很長時間,并且需要大量的計算處理能力。這一點正被越來越強大和更快的CPU和存儲器以及更新的GPU和FPGAs(現場可編程邏輯陣列)所解決。
?第三,深度學習模型通常比機器學習模型更難解釋。可解釋性是深度學習研究的主要領域,因此也許會有所改善。
如何衡量機器學習模型的性能
模型就像人類一樣,可以對其性能進行評估。這里有幾種方法可以衡量相對簡單的回歸模型的性能。
所有這些都可以被認為是一種成本函數,它可以幫助模型知道它是否離“正確”答案越來越近,或者距該答案“足夠近”。成本函數告訴模型需要多長時間才能獲取之前從未見過的新數據,并以足夠高的概率輸出正確的預測。訓練模型時,目標是最小化成本函數。
分類模型中的精度與召回率
一旦成本函數完成了根據訓練數據(正在顯示的數據)幫助模型朝著“正確答案”方向發展的工作,就需要評估模型在尚未處理的數據上的表現如何看過。在分類模型的場景中進行解釋(分類模型可以確定某物是否屬于一組或另一組,例如圖片是狗、貓、老鼠等)。
要評估分類模型的性能,請使用方程式以提高準確性。但是,通常認為,當訓練數據顯示等級不平衡時,準確性指標可能會誤導,因此可以使用稱為精度和召回率的指標。這些術語的含義如下:
?等級不平衡:數據在一個方向相對于其他方向偏斜。考慮預測信用卡交易是否為欺詐的示例。絕大多數交易不是欺詐性的,數據集將朝這個方向傾斜。因此,如果預測給定的交易不是欺詐,那么即使對交易本身一無所知,也可能是對的。在此示例中應用準確性指標會使人們誤以為在預測非欺詐性交易方面做得很好。
?精確性是相關性的衡量標準。假設使用搜索引擎來了解人們喜歡網球運動的程度。精確測量返回的項目中有多少與此有關,而鏈接則表示人們喜歡網球的程度,人們喜歡網球活動的方式等等。
?召回是衡量完整性的標準。以喜歡網球運動為例,召回率可以衡量搜索引擎捕獲所有可用參考的程度。缺少零引用是令人驚訝的,缺少一兩個參考值還可以,缺少數千個參考值將是可怕的。
不幸的是,在現實世界中,精確性和召回率是相互抵消的;也就是說,當一個指標提高時,另一個指標就會降低。所以,必須確定哪個指標更重要。
以一個約會應用程序為例,該應用程序將某人與異性匹配。如果相貌端正、富有并且個性十足,那么可能會傾向于更高的精度,因為知道會有很多潛在的匹配,但只想要真正合適的匹配,并且篩選潛在對手的可能性很高。為了評估模型在精度和召回率之間的平衡程度,使用了F1評分。
這些指標可以繪制在圖表上;一個稱為ROC曲線(接收者工作特性曲線),另一個稱為PR曲線(精度召回曲線)。一條完美的曲線(除非作弊,否則永遠得不到它)是Y軸到1,然后越過頂點的曲線。在ROC曲線的情況下,對角線上的一條直線是不好的,這意味著模型以50%的比率平均預測正值和負值(不比隨機猜測好)。這些指標經常轉換為曲線下的面積(AUC),因此將看到AUC ROC和AUC PR等術語。
為什么建立機器學習模型會很困難
既然了解了什么是模型以及如何判斷模型的性能,那么探討一下為什么構建一個性能良好的模型會很困難。這有幾個原因,其中包括:問題表述、數據問題、選擇合適的模型算法和結構、選擇合適的特征、調整超參數、訓練模型、代價(誤差)函數、欠擬合(偏差)和過擬合(方差)。
要知道,數據科學和其他任何科學一樣,既是一門藝術,也是一門科學。當然,做事情總是有一些簡單的方法,但是這些方法可能會很費時,可能會減少洞察力,而且很可能適得其反。當前的數據科學方法是匯集行業專家(如業務線、運營、轉型和改進專家)和數據科學家的知識,以創建滿足業務需求的模型。
過擬合與欠擬合
過擬合與欠擬合是最受歡迎的問題結果,因此對其進行深入研究。它們涉及偏差和方差。
過擬合(高方差)意味著該模型對數據的變化反應過多,因此它并未真正了解其真正含義,而是“記憶”了數據。就像學習一本數學書一樣,當接受測試時,只知道書中給出的三個例子的答案。當老師問你這些數學問題時(例如2+1=3,7+2=9,和4+2=6),會發現它們是正確的。但是當她問一些不同的東西(例如7×9 =?)時,就可能不知道答案。這是因為即使了解例子的答案,但并沒有掌握算法。
欠擬合(高偏差)是相反的問題,因為拒絕學習新知識。也許你學會簡單的算法。但是現在情況已經改變了,要求實施更難的算法。如果表現出很高的偏見,則將繼續學習簡單的算法而不學習更難的算法的話,那么就會得到錯誤的答案。
這兩者都是問題,數據科學具有幫助緩解這些問題的機制。
機器學習模型示例
可以了解一下使用兩種算法的機器學習示例:急切算法和懶惰算法。
急切算法不使用顯式訓練,而懶惰算法是顯式訓練。由于急切算法未經過明確訓練,因此它們的訓練階段很快(實際上不存在),但是其執行(或推斷階段)比經過訓練的懶惰算法慢。急切算法也使用更多的內存,因為需要存儲整個數據集,而一旦訓練完成,用于訓練懶惰算法的數據可以被丟棄,而占用的總內存更少。
示例:使用TF-IDF進行文檔搜索
在應用于文本分析的急切算法的第一個示例中,使用的是稱為TF-IDF的算法。將在短期內解釋TF和IDF的含義,但首先明確一下這個示例的目標。有五個簡單的簡短文檔(文檔1至5)。這些文檔還有一個關鍵字詞典;該詞典用于關鍵字搜索。還有一個用戶查詢,目的是檢索最適合用戶查詢的文檔。在這個例子中,要按優先級相關性順序返回五個文檔。
首先解釋一下TF和IDF的縮寫。TF代表術語頻率或術語出現的頻率(即該術語在文檔中的密度)。人們關心的原因是,假設當“重要”術語出現得更頻繁時,它所在的文檔更相關;TF幫助將用戶查詢中的術語映射到最相關的文檔。
IDF代表反文檔頻率。這幾乎是相反的想法,在所有文檔中頻繁出現的術語的重要性較低,因此希望減少這些術語的重要性。顯而易見的詞是“a”、“an”和“the”,但對于特定的主題或領域,還有許多其他詞。可以把這些常見的術語看作是干擾搜索過程的噪音。
為文檔和查詢計算出TF和IDF值后,只需計算用戶查詢與每個文檔之間的相似度即可。相似性評分越高,文檔越相關。然后,按照相關性順序將這些文檔呈現給用戶。
現在已經了解了如何完成操作,只需要進行計算即可。
可以看看計算結果。將會看到幾個矩陣。機器學習和深度學習模型使用矩陣數學進行大量計算。與數據科學家合作時,需要意識到這一點,需要幫助他們以對業務問題有意義的方式將數據轉換為這些類型的格式。這并不難,但這是數據科學預處理階段的一部分。
在第一個TF矩陣中,計算每個文檔的每個關鍵字(在字典中指定)的規范化(“相對”)頻率。分子表示該文檔中的單詞計數頻率,分母表示單詞在任何給定文檔中出現的最大次數;換句話說,它是所有分子之間的最大值。
在第二個矩陣中,為字典中的每個術語在最后一行添加一個IDF向量。只需應用已經給出的方程:IDF(t)=log(N/N(t)),其中
?N =推薦文件數
?n(t)=出現關鍵字t的文檔數
下一步是通過將文檔的每一行乘以IDF的最后一行來為文檔創建TF-IDF矩陣。現在,已經完成了文檔矩陣。重復相同的過程以創建用戶查詢矩陣。
最后,將兩個矩陣組合起來,并計算每個文檔和用戶查詢之間的相似度。在這種情況下,可以使用方程式來計算相似度,稱為余弦相似度(也可以使用其他相似度計算)。注意,用戶查詢和自身之間的相似度值是1,因為它應該是1,因為它正在與自身進行比較。
從這里,可以將相似度值(在矩陣的最后一列)從高到低排序,從而向用戶呈現從高到低的相關文檔。現在完成了。但要注意的是,該模型沒有“訓練”,只應用了一些方程式。
示例:使用基于內容的協作方法推薦寵物
再了解一下推薦引擎中使用的急切機器學習算法的另一個例子,類似于人們在許多網站上看到的內容。在這種情況下,假設你有四名寵物愛好者的數據,并且可以了解他們喜歡的寵物的類型以及他們對特定寵物的喜歡程度。假設有第五個寵物愛好者(Amy),你對他的偏愛知之甚少。
你的目標有兩個:預測Amy對特定寵物的評價,并預測Amy喜歡寵物的偏好。應該看到,這與相似性問題非常相似,這是在你認識的人與不太了解的的人之間使用屬性相似性來實現的。
有兩種方法可以確定推薦系統中的相似性:協作和基于內容,協作可以進一步定義為基于用戶或基于項目。
在協作方法中,需要對社區中的用戶進行評級。通過基于用戶的方法來應用此功能,可以根據社區中相似用戶的喜歡來預測用戶喜歡什么。相比之下,使用基于項目的方法,可以根據社區喜歡的項目之間的相似性來預測用戶喜歡什么。
基于內容的方法不使用社區中用戶的評分。取而代之的是,它基于商品本身的特征,而分配給這些特征的值(或標簽)則由領域專家提供。
每種方法都有其優點和缺點。
考慮這個例子:在協作方法中,使用其他用戶的寵物等級來預測個人對寵物的未知等級。
首先,嘗試基于用戶的方法。因為正在比較可能因人為偏見而歪曲的總體個人評級(他們的基準可能會有所不同),所以使用了一個稱為Pearson相似性的相似性函數,該函數試圖通過規范化評分(即通過從每個用戶評分中減去評分的平均值)。在該示例中,就會發現Alice的評分與Bill的評分最為相似,因此可以假設Amy的缺失評分與Bill的評分相同。
現在嘗試基于項目的方法。通過這種方法,不必關注個人的評分,而是關注項目的評分。而且,由于項目的評分是由幾個人提供的評分的綜合,因此不必擔心偏差,因此可以使用余弦相似度函數。在這里,你會看到貓和刺猬最相似,因此可以推斷出Amy對貓的評分與她對刺猬的評分相同。
最后,嘗試基于內容的方法。這種方法不需要對社區成員進行評分。取而代之的是,專家標記了數據,在這種情況下,數據是每種寵物類型的屬性(可愛、整潔、忠誠)。如果知道某人對每種屬性的偏好,則可以使用余弦相似度函數來預測該人最可能喜歡的寵物。在此示例中,Amy最有可能按照偏好降序依次選擇刺猬、兔子、狗、豬、貓。
以下學習一些數學。舉例來說,要確定Amy對刺猬的評分,會發現刺猬的寵物屬性與Amy對寵物屬性的重要性等級之間存在相似之處:
?刺猬的向量是(4,3,1,1)
?Amy的向量是(3,3,2,1)
?需要找到這兩個向量之間的相似性
?余弦相似度= [4(3)+(3)(3)+(1)(2)+(1)(1)]/[SQRT(4^2 + 3^2 + 1^2 + 1^2)* SQRT(3^2 + 3^2 + 2^2 + 1^2] = 0.96
對于協作方法,可以使用Pearson方程,因為它可以標準化各個用戶的評分(他們的評分可能不一致)。如果具有客觀等級((比如不是基于不同等級的人的評分),可以使用余弦相似度。以下是方程式中的變量:
?u:用戶
?i:需要評級的項目
?N:#個最近的鄰居
?j:鄰居
?rj,I:j對i的評分
?rj bar:j的平均值
?ru bar:用戶評分的平均值
?alpha:等級的縮放比例; 1表示按原樣使用(沒有正確的alpha值;這是那些超參數之一),有經驗的數據科學家可以根據問題的目標和背景進行調整,以得出更好的結果。
示例:使用支持向量機(SVM)的懶惰算法
最后,這里是一個稱為支持向量機(SVM)的懶惰機器學習算法的例子。在這種方法中,需要確定一個項目屬于哪個組,例如一個新客戶最終是一個利潤高還是低的客戶。要使用支持向量機完成此操作,需要計算兩個參數:
?每個屬性的權重(重要性)(屬性的示例可能是客戶的收入、家庭成員的數量、職業和教育成就)
?支持向量,它是最接近將各組分開的曲線(稱為超平面)的數據集。
然后使用這兩個參數并將它們插入方程式。
計算這些參數的方法是使用可用的數據集,這就是所謂的訓練數據。
在訓練階段計算出的值是:
?用于最小化成本函數的權重(alpha和theta)。
?支持向量xi,它是訓練數據的子集。
一旦模型得到訓練,就可以插入x的新值(例如新客戶的屬性),然后預測x的這些新值所屬的類h(x)(例如它們是否預期是高利潤客戶)。
人工智能項目失敗的原因
人工智能項目在業務環境中失敗的常見方式很多。任何人工智能框架都應解決這些問題。
失敗的第一個驅動因素或者是選擇了錯誤的用例,或者是在沒有足夠能力和基礎設施的情況下使用了太多的用例。可以使用前面描述的條件來確定更好地適合于人工智能解決方案的問題。此外,明智的做法是建立一系列用例,以使功能和知識以漸進的方式構建,并隨著技術的成熟程度的提高而提高。
選擇正確的用例最好與以下人員協作:
?企業員工,他們知道業務問題、環境和約束,以及他們想要測試的假設。
?分析師,他們可以提出問題以闡明業務意圖和要求,并且可以識別數據源和轉換。
?可以制定機器學習和深度學習問題的數據科學家,以便模型可以為企業的假設提供答案。
?可以提供對數據訪問權限的數據工程師和IT資源。
正確地預先組織和安排這些類型的活動需要經驗豐富的跨職能領導者,他們需要了解并可以平衡業務影響,運營驅動因素、工作流障礙和機遇、數據需求和約束以及技術支持因素。
失敗的第二個驅動程序錯誤地自己構建了人工智能模型。這包括兩個元素:
?盡管數據科學和其他科學一樣,在本質上是實驗性的(在使用數據之前,并不真正知道數據會告訴你什么),但數據科學的方法應該定義明確,應該具有紀律性,并且應該加快價值時間。
?優秀的數據科學家可以快速進行實驗和迭代,從他們的實驗中學習,區分有前途和無效的方法,并在必要時研究和調整前沿方法。優秀的數據科學家以快速、并行的方式構建最小可行產品(MVP)。
失敗的第三個驅動因素是缺乏同時快速構建和改進多個人工智能模型的規模。通常,這歸結于數據科學家能夠協同工作,重用數據管道、工作流和模型/算法,并重現模型結果。此外,他們還需要能夠捕獲并快速合并操作反饋(在測試、登臺或生產環境中),以進一步構建規模。實現這一點既需要正確的基礎設施環境,也需要正確的模型治理方法。
失敗的第四個驅動因素是無法實現人工智能模型的運營和貨幣化。一般來說,開發人工智能模型是出于以下兩個目的之一:
?發現以前未經確認的見解
?自動化決策(以降低成本和提高效率/生產率)。
很明顯,從來沒有出過實驗室的模型不能完成這些任務。
此外,不僅需要部署模型(即使人們或系統可以訪問模型),而且還必須以在操作和異常中“使用”它們的方式將它們合并到工作流中。無法做出具有較高正確性概率的決策,必須進行優雅的管理(例如通過人工干預、模型重新訓練和模型回滾)。人工智能的運營和貨幣化需要逐步但完整的模型工作流集成,數據輸入和模型性能參數的監視以及頻繁模型部署的管理。
如何使用人工智能?端到端的人工智能解決方案框架
最后,將所有這些與人工智能解決方案框架結合在一起。
有四個組成部分:
?數據管理。
?模型開發。
?模型操作。
?確保使用模型,影響業務并改善業務指標。
第一個組件是數據管理,是當前商業智能環境的常規組成部分。
第二部分是模型開發,包括兩個廣泛的領域:
?定義適合機器學習模型的用例并確定其優先級。
?大規模構建機器學習模型。
第三個組成部分,模型操作化,不僅需要模型部署,還需要持續的再培訓和重新部署過程,模型與操作工作流的集成,以及集成操作反饋以改進模型。
所有這些目的是通過模型的功能獲利。
最后,組織和業務影響的第四部分很簡單(很明顯),但對組織的人工智能能力的未來成熟至關重要。這個組件的功能是確保人工智能模型被業務線實際使用(也就是說,他們信任人工智能模型并從中獲取價值),并且它們正在影響業務結果。如果沒有業務的支持,人工智能將不會迅速發展。
這四個組件之上是協作組:IT、數據工程師、數據科學家、業務部門。人工智能是一項團隊工作。
可以采用這些組件并在其周圍放置參考體系結構,添加一個稱為模型治理的組件,以確保實現模型的可再現性,數據科學的可重用性以及數據科學家的協作,并確保對模型進行重新訓練/回滾需要時可能。
設計和實施類似這個參考體系結構的解決方案將以健壯性、上市速度和業務成果來支持人工智能解決方案框架。
責任編輯:ct
評論
查看更多