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