什麼是最小可行性資料產品(MVP)?如何用它做機器學習?
大資料文摘出品
**編譯:胡笳、睡不著的iris、****halcyon******
本文作者是一名資料科學家,現在離開了Pivotal公司加入了idealo公司,正在幫助其搭建資料科學團隊以及把機器學習整合到公司的產品中。
在執行計劃的過程中,他發現,作為一名優秀的資料科學團隊的領導人,必須定義機器學習產品路線圖。
結合自身經歷,本文作者帶大家探究一個好的最小可行性產品(MVP)究竟是什麼,以及機器學習產品一個好的MVP的不同維度究竟有哪些。
什麼是MVP?
在Pivotal Labs工作期間,我接觸到了Eric Ries推廣的精益創業思想。精益創業其實是當今最一流的產品開發方法論。其核心思想是,通過不斷的收集客戶的反饋來開發產品或服務,從而可以降低產品/服務失敗的風險(開發-衡量-學習)。
開發-衡量-學習概念中的一個不可分割的部分就是MVP,它本質上就是“在一個新產品的版本開發中,它讓團隊以最小的代價收集客戶儘可能多的使用後的認知”。一個眾所周知的例子就是,驗證交通工具是否會成功(如下圖所示)。
我們從最小的代價開始測試這個想法。在這個案例中,我們只需要兩個車輪和一塊板子。然後我們將這個產品推向市場,並獲取反饋,增加產品的複雜性來不斷改進我們的產品。
在這個案例中,我們以一輛整合了使用者的反饋的汽車告終。一個大眾熟悉的例子是Airbnb(愛彼迎,旅行房屋租賃社群)。2007年Brian Chesky 和Joe Gebbia想創業,但是無力承擔舊金山的房租。
與此同時,有一個設計展會正要在這個城市舉辦,他們決定將他們的公寓出租給那些沒有在附近找到酒店的展會與會者。他們為公寓拍照,並將照片上傳到一個簡單的網站上(見下圖),很快在展會期間就有三個付費客人。這個小測試帶給他們寶貴的領悟:人們願意付錢留在別人的家中而不是去酒店,並且不只是附近的大學畢業生才會註冊這個網站。之後他們便建立了Airbnb,接下來的事大家都知道了。
與這種方法相反的另一種做法是,將一輛車從車輪逐一構建直到底盤,並且在此期間從未推向市場。但是,這種做法代價很高。在結束一天工作後,我們可能會推出一個客戶並不需要的產品。
讓我們以Juicero(智慧榨汁機初創公司)為例。他們從投資者手中募集了1.2億美元,用於創造一款精心設計的榨汁機,經過一段時間的開發後以非常高的價格進行發售(最初的原價為699美元,隨後降至399美元)。
除了榨汁機,你還可以購買裝滿原生水果和蔬菜的果蔬包,每包售價為5-7美元。可能有些人已經聽說過這個公司,但這家公司目前已經倒閉了,因為它並沒有意識到其實客戶並不真正需要一款價格高昂的榨汁機來將果蔬包榨汁。
他們並不真正瞭解他們的客戶。一個簡單的使用者研究就能讓他們意識到,客戶並不需要昂貴的機器來擠榨果蔬包,只需要兩手擠壓就足夠了。
MVP的概念如何與機器學習產品進行關聯?
MVP概念也可以被應用於機器學習,因為最終,機器學習也是整個產品的一部分或者就是最終產品本身。考慮到這一點,我認為有三個重要的維度。
1.最小可行模型
機器學習產品的一個重要方面就是建模訓練過程本身。假設我們有一個分類問題,我們希望將一些資料分類到預定義的類別中,例如熱狗vs.非熱狗分類。
解決這個分類問題的一種可能的方法是採用一個包含一個隱藏層的神經網路。接下來我們將訓練和評估此模型。然後根據結果,我們可能希望持續改進我們的模型。我們接下來將增加另一個隱藏層,然後再進行相同的模型訓練過程。
然後再根據結果,可能會增加越來越多的隱藏層。這種方法非常直接,實際上是解決熱狗與非熱狗分類問題的最佳解決方案,因為不需要特徵工程(我們基本上可以將原始圖片作為輸入資料)。但是對於大多數的分類問題,除非它們不是那些像在計算機視覺或自然語言處理中遇到的專業問題,否則這不是解決這類問題的最佳方法。
深度學習的最主要缺點在於其缺乏可解釋性。通過採用的網路種類來解釋此神經網路的結果通常很難。並且你會花費大量的時間用在神經網路的調參上,但對模型效能的提升卻影響甚微。
從簡單開始,建立基線。對於大多數分類問題,從邏輯迴歸這類線性模型入手會比較可行。儘管在許多實際應用中,線性假設是不切實際的,但是,邏輯迴歸做得相對好並可以提供基準,亦稱為基準模型。它的主要優點也是可解釋性,並且可以直接得到條件概率,這在很多情況下十分方便。
為了改進模型並放寬線性假設的條件,可以使用基於樹的模型。主要有兩大類這樣的模型,Bagging和Boosting模型。實際上,它們都使用的是決策樹,只是採用不同的方式訓練模型。最後,如果所有的方法都已用,你還想不斷改進你的模型,那麼我們就可以利用深度學習技術。
2.最小可行性平臺
我在Pivotal Labs工作期間,參與了許多專案來幫助財富500強企業開始他們的資料旅程。很多專案的共同點是開始對基礎架構進行鉅額投資。他們花費大量資金採購大資料平臺,即所謂的“資料湖”。
但在購買之後,他們甚至都不考慮潛在的用例,便將資料載入到他們的資料湖中。然後,他們聽說了一個名為Apache Spark的東西,並將其新增到基礎設施層。
現在,由於人工智慧已經成為流行的風潮,他們也開始購買GPU,並在其上新增如TensorFlow那樣的深度學習框架。在一個地方擁有所有(酷)工具聽起來很棒吧?然而,最大的問題是,將所有資料放入資料湖之後,發現資料與用例並不匹配。要麼他們沒有收集到正確的資料,要麼不存在支援潛在用例的資料。
更可行的方法不是考慮硬體或者軟體,而更多的是解決問題。通過這種方法,可以儘早瞭解需要哪些資料來解決問題,並且還能避免各種資料錯誤。除此之外,迄今為止我所看到過的很多機器學習問題,實際上都可以在本地機器上解決。他們並不需要對基礎設施進行鉅額投資。
而且,如果資料量真的很大,他們可以使用AWS或Google Cloud等雲服務提供商的服務,便可以非常輕鬆地啟動一個Spark群集。如果他們有一個深度學習問題,也會有很多的選擇。不但可以選擇已經提到的雲服務提供商,也可以選擇如FloydHub那樣提供的平臺級服務(PaaS),在雲上訓練和部署深度學習模型。
3.最小可行(資料)產品
最後,我想談論的一點是資料產品本身。本質上,資料產品有很多例子,比如聊天機器人、垃圾郵件檢測器等等——這個清單很長(更多的機器學習產品,請檢視Neal Lathia的精彩文章)。但是在這裡,鑑於當前我在電子商務領域工作,我將專注於推薦服務。
採用簡單的相似性演算法以及使用矩陣分解技術是一種建立推薦服務的方法。 最後,我們還可以嘗試使用深度學習方法等更加複雜的模型(例如,深層次的語義模型)。但是,我不建議採用這種方式。推薦是多種形式的。例如,你的朋友給出的建議是推薦,或者前100名最喜歡的產品也是推薦。並非我們所使用的每個複雜演算法都會成功,但它必須經過測試。事實上,不要害怕在沒有機器學習的情況下建立推薦服務。
因此,正確的方法是像熱門產品那樣首先建立A/B測試框架和評估指標(例如,跳出率或點選率),再採用簡單的方法開始。在測試之後,確定使用者傾向於點選這些推薦的專案(有時他們必須先養成習慣,特別是如果它是新產品功能的話),終端使用者也可能會購買那些推薦的專案,我們可以嘗試使用諸如協作過濾技術更為複雜的方法。舉個例子,我們可以基於購買過此商品的使用者會對這類商品感興趣,或者檢視此商品的使用者也對這類商品感興趣來建立一個推薦。“使用者對這個專案……也對這些專案感興趣”這類選項可以是無窮盡的。
總結
在這篇文章中,我講述了關於MVP對機器學習產品的意義的理解。實質上,就是從小處開始不斷迭代。此外,為了更清楚地解釋我對機器學習產品的MVP代表的意思,我討論了三個主要維度,我認為這對於優秀的MVP資料產品至關重要:
最小可行性模型,
最小可行性平臺,
最小可行(資料)產品。
相關文章
- 機器學習為什麼難以產品化? - kdnuggests機器學習
- 機器學習 # 為什麼機器學習要求資料是獨立同分布的?機器學習
- 什麼是ping如何使用它
- 機器學習可解釋性系列 - 是什麼&為什麼&怎麼做機器學習
- 什麼是機器學習治理?機器學習
- 做資料分析需要學習機器學習嗎?機器學習
- 漫畫:什麼是機器學習機器學習
- 機器學習到底是什麼?機器學習
- 什麼是機器學習MLOps? - kdnuggets機器學習
- 什麼是 AI、機器學習與深度學習?AI機器學習深度學習
- 什麼是AI、機器學習與深度學習?AI機器學習深度學習
- 用產品的心態寫程式碼:什麼樣的機器學習產品是最符合使用者需求的機器學習
- 什麼是行為資料?企業為什麼要使用它?
- 拼多多標品是什麼?如何做?
- OceanBase學習之路49|最小資源引數配置是什麼?
- 漫畫版:什麼是機器學習?機器學習
- 資料科學、機器學習、人工智慧的區別到底是什麼?資料科學機器學習人工智慧
- 【機器學習】什麼樣的機器學習產品是最符合使用者需求的;機器學習模型的衡量不止準確率:還有精度和召回率機器學習模型
- 什麼是大資料?大資料開發是做什麼的?大資料
- 什麼是資料運營?資料運營是做什麼的?
- 有什麼資料分析相關的事務是常規 BI 產品做不了的
- 機器學習能在遊戲開發中做什麼?機器學習遊戲開發
- 什麼是大資料?零基礎如何學習大資料?(附學習路線)大資料
- 什麼是IT資產?如何保障IT資產安全?
- 大資料、人工智慧、機器學習與深度學習都是什麼?有什麼關係?大資料人工智慧機器學習深度學習
- 資料產品規劃到底該怎麼做?
- 【譯】什麼是JavaScript generator 以及如何使用它們JavaScript
- 什麼是linux虛擬機器?如何安裝?Linux學習入門!Linux虛擬機
- TypeScript是什麼,為什麼要使用它?TypeScript
- 什麼是HSTS,為什麼要使用它?
- Java到底是什麼?學習java可以做什麼呢?Java
- 如何進入大資料領域,學習路線是什麼?大資料
- 大資料開發需要學習什麼?大資料平臺是什麼?大資料
- python學習之什麼是組合資料?Python
- 機器學習--要學點什麼機器學習
- 在Linux中,什麼是管道操作,以及如何使用它?Linux
- 在Linux中,什麼是SSH,並且如何使用它?Linux
- 機器學習最好的入門課程是什麼?機器學習