10必須部署機器學習
想看而不是閱讀?觀看視頻在這裏.
簡介
韋恩·陳:
感謝您今天的到來。我的名字是Wayne Chan,我是今天的主持人。很高興向大家介紹本次網絡研討會的主題為:在企業中部署機器學習和AI的10個必備條件。
我很高興向大家介紹今天的演講者。我們在這裏有一個了不起的陣容來分享他們在機器學習和人工智能方麵的經驗和發現。
首先,我很高興向大家介紹邁克·瓜爾蒂耶裏。Mike是Forrester的副總裁兼首席分析師。他的研究重點是軟件技術、平台和實踐,使技術專業人員能夠提供有預見性的數字體驗和運營效率。Beplay体育安卓版本尤其擅長大數據和物聯網策略、Hadoop和Spark、預測分析、機器學習、數據科學、人工智能和新興技術。Mike也是商業戰略、架構設計和創造性協作交叉領域的領先專家。
除了今天的Mike,我們還有Overstock.com的幾個同事。我們有克裏斯·羅賓遜,他是Overstock的營銷數據科學主管,還有克雷格·凱利,他是該集團的產品經理。
Chris是Overstock數字營銷和欺詐保護工作的項目負責人。他在早期初創公司使用Spark構建數據科學框架和解決方案方麵有豐富的經驗。
Craig作為一名集團產品經理,領導Overstock營銷團隊的工程和數據科學,他擁有豐富的專業知識和理念,專注於通過可擴展的、可擴展的係統推動創新,以交付市場速度和迭代速度。
好的,我們快速回顧一下今天的議程。弗雷斯特公司的邁克要開始了。他將介紹他在機器學習和人工智能方麵的一些研究發現,以及在企業中選擇平台時的要求。Beplay体育安卓版本然後,我將把它交給Overstock的人,他們將講述他們的案例研究,他們的用例,他們遇到的問題,以及為什麼他們選擇與Spark和Databricks合作來處理他們的數據科學工作。然後再討論下一步該怎麼做。然後我們將以問答環節結束。
現在,我把話筒交給邁克,他將講解第一組幻燈片。邁克,如果你有任何技術上的問題我們不能把幻燈片轉發給你,隻要給我一個口頭提示,我會幫你轉發的。
關於企業機器學習現狀的Forrester研究
Mike Gualtieri:
好的,謝謝你。好,大家好。我是Mike Gualtieri, Forrester的首席分析師。我很高興能在這裏和大家談談我們為企業機器學習平台所做的研究。Beplay体育安卓版本
我說企業是因為有額外的需求是滿足企業需求的必要條件。這不僅僅是下載一個木星筆記本到你的筆記本電腦上。
我們談論的是機器學習。每個人都在談論機器學習,每個企業都在做機器學習。但我想把它放在人工智能的背景下,因為你經常聽到人們說,“哦,我們在做人工智能和機器學習。”我們對人工智能的看法是,它不是一項特定的技術,而是由一項或多項技術組成的。明確一點,我們並不是說你必須使用所有這些技術。你不需要做物理機器人才能真正成為人工智能。但這些隻是其中的一些技術。
到目前為止,企業最流行和使用最多的技術是機器學習。現在我們推出深度學習。它絕對是機器學習的一個分支,但我們把它分開,因為它專注於一種特殊的技術,人們通常把這種使用神經網絡的技術稱為深度學習。所以我要和你們談談所有這些事情。
現在,我們對機器學習的簡單定義是分析數據找到模型的算法。這些都是預測模型,這些模型可以很準確地預測結果或理解上下文,並隨著可用數據的增加而提高準確性。機器學習算法創建模型,這些模型是預測模型。
機器學習有兩種類型。有監督和無監督之分,你們中的許多人已經很清楚這一點。但有監督的是這些預測模型,無監督的是更多的發現模式。我今天的討論將集中在監督學習上也就是預測模型因為這是大多數企業都在做的事情。
機器學習平台,正如我們定義的那樣,Beplay体育安卓版本顯然必須使用這些算法,但它們提供了創建這些模型的完整的工具生命周期。如果我們從行業的角度來看,我們會看到,誰在采用這種技術,這肯定是全麵的。我們的數據顯示,這是所有行業的熱門話題。但如果你強迫我們對其進行排名,看看誰排在首位,顯然,互聯網和電子商務巨頭正在例行公事地使用機器學習。金融服務,保險,再往下看,采用的速度會慢一些。
同樣,在原生數字公司中也有很多采用。他們更關注數字公司。機器學習要容易得多。如果你在製造業中使用機器學習,比如一個物聯網應用,那麼現在你就有了物理設備。在某種程度上,它更難被接受,但它通常是全麵的。
兩個用例。這是經典的機器學習是做一個預測模型來預測什麼客戶可能流失。beplay体育app下载地址如果你能預測哪些客戶可能流失,那麼也許你就能做些beplay体育app下载地址什麼,這樣他們就不會流失,從而節省大量資金。
我們看到零售商使用關於顧客的數據來進行超個性化的體驗,甚至在商店中,學習個人特征beplay体育app下载地址,預測他們的行為,創建推薦引擎。在物聯網和製造業的世界裏,機器學習模型可以通過預測質量、預測需求和製造過程的許多其他方麵來自動化決策。
當然,機器學習被用來檢測欺詐和其他網絡安全問題。
它被用於連接設備。很多聯網設備都是用來收集信息的。當然,這是物聯網的趨勢。現在的問題是,我們能用這些數據實時做些什麼。同樣,你需要機器學習模型來做這件事。
生命科學正在用它來加速藥物的發現過程。
客戶服務是試圖在客戶的問題真正發生之前預測他們的問題。beplay体育app下载地址這又是一個機器學習模型。
有相當多的用例。每個企業都有多個用例,通常,找到用例的方法非常簡單。遍曆您的業務流程,遍曆一個應用程序,在每一步都問自己:“這裏是否有我可以預測的東西?”因為如果你能預測到一些東西,那麼機器學習就有可能創建這個模型。
弗雷斯特企業數據科學研究
機器學習的實踐被稱為數據科學。數據科學家,當然你們很多人都在這條線上,他們探索數據並使用我們將要談到的機器學習平台來創建這些模型無論這些模型是關於客戶,過程,風險,無論他們試圖預測什麼。beplay体育app下载地址Beplay体育安卓版本
數據科學家了解算法。現在,有些人可能會爭論什麼。因為我在這裏列出了一些統計算法,數據科學家通常在生命周期過程中使用它們與機器學習結合,但通常數據科學家,他們不構建和編寫這些算法,他們使用它們,其中許多都在R CRAN或scikit-learn或Spark MLlib中實現的開源中。所有的平台都必須使用這Beplay体育安卓版本些算法。
但這些算法並不一定是優秀企業平台的區別所在。Beplay体育安卓版本它還必須專注於讓數據科學家和那些數據科學家團隊在這個生命周期中盡可能高效。生命周期大致是這樣的。我們需要大量的數據源,我們需要準備這些數據,我們需要運行機器學習算法來創建一個模型,我們需要看看這個模型是否會工作,然後最重要的是,我們需要把它投入生產。
現在,不像軟件或代碼有獨特的功能,它做你讓它做的事情,機器學習模型是關於概率的,它可以改變效力,這些預測的準確性可以隨著時間的推移而改變。因此,這裏的一個重要步驟是能夠在生產中監視這些模型。這是一個永不結束的連續過程,因為您希望在新的數據上重新訓練這些模型。這就是機器學習平台的意義所在。Beplay体育安卓版本
今天我們聽到的數據科學團隊所麵臨的一些關鍵挑戰,總是與獲取數據有關。如果你考慮一個企業,它不僅僅隻有幾個數據源,幾個有幾十個,幾百個,有時上千個的應用程序。因此,對於任何特定的機器學習項目,可能會有少數或更多的相關數據源,這些數據源存在於應用程序中,可能是外部來源。因此,獲取這些數據仍然是一個挑戰。
隨著數據的增長,數據科學家想要使用更大的數據集,現在你需要有可擴展的培訓,他們在高負載的工作中掙紮。我得到了我在企業中所做的評論這不僅僅是在你的筆記本電腦上下載一個木星筆記本然後說開始。關於人們遇到可伸縮性問題的詢問太多了。他們必須在企業中擁有可伸縮的解決方案。
這是相當耗時的,迭代所有可能的算法,所有可能的參數,所有可能的特征準備和其他你可能有的數據假設。
隨著數據科學團隊的成長,保持這種生產力也被認為是一項挑戰,當然還包括在生產中部署和管理這些模型。這就是我們看到的關鍵挑戰。
這個市場的好處在於,對於在這個領域提供工具的供應商來說,這些挑戰並不令人意外。大多數供應商都在以這樣或那樣的方式試圖解決這些問題,許多供應商已經解決了這些問題。
機器學習平台的10個要求Beplay体育安卓版本
讓我們來看看10個標準中的一些,10個你應該在企業機器學習平台中尋找的要求。Beplay体育安卓版本
第一是數據集準備。
數據就是燃料,它是成功機器學習項目的原材料。所以任何機器學習平台都必須有一些數據采集的功能,Beplay体育安卓版本連接到數據源,整合數據,對數據進行某種形式的轉換。現在,有一些方法可以在外部實現,這可能是一個企業解決方案。
但即使是最後一英裏,也總會有一些數據采集。當然,每個數據科學家都會告訴你,你必須創建正確的功能。這不僅僅是引入列有時還包括創建派生列,從統計上探索數據以減少維數,減少數據集的大小。
即使是在深度學習中,人們會說,“哦,深度學習的偉大之處在於你不需要做所有的事情。它會自動提取特征。”是啊,那標簽呢?沒有標簽,你就不會有一個非常精確的模型。有些人對此不屑一顧。他們不應該。我把它也歸到這一類。
看看數據集的準備工作。現在,一些數據集的準備工作並不簡單。其中一些涉及到排序,重新排序數據集,做大量的轉換。在你開始訓練模型之前,這本身就是一個巨大的步驟。
第二是算法。
當然,您需要算法,您需要一組全麵的算法來適應不同用例中不同類型的數據。我們認為,目前算法領域的大多數創新都是開源的。這是偉大的。在深度學習領域,甚至在更傳統的經典算法領域,都有非常活躍的社區。
但當你考慮一個平台時,你也應該考慮,“好吧,他們支持開源算Beplay体育安卓版本法。”你想要這樣,因為你想要利用正在發生的創新。但是什麼樣的專有算法呢?它可以是統計數據,可以是算法的組合,可以是傳遞參數的實現,可以是開源之上的抽象層。一定要確保它是開源的,但不要止步於此。
最後是深度學習。深度學習相對較新。看起來並不像,因為大家已經討論了很多年了,但很多平台還沒有解決整合深度學習的問題,迫使人們下載單獨的框架,如TensorFlow或MXNet,並在這些平台之外進行操作。Beplay体育安卓版本
不過,我們現在看到的是,開源社區和商業供應商開始引入這些框架,並將其抽象出來,使其更容易使用。
第三是可伸縮性。
我們有了我們的數據,我們有了我們的算法,現在我們必須變動,現在我們必須能夠分析這些數據。我不希望你們僅僅從數據集的大小來考慮可伸縮性。這也是非常重要的,但我也想提醒你們,這也與迭代有關。
很少有人會準備一個數據集,你會對它運行一個隨機森林,得到答案並對它感到滿意。不。你將改變隨機森林的深度,然後你將嚐試GBM。
這裏發生了多次迭代。這使得性能非常重要。如果你要做十幾次迭代,每次都要花一兩個小時,那你就少了一天。但如果你在一個可擴展的平台上,同樣的運行可能需要5分鍾或Beplay体育安卓版本10分鍾,你可以更快地迭代。這意味著你可以更有效率,你可以找到更準確的模型,它使整個團隊更有效率,更不用說,正在進行的再培訓,用新數據來確保模型仍然是準確的。
現在,你真的必須……每個供應商都會說,“當然,我們是可擴展的。”但這個領域的很多經典供應商,都沒有集群計算的概念。他們的可擴展性是多線程,多核。它不是一個集群計算環境。這就是你得到縮放的地方。
很多供應商,我在這裏跟蹤47個供應商,特別是新供應商基本上從Apache Spark獲得可伸縮性,因為它有Mllib。它也有h2o,還有其他庫。
4號。開源的。
大多數發生在機器學習算法中的創新,都發生在開源社區中,而數據科學家,他們想要利用這一點。第一種是多語言編程,這意味著,“我想要能夠使用多種語言。”所以不,不隻是關於r。不,不隻是關於Python。兩者都有,可能還有其他Lua和其他語言。
那麼,該解決方案支持哪些開源編程語言,以及第二大數據呢?從Hadoop和Spark開始,有很多創新。例如,雲上還有其他處理大數據Beplay体育安卓版本的平台。那麼與大數據有什麼聯係呢?記住,這也是為了數據準備而不僅僅是為了可擴展性和培訓。
然後我已經提到了算法。這些開源算法是如何暴露的?它很重要,因為它真的很亂。有這麼多不同的框架,真是一團糟。那麼,供應商能在多大程度上讓您快速使用新框架,但可能會將一些更知名的庫的複雜性抽象出來呢?
是5號。工作台。
機器學習平台必須提供那些數據科學家Beplay体育安卓版本和他們的商業合作者在整個模型生命周期中使用的工具。當你著眼於一個平台及其提供的工具時,你應該著眼於UBeplay体育安卓版本I工具及其差異化功能。
我和很多數據科學家交談過。他們想去Jupyter,有些想去RStudio。有些人甚至想從筆記本解決方案進入Apache Zeppelin。但另一群數據科學家正在思考,“嗯,數據管道的拖放模型怎麼樣?”有Apache風流,還有其他一些開源項目加入到這些範例中。
即使您使用的是筆記本解決方案,那麼,這些不同的特性是什麼呢?我們會再多講一點,比如協作特性和生命周期特性。
另一件越來越流行的事情是自動化。我給你們看的生命周期圖?這個循環一直在繼續?在這個圓的每一階段,都有其他的圓。所以我的想法是,有沒有工具可以自動構建模型?
一個很好的例子是我之前提到的我可能想嚐試三種不同的算法或者我可能想嚐試一種有12組不同參數的算法,我必須一次做一個嗎?或者有辦法配置它嗎?是否有一些工具可以讓我配置它,讓它運行所有這些程序?[聽不清00:21:59]在結尾嗎?所以尋找自動化。
你會看到很多供應商都在談論一些自動化功能,但即便如此,我們仍處於早期階段。我認為在接下來的12到18個月裏,它會變得更大。
第六是合作。
現在,這是企業的一個關鍵問題,因為已經發生了什麼……首先,企業已經做機器學習很長很長時間了。但這是一個非常小眾的領域。
當保險公司說:“哦,我們想做數據科學。”你都幹了20年了。但他們的意思是,他們想要創建跨越更多業務功能的模型,這意味著他們想要創建數據科學團隊,一旦你在一個團隊中工作,你需要保持生產力。這是數據科學家之間的合作,也是那些必須簽署這些模型的商業利益相關者之間的合作。
尋找共享工具,什麼樣的注釋功能,當然是共享代碼,共享模型,共享與生命周期有關的一切,還有存在什麼樣的社區。
有開源社區,但我在這裏說的是,是否有一種方法,有一個社區功能,甚至集成到像Slack這樣的協作工具,公司已經在使用。所以也要注意這一點。
第7點是部署。
顯然,這些模型必須找到進入應用程序和業務流程的方法,才能真正開始進行預測,並對業務結果產生影響。你會聽到很多人說,“哦,這是最難的事情。”這裏麵有技術成分但也有組織成分但我要講的是技術成分。
模型通常用某種形式的代碼、某種形式的運行時來表示。所以你必須看看有哪些可用的部署方法。是服務電話嗎?這聽起來像是最簡單的解決方案,但如果您在內部進行預測,例如,一個交易檢測欺詐,那麼,您不會想讓一個網絡警察。為什麼?因為你沒有多餘的毫秒來做這個所以你可能想把它嵌入到代碼中,你可能想把它嵌入到數據庫中,嵌入到其他應用中。所以要尋找多種方式來部署這個模型。
現在,這將部分地由算法和它們的輸出控製,但越來越多地,你會看到這些平台有辦法創建一個,因為沒有更好的術語,一個罐子一樣的組件,然後你可以合並到其他應用程序。Beplay体育安卓版本
第八點,這是我最喜歡的一點因為我認為這一點還沒有得到重視,那就是模型管理。
很好,你的模型已經投入生產。現在怎麼辦呢?我們知道模型是有生命周期的因為它們是基於過去的,基於曆史數據的,環境是會變化的。因此,模型管理是一種生產能力。
模型管理有三個關鍵組成部分。第一個是模型監視。你必須在一個平台上看。Beplay体育安卓版本它有什麼能力?或者您可以向代碼或模型中添加什麼功能,以在部署期間監視模型的有效性?這是什麼意思呢?
在模型訓練中,你可能會說,“嘿,酷,我得到了79%的準確率。”這很酷。但如果準確率開始下降怎麼辦?你怎麼知道它會退化?或者你怎麼知道它做出了正確的決定?正確的建議嗎?比如說,這是一個產品的推薦。如果很多用戶開始點擊那個產品,這就是很好的證據,證明它是有效的。如果不是,那可能就是沒起作用。但是模型監視是一個關鍵功能。
現在,即使在您將模型投入生產之前,您最好不要相信它,大多數成熟的組織都是這樣做的。無論數據科學家對這個模型進行了多麼嚴格的訓練,你一定是瘋了才會把它放進去,取代一個你知道正在工作的模型。
大多數成熟的組織會對模型進行某種類型的冠軍/挑戰者或a /B測試。冠軍/挑戰者隻意味著,“好吧,我有一個模型。這是工作。我有一個新的,我覺得更好。但是我緊張。”這就變成了挑戰者,你在並行運行生產數據,你在比較結果。如果挑戰者比冠軍做得好,那麼挑戰者就是冠軍。
A/B測試略有不同。就像,“我將使用這兩個模型,但我害怕,所以我隻會在這個新模型上做5%的決策或預測。我要確保你沒事。然後我會把它換掉。”這是模型管理的一個重要特性。
最後,模型譜係。模型沿襲確實涉及到其他一些需求,如工作台和數據準備。我如何創建這個模型?我可以重建模型嗎?人們經常會說,“哦,你得向監管機構解釋一下。”如果你在一個受監管的行業,你就會這麼做但如果不是,就不要忽視它因為你可能要向高管解釋這些數據是如何創建的,我們使用的數據正確嗎,這個模型好嗎。模型沿襲將跟蹤審計用於執行該操作的數據和方法。
第九是業務解決方案。
有很多常見的用例,我在開始的時候跟你們講了一些用例關於機器學習模型,以及為什麼要重新創造世界。如果你在做一個流失模型,你會看到一些供應商會有一些樣本代碼或者可能會有一些針對特定用例的啟動項目。它不是絕對必要的,但它是很好的。
如果您心中有特定的垂直和水平方向,請尋找解決方案加速器的潛力。這些,就像我說的,可以是樣品啟動模型,預建模型。很多這類事情,比如如果你是一個R程序員,你可能會說,“好吧,我在CRAN中得到了這個。”當然,但是如果它們在一個作為ML平台的平台中表示,可能會更容易。Beplay体育安卓版本
越來越多的數據倉庫,這是罕見的。這在現在是很罕見的。但越來越多的是,其中一些平台將專門掌握來自ERP係統或其他公共來Beplay体育安卓版本源的特定類型的數據集、特定格式的知識。你可能找不到太多,但你可以去找找。我們認為會有更多平台提供這種服務。Beplay体育安卓版本
最後,第10點。賣主呢?
我說過我們在追蹤這片區域的47個供應商。外麵越來越混亂了。在我提到的最後九件事中,我想我們將幫助您評估並減少一些供應商。但是當你隻看賣家的時候,我怎麼才能得到這個呢?
越來越多的人想要一個雲選項,他們想要雲選項,因為它涉及可伸縮性、自動配置、部署,以及其他很多……它與許多其他事情相關。但另一方麵,有些人希望采用不同的定價模式。所以看看價格,看看是否適合你的情況。
這個領域有很多非常非常小的供應商。他們中的許多人實際上把他們的一些代碼建立在……不是開源的,但你必須看公司執行其戰略的能力,這是特別相關的,因為這個領域有這麼多新的供應商,然後他們如何支持整個平台。Beplay体育安卓版本對於擁有供應商的企業來說,這始終是一個重要的考慮因素。
最後,看看路線圖。這個領域正在以極快的速度發展。這個產品路線圖是什麼?它能滿足未來的需求嗎?我提到了深度學習。好吧,我們現在沒有做深度學習,但我們想在六個月內完成。這在供應商的路線圖上嗎?他們有答案嗎?產品路線圖,也非常重要。
機器學習平台的未來Beplay体育安卓版本
這是10個。最後總結一下2018年的未來,我們認為在機器學習平台方麵最熱門的項目是什麼,其中一個是雲計算。Beplay体育安卓版本
雲
我已經提到過,但越來越多的企業買家,他們希望雲作為主要的或至少作為一個選項。他們很猶豫是否隻考慮預付費方案。你可以看到,在過去的18個月裏,大型供應商都在爭先恐後地提供雲解決方案,而不僅僅是對現有代碼的大規模遷移,甚至是對雲的重新架構。當然,大多數年輕的初創公司都是為其中一些設計的,為雲計算設計的,而不是全部。
自動化
第二大趨勢是自動化。幾年前很流行,現在也很流行。就像,“哦,我們想讓非數據科學家建立模型。”這是數據科學家短缺的解決方案。這不僅僅是一個花哨的用戶界麵。你需要隱藏一些重要的細節。選擇一個業務用戶,您可以為他們提供世界上所有的拖放工具。但如果他們要從一百種算法中選擇一種來訓練模型,他們就不知道了。
自動化是兩個方麵。第一,它是關於隱藏一些細節,這樣也許更多的商業智能類型的專業人士可以建立一些模型。他們不會取代數據科學家。然後自動化的另一部分是說,“嘿,如果我們隻是提供自動化,讓我們的數據科學家的生產力提高一千倍呢?”我們看到了這種自動化的大趨勢。
我想你們可以看到這些幻燈片。當然,當我在市場上評估和跟蹤這些供應商時這是我要尋找的10件事還有很多細節我們可以研究,但這是最主要的10件事。
謝謝大家的關注現在我把這個演講交給Chris Robison,他是Overstock的數據科學主管,還有他的同事Craig Kelly,他是Overstock.com的產品經理。克裏斯,克雷格。
介紹Databricks客戶overstock.com
克裏斯·羅賓遜:
非常感謝你,邁克。
正如邁克所說,我叫克裏斯·羅賓遜。我是Overstock的首席數據科學家,負責市場營銷和欺詐,今天我將與大家分享我們一直在追求的一個特定用例的故事,以及我們將Databricks作為解決方案的路徑。
首先,簡單介紹一下我們。Overstock.com
Overstock.com是家具和家居首選的在線目的地décor,使用技術幫助精明的購物者在頂級銷售中找到最優惠的價格,創建他們的夢想之家。我們成立於1999年,我們有近500萬個獨特的產品在160個不同的國家銷售,最重要的是,作為一個數據科學家和我的團隊,我們有數十億的訪問量和頁麵瀏覽量,這是多年來積累的。
Mike在他演講的前一部分,提到數據是所有這些算法的燃料。在Overstock,我們已經儲存燃料將近20年了這真的是一個非常不可思議的數據集。我們實際上可以觀察到人們的整個生活方式的改變,比如為他們的幼兒購買臥室家具,到為他們的新大學生購買宿舍家具。這給了我們大量的信息我們可以挖掘和收獲。
讓我們稍微談談手頭的問題。
用例:生成用戶評分來評估購買傾向
我們最初的目標是確定購買傾向,或者從本質上產生我們所謂的用戶評分。因此,我們正在識別表明用戶準備購買或轉換的獨特模式和趨勢,用戶得分代表了客戶購買的可能性。
我們在訪問和用戶層麵收集數據在這些幻燈片中我們會講到的基本步驟是我們首先將原始的用戶交互轉化為功能,這是邁克提到的第一項數據準備。然後我們根據數月的數據訓練分類器,將購買與不購買進行區分,最終目標是預測新用戶和訪問次數。
我們在這一過程中遇到了哪些挑戰?
我們遇到的第一個挑戰是類不平衡的挑戰.這是電子商務中非常典型的預測分類器。
這是什麼意思呢?本質上,我們有一個不平衡。所以我們的大多數遊戲並沒有真正以購買結束。因此,從本質上說,我們的一個品牌比另一個品牌少得多,他們無法給出明確的數字,但我們認為這與電子商務的總體趨勢相當一致。
所以我們有很多新客戶,我們有數十億獨特的beplay体育app下载地址頁麵瀏覽量在任何日曆年,正如我所說的,我們看到的許多用戶第一次,我們有較低的轉換實際上一小部分會話在購買結束,這非常稀疏的weblog的數據意味著我們必須消化大量生成有用的特性,我們需要一些方法和可伸縮的方法來梳理這些博客和開始卷起來可用特性的算法。
在一天結束的時候,我們感興趣的是正麵標簽的準確性。記得在精度。我們想以一種貪婪的方式,我可以做一個非常簡單的算法,說:“好吧,沒有人會購買,我們在會話級別的準確率在90%以上。”
第二個挑戰我們遇到的問題,邁克在他的演講中很好地闡述了這個問題,就是計算費用.批處理培訓和ETL需要大量的資源。
在我的特征數據集中,在某個時刻,我必須將每個用戶訪問我們網站的所有會話都記錄下來,並按時間排序。這是我所有應用程序中最消耗資源的操作。例如,有些機器人會為單個用戶提供超過100萬個會話。
或者在一些機器人的會話中,我們會看到剪輯的速度比任何人類點擊鼠標都要快。在我們的高峰時期,他們在此基礎上增加了一層複雜性。我們的流量可以達到正常流量的10倍,所以我們的正常資源正被拉伸到極限,而與此同時,我的ETL流程需要最多的資源,甚至培訓也需要最多的資源。
資源是稀缺和緊張的,這導致數據科學家在DevOps上花費了太多的時間,而沒有足夠的時間迭代他們的模型。
在你的內心深處,你應該在想:“我們需要某種可擴展的解決方案。‘數據庫’怎麼樣?”
第三個挑戰Mike通過他的多語言支持解決了這個問題。隻有多個編程語言.所以我的數據科學家們對編程語言的偏好有很大的不同。前三名可能是Python、R和Scala。語言的選擇取決於用例。
您希望使用最有效的語言在更小的數據集上建立模型和算法的原型。通常情況下,特別是對於剛從學校畢業的數據科學家來說,他們的工作是Python或R,然後轉向更水平可擴展的生產語言,我們選擇了Scala這條路線,盡管這裏有很多選擇。
另一方麵,在探索階段,你需要一種視覺上非常豐富的語言。您希望能夠對數據集提出不同的問題或提出不同的假設,能夠可視化您的問題和這些問題的解決方案,然後能夠與您的業務夥伴分享這些問題。因此,對於探索、分析和特性工程,您需要一個健壯的統計可視化框架,比如R或Python中的Matplotlib。
因此,結果往往是在大型組織中,每個人都使用自己的筆記本,無論是Jupyter筆記本還是Zeppelin筆記本,我認為Scala筆記本的曇花一現有一段時間。但這在數據科學組織中造成了豎井,並導致了大量重複的代碼。在一天結束的時候,我不希望我的科學家不得不編寫一個定製包來做一些探索性的分析,如果我可以編寫一次,然後添加到一個更大的代碼庫中,這樣他們就可以提取那些模塊,使用它們完成手頭的任務,然後繼續建模。
overstock.com上的數據科學
通過Databricks統一分析平台,我們實現了大規模的數據科學。Beplay体育安卓版本
我們是如何克服這些挑戰的?
首先是階級失衡的挑戰。一開始我們采取了貪婪的方法,結果非常好,我們隻是簡單地過度采樣了我們的訓練數據。還有更微妙的方法你可以采用合成過采樣,分層抽樣。我們采取了第一種方法,並最終達到了我們的目的。
我們有一個Spark作業在Databricks上運行,它分割ETL培訓數據。由於積極的標簽非常稀少,訪問率很小,我們找到了所有積極的標簽和相對相等數量的消極例子來訓練。您可以將此拆分看作可以調優的超參數。你要7 /30嗎?60/40嗎?您可以在進行模型探索過程時使用它,它會極大地提高您的精度指標。
在某種意義上,我們讓我們的模型對這些我們想要識別的積極標簽過於敏感。
我們遇到的下一個挑戰是特性設計和攝取這些原始的weblog數據。所以每個人在網站上的每個動作都是我們博客上的一個單一條目,無論是點擊一個按鈕,選擇一個顏色樣本,在一些產品的不同選項之間切換,也許是沙發的不同顏色。每一次交互都是一個單獨的條目。
因此,首先,我們將所有這些事件合並為每個用戶的多個會話。您應該考慮在Spark中使用組合的by鍵。然後我們結合每個用戶的所有會話。
對於每個用戶,我將收集一個已排序的集合,比如說每個用戶的所有會話,然後在某個點上,我們將對所有會話進行排序,這樣我們就可以生成具體操作和交互時間的經驗計數。這些是經典時間序列意義上的實驗室特征。
X是多久以前來到這個網站的?他們看過類似的分類法嗎?他們在這個網站上呆了多久?他們是否向我們展示了不同於典型的櫥窗購物行為的行為?
這再次帶來了我們最昂貴的操作,即對所有用戶會話進行排序。一旦糾正了每個用戶的所有會話,我們就按時間對會話進行排序。這是非常昂貴的。然後我們開始計算會話和單個操作之間的時間差,並將更重要的操作製成直方圖。
我們的用戶傾向於在一天中的什麼時間添加到購物車中?要移到購物車嗎?他們在一天中的什麼時間查看不同的分類法或不同的子類別?我們將嚐試將這些模式嵌入到我們的特征集中。
從本質上說,我們隻是試圖捕捉正常購物行為和表明客戶準備購買的行為之間的區別。
你通常什麼時候購物?對我來說,很多時候,我可能會在工作或開會無聊的時候用手機瀏覽網頁,但我傾向於在晚上晚些時候轉換手機,通常我轉換的時候會切換設備。我更傾向於在我的平板電腦或筆記本電腦上轉換,因為我的視力不好,通常我看不到手機屏幕上的分辨率。
我們想在我們的特征集中嵌入足夠多的信息,讓算法能夠回答這些問題,人們通常什麼時候購物?他們什麼時候購買?在每種情況下,他們更喜歡哪種設備?他們什麼時候開始從手推車上搬走?他們是否沒有使用我們的願望清單功能,但他們傾向於在購物車中堆一堆商品,直到他們準備轉換,然後他們開始刪除這些商品,以降低到他們願意接受的價格?
然後我們看看所有這些功能的滯後窗口。我們觀察1天、7天、14天和30天以上的窗口,這些滯後窗口是一個超參數,如果你有足夠健壯的代碼庫,你可以使用它。
所以當我們為每個用戶獲取所有會話並開始訂購時,我們想要引入外部數據集無論是人口普查數據還是我們在Pyramid Overstock上擁有的其他數據集,我們有一個優先俱樂部會員,我們可以查看退貨數據,我們可以查看與客戶服務的交互。
對於任何給定的會話,該用戶在多長時間前進行了返回?他們是優先會員嗎?如果他們是優先會員,他們是多久前加入的?他們最近更改密碼了嗎?如果他們與我們的客戶服務團隊進行了互動,這是一個成功的互動嗎?他們是否及時得到了解決方案?
我們希望將所有這些關於用戶的全局信息嵌入到這些特性集中。為了做到這一點,我們使用Spark Snowflake Connector和一個查詢下推,它使這些非常複雜的連接和聚合在每天數百萬用戶之間高效。
這一點我非常清楚。對於每個給定的會話,我們都以適當的方式附加這個全局信息。因此,用戶可能成為俱樂部O會員,但隨後停止他們的俱樂部O會員,我們需要嵌入它,並將其附加到正確的會話。你可以想象這些巨大的,巨大的連接跨越數百萬行和這些巨大的數據集。
這是我們一般ETL管道的示意圖,我們從原型到部署都在Databricks中進行。我們把原始的網絡日誌,用一個組合by鍵把它們卷成會話,然後用另一個組合by鍵生成用戶會話或者附加每個用戶的所有會話。
在這一點上,我們必須撥動開關,按時間安排所有的會話。這是非常非常昂貴的。一旦我們有了按時間排序的所有會話,我們就可以加入全局信息來生成增強的用戶配置文件。所以優先俱樂部,會員資格,回報,客戶服務,任何我們能真正投入的東西。
然後我們可以生成時間和滯後特征。有人是多久前回來的?他們經常回來嗎?我們有這個用戶的優先俱樂部信息嗎?在一天結束的時候,生成一個增強的用戶檔案,我們把它作為最終的功能集輸入到我們的算法中。
SPARK機器學習
現在來談談生活中的模特訓練。同樣,我們在Databricks統一分析平台上進行所有的模型訓練。Beplay体育安卓版本我們實際上在Spark中編寫了一個定製模塊,允許我們對任何給定任務交叉驗證三種甚至K種不同的算法。
一個例子可能是使用邏輯回歸、隨機森林和樸素貝葉斯。然後,我們使用Spark超參數調優為每個算法找到最優參數集,並為Spark提供自定義評估器類,這樣我們就可以選擇Spark選擇的指標作為單個算法的最佳參數組合。在一天結束的時候,我們想要在所有這些算法之間交叉驗證。
我們不僅要為每一個算法選擇最佳的超參數集我們還要在三種,五種或者二十種算法中選擇最優的算法這些算法可能是針對任何給定問題的。這越來越趨向於自動化和可伸縮性。這些任務都沒有靈丹妙藥,所以為什麼不嚐試一下提供給你的所有算法呢?在完成最初的訓練運行並對空間有了更好的了解之後,為什麼不嚐試自定義其中的一些算法呢?
在一天結束的時候,我們需要對這些自動化過程有真正可靠的報告和透明度。在每個算法運行和每個算法的交叉驗證結束時,我們生成一個報告,該報告為我們提供了一個高級模型描述。我使用的是什麼版本的模型?這個模特叫什麼名字?輸入到模型中的特征是什麼?它是合適的嗎?這些特征的係數是什麼?
所有的精度指標是什麼所有的精度指標,我的意思是你想要輸出你能得到的所有東西,然後我們,作為科學家,必須觀察這些指標的組合並決定如何進行未來的迭代並不斷微調這些模型。
然後我們需要參數描述,默認運行時設置。我是否在某些節點上溢出了內存?我的工作時間比過去長嗎?這可能意味著我們可能會看到流量激增,可能在某個過程中有漏洞,但你需要盡可能多的可視化和自省。
這是我們的模型訓練流程的示意圖。同樣,所有這些都建立在Databricks上。我們有30多天的特征,我們把這些特征輸入到一個分割器中,然後訓練一個模型我們將把這個模型發送到某種預測裝置中,然後我們根據單天的數據或單小時的數據,不管你的時間單位是多少,根據問題做出預測。
Overstock.com的數據庫對商業的影響
那麼為什麼要用Databricks來統一分析呢?
對我們來說,第一件事,尤其是在市場營銷,特別是在電子商務領域,就是產品的速度。數據庫讓我們縮小了POC和生產之間的差距。我的數據科學家們在筆記本上用POCing算法計算可伸縮的數據集,然後我們可以通過拖放的方式將其發送到更多的生產環境中。
- 我們將模型投入生產的成本降低了近一半。
- 我們新型號的上架時間是以前所需時間的五分之一。
- 我們可以在不進行新部署的情況下對現有模型進行日間改進。
- 我們通過自助服務和集群管理快速旋轉集群。
- 這意味著當我們的商業合作夥伴真正需要時,我們可以采取行動的見解。
- 筆記本版本控製和協作允許我們在筆記本內部回滾單個動作。
我可以登錄並查看我的一位科學家的筆記本,幫助他們調試代碼,然後回滾版本,如果我們嚐試了一些不工作的東西,所有這些都被保存下來。它們是強大的,很好的集成,它使探索從一般的試錯方法到探索分析完全無縫。
下一個重要的東西是彈性計算。這解決了Mike所說的工作流中的峰值問題。
彈性和可伸縮的計算允許在模型開發期間快速迭代。它縮短了完成探索性分析的時間,傳統上可能需要幾十小時,甚至幾天。你可以用生命周期來探索極其龐大的數據集。
可用的無服務器解決方案可以有效地使用我們的雲資源進行非關鍵任務分析。也許我有一些瘋狂的假設我想在一個非常大的數據集上探索。這需要我花幾個月的時間梳理所有的博客。我可以把這個作業部署到一個少服務器的解決方案上,它將以一種非常節約成本的方式在後台運行,因為我現在不需要答案。我可以在幾天甚至一周內得到答案。
簡單地說,Databricks在更大的AWS平台上的網絡、安全性和分布式計算方麵的成熟度是首屈一指的。Beplay体育安卓版本
在一天結束的時候,我們隻想為工作選擇合適的工具。Python,尤其是Python 3和R在Databricks中更加健壯.Databricks同時支持Python 2和3的兩個版本,所以它解決了向後兼容的問題,我相信如果你是Python 2.7商店的新手,很多人都會遇到這個問題。
這兩種環境都有一套完整的庫,它們可以動態安裝。所以,筆記本可以在筆記本內部的Python 2和3之間切換.我可以在R中進行一些數據可視化,然後將其移植到Python中使用它們的ETL和操作,然後在Scala中進行一些大規模的工作。你可以一個細胞接一個細胞。
我們可以根據需要在庫中安裝Python,這使我們能夠在不請求外部支持的情況下創建新庫的原型。這是一個針對個別科學家的點擊操作。我們還能夠將內部代碼庫推到筆記本集群中,從而允許定製和減少常見任務的代碼複製。所以要遠離個人筆記本和個人代碼庫的孤島。我們都是建立在彼此工作的基礎上。
它們為語言和框架提供遺留支持。這又回到了Mike反複強調的模型管理問題上,我完全同意這是健壯的數據科學管道中最容易被忽視的問題之一,也是最難實現的問題之一。因此,我們完全支持Spark、Scala和Python的曆史版本,這允許基於舊版本的模型的完全再現。
我們能夠快照完整的數據集,並將它們連接到模型,允許結果在任何時候完全重現在未來,這就解決了問題。模型發生變化。我們是否想要回滾到我們六個月前嚐試過的東西,看看這個模型是否仍然相關?所以你有完全的即插即用功能。將向後兼容與可再現的結果相結合,可以形成一個健壯的長期數據科學和建模環境。
最終目標應該是完全可複製的模型和結果,這意味著任何錯誤都可以逆轉,在我的數據科學家轉向下一個機會後,工作仍可以繼續。
我們在Databricks的經驗非常豐富。他們成為創新和成功的夥伴.Overstock的數據科學家和我們的商業合作夥伴大都是天生的貪婪者。我們想要所有的數據,所有的時間,所有的幾乎實時。因此,Databricks的客戶代表和工程團隊歡迎這一挑戰,他們真的加快了步伐。他們對我們的特殊需求非常敏感。
我可以數出很多次,我們的客戶代表和技術支持代表在遇到問題的幾分鍾內就打電話給我們,幫助我們在生產係統上進行實時故障排除.他們不斷推出新特性,無論是用於生成可部署在可伸縮生產服務器上的集裝箱模型的API,還是基於Spark構建的支持同時讀寫的多參與者。
不管你怎麼看,Databricks為我們的成功付出了巨大的努力,並為不斷突破現有的可能性而感到興奮,這也發展成了一種非常豐富的關係,讓我們能夠更快地構建未來.
同樣,在我們的行業中,生產速度是遊戲的名稱。我們必須領先於競爭對手,滿足客戶的需求。beplay体育app下载地址我們實現了隔天迭代建模,多語言支持,統一的分析平台。Beplay体育安卓版本從ETL到探索性分析再到深度學習,我們什麼都做。我的產品經理甚至使用Databricks筆記本來幫助可視化kpi和周轉業務報告.
彈性計算允許我們使用最新的技術和最新的硬件。它具有強大的自動化功能,可以立即進行擴展。強大的協作工具確實提高了我們的工作效率,並允許我們花更多的時間深入思考我們正在生產的模型,並允許透明度。Git集成支持健壯的代碼跟蹤所有這些結合起來,讓我們能夠在雲中實現N+1個數據模型。
再一次,我們可以利用我們所有的內部數據來源,通過人口普查公開的數據,然後通過我們的其他第三方供應商的數據,把它們凝結在一個空間裏。
我認為我的一個數據科學家說得最好。在我們的新雲棧上工作就像得到了頭等艙的座位。這正是飛行或數據科學應該有的樣子。
非常感謝。現在我把時間交給韋恩進行問答環節。
常見問題
韋恩·陳:
好的。謝謝你,克裏斯。
問Overstock的人一個小問題。你能談談你是如何在Databricks上將開發轉移到生產的嗎?
克裏斯·羅賓遜:
我想這一切都是從筆記本的開發開始的,我們通過雲中的Snowflake有我們的數據集,我們可以在更小的數據集上開始POC算法,可能是一周或幾周的weblog數據,一旦我們開始獲得一些能量,看到我們想要的指標,無論我們是將它們包裝在Scala的jar中,還是將它們作為自然Java部署在Databricks上,都是非常無縫的,但要運行數周甚至數月的數據,並開始實時監控它們。
它使從POC轉移到生產並完成最後一英裏變得容易。
韋恩·陳:
正確的。謝謝你,克裏斯。再次感謝我們的主講人抽出時間來分享他們的發現和經驗,感謝大家的出席。
這裏有更多需要探索的內容
深入了解mlop:
//www.eheci.com/p/ebook/machine-learning-engineering-in-action
為特定於行業的用例發現我們的解決方案加速器:
//www.eheci.com/solutions/accelerators
查看行業領先的數據和AI用例:
//www.eheci.com/p/ebook/big-book-of-machine-learning-use-cases