1. 程式人生 > >設計出色的資料產品

設計出色的資料產品

翻譯 :孫文學

歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 


在過去幾年中,許多基於預測模型的資料產品孕育而生。這些產品既包括天氣預報,同時還有提供預測航班時刻的推薦引擎,該引擎預測的準確率比航空公司自身的預測率還要高。但這些產品仍然只是做出預測,並沒有考慮到預測的結果能為人們帶來什麼。預測技術可以是非常有趣的同時也有非常美的數學造詣,但我們仍需要採取進一步地研究它們。該技術旨在構建可以徹底改變整個行業的資料產品。既然這樣,我們為什麼不去設計研究它?

為了開啟這一過程,我們推薦使用一種在保險行業中成功運用的四步法。我們將其稱為動力傳動系統方法,其靈感來自新興的自動駕駛領域。 工程師首先要確定一個明確的目標:他們希望汽車在沒有人為干預的情況下能夠從A點安全駕駛到B點。有效的預測模型是解決這個問題的重要因素,但它並不孤立存在; 隨著產品變得越來越複雜,它的作用也在逐漸減弱。使用谷歌自動駕駛汽車的人完全沒有意識到正是數百種(如果不是數千種的話)模型和數PB的資料使其運轉起來。但隨著資料科學家構建越來越複雜的產品,系統化的設計方法越來越被科學家們所需要。我們並未聲稱動力傳動系統方法是最佳或唯一的方法;我們的目標是搭建資料科學和商業領域的橋樑從而實現我們的願景。


基於目標的資料產品

我們正在進入資料作為驅動動力的時代,我們不但使用資料來生成更多資料(以預測的形式),而且使用資料來達到我們想要的結果。這是動力傳動系統方法的目標。我們可以通過一個非常熟悉的資料產品-搜尋引擎來說明一下這個過程。早在1997年,AltaVista就是演算法搜尋領域的佼佼者。雖然他們的模型擅長查詢相關網站,但使用者最感興趣的答案通常隱藏在搜尋結果的第100頁。隨後,谷歌的出現改變了線上搜尋,谷歌的誕生是伴隨著一個簡單的問題:使用者輸入搜尋查詢的主要目的是什麼?

20181219101235da458848-a79e-4cac-86dc-169de516871e.png


谷歌意識到人們搜尋的目的是展示最相關的搜尋結果;對於其他公司而言,他們的目的可能是增加利潤,改善客戶體驗,找到最佳路徑,或平衡資料中心的負載。一旦我們確定了目標,第二步就是確定什麼是我們可以控制的系統輸入,什麼是我們可以用來影響最終的結果。以谷歌為例,他們可以控制搜尋結果的排名。第三步是考慮什麼樣的新資料可以產生這種排名;他們意識到頁面之間的連結所隱含的資訊可用於此目的。只有在前三個步驟之後,我們才開始考慮構建預測模型。我們的目標和可調因素,我們已經擁有的資料以及我們需要收集的其他資料,這些決定了我們可以構建的模型。模型將可調因素和任何不可控制的變數作為輸入;模型的輸出可以組合起來預測我們目標的最終狀態。

對谷歌而言,動力傳動系統方法的第4步是科技歷史的一部分:Larry Page和Sergey Brin發明了圖遍歷演算法PageRank,並在其上搭建了一個搜尋引擎,該引擎給搜尋帶來了革命性的改變。但是您不必發明下一個PageRank演算法來構建偉大的資料產品。我們將展示第4步的系統方法,該方法並不需要您擁有電腦科學博士學位。


模型的裝配:最優決策組的一個實際案例

優化正確預測模型的可操作結果對公司而言是最重要的戰略決策。對於一家保險公司來說,政策價格就是產品,因此最優的定價模式是如何自動化的將這些產品裝配起來。保險公司擁有數百年的預測經驗,但就在最近十年間,保險公司就經常就每個新客戶應該收取的價格方面不能做出最佳商業決策。他們的精算師可以建立模型來預測客戶發生事故的可能性以及索賠的預期價值。但這些模型並沒有解決定價問題,因此保險公司結合猜測和市場研究來設定價格。

這種狀態的改變是由1999年一家名為最優決策組(ODG)的公司造成的。 ODG利用早期的動力傳動系統方法和能夠應用於一系列問題的第4步操作來解決這個問題。他們首先確定了保險公司試圖實現的目標:從長遠來看,設定一個能夠最大化新客戶的利潤淨現值的價格,但要受到某些限制,例如維持市場份額。從那時開始,他們制定了一個優化的定價流程,這為保險公司帶來了數億美元的利潤。[注:共同作者Jeremy Howard創立了ODG]

ODG明確了保險公司可以控制哪些變數:每個客戶收取什麼價格,要涵蓋哪些型別的事故,要在營銷和客戶服務上投入多少錢,以及如何應對競爭對手的定價決策。他們還考慮了除上述控制因素之外的其他因素,如競爭對手的戰略,巨集觀經濟條件,自然災害和客戶的特性。他們考慮到需要什麼樣的額外資料來預測客戶對價格變化的反應。他們認為在數月內隨機更改數十萬條條例的價格來構建此資料集是非常必要的。雖然保險公司不願意對真實客戶進行這些實驗,因為他們肯定會失去一些客戶,但他們考慮到優化定價可能帶來的巨大收益,他們還是接受了。最後,ODG開始設計可用於優化保險公司利潤的模型。

2018121910125881cafdb0-6e92-4c69-a187-047a15eb6f6c.png


ODG模型的第一部分是可用於新政策和續約的彈性模型(客戶接受給定價格的概率)。價格彈性模型是一條曲線,它是一條價格與客戶接受該價格規定的概率曲線。這條曲線從極低的價格幾乎肯定接受到幾乎不可能接受高價。

ODG模型的第二部分與保險公司的利潤相關,條件是客戶接受此價格。非常低價格的利潤被標紅,由第一年的預期索賠價值加上獲得和服務新客戶的任何開銷。將這兩條曲線相乘可以建立一條最終曲線,顯示價格與預期利潤(參見下面的預期利潤圖)的關係。最終曲線具有明確可識別的區域性最大值,表示第一年向客戶收取的最佳價格。

ODG還建立了客戶保留模型。這些模型預測客戶是否會在一年內更新其條例,是否允許價格變化,是否會跳轉到競爭對手。這些額外的模型允許將年度模型結合起來,以預測未來五年內新客戶的利潤。



這套新模型不是最終答案,因為它只能對給定的輸入集給出結果。模型中另一個要素是模擬器,它讓ODG詢問“假設性”問題,以瞭解可調因素如何影響最終結果的分佈。預期的利潤曲線只是可能結果的一部分。為了得到準確的結果,模擬器在各種輸入上執行模型。操作員可以調整輸入以回答具體問題,例如“如果我們公司在第一年為客戶提供低預告價格,然後在第二年提高保費,將會發生什麼?”。他們還可以研究利潤分配如何受到保險公司控制之外因素的影響:“如果經濟崩潰了同時客戶失業了怎麼辦?如果一個百年不遇的洪水淹了他的家怎麼辦?如果一個新的競爭對手進入市場並且我們公司沒有及時做出反應,那麼對我們能夠接受的底線會產生什麼影響?”。模型可以適用任何情況,保險公司可以檢視隨著時間的推移給定價格的變化、市場份額的變化以及其他指標的改變所帶來的影響。

模擬器的結果被送到優化器,這其中包含了可能獲得的最高點。優化器不僅可以得到最佳結果,還可以識別最差結果並展示如何避免得到最差結果。有許多不同的優化技術可供選擇(參見下面的側欄),它是一個易於理解的領域,具有強大且易於使用的解決方案。 ODG的競爭對手使用不同的技術來找到最優價格,但他們也是生產完全相同的資料產品。重要的是,將動力傳動系統方法與模型相結合,彌補了預測模型與可操作結果之間的差距。 CloudPhysics的Irfan Ahmed提供了一個很好的預測分類模型,描述了整個過程:

“當處理數百或數千個單獨的元件模型以瞭解整個系統的行為時,必須進行'搜尋'。我將它想象成一個複雜的機器(全系統),你可以在受控實驗下模擬機器的每個重要部分,然後模擬相互作用。這裡注意不同的級別:單個元件的模型,在給定一組輸入的模擬中繫結在一起,在搜尋優化器中通過不同的輸入集進行迭代。


動力傳動系統推薦系統


下面我們看一下如何將這個過程應用到營銷行業。我們首先將Drivetrain方法應用於熟悉的示例,推薦引擎,然後將其構建為一個完整的優化營銷策略。

推薦引擎是我們熟悉的基於精心構建的但不能實現最佳目標的預測模型資料產品。當前的演算法根據購買歷史和類似客戶的歷史來預測客戶會喜歡哪些產品。以亞馬遜為例,每一次購買可以看作為一個巨型稀疏矩陣,其中客戶作為行,產品作為列。一旦他們擁有這種格式的資料,資料科學家就會採用某種形式的協同過濾來“填充矩陣”。例如,如果客戶A購買產品1和10,而客戶B購買產品1,2,4和10,引擎會推薦A買2和4。這些型號擅長預測客戶是否會喜歡某個特定產品,但他們經常推薦客戶已經知道或已經決定不購買的產品。亞馬遜的推薦引擎可能是最好的推薦引擎,但是它的弊端也很容易顯現。下面是一張“購買此物品的客戶也購買了哪些產品”的截圖,這些客戶搜尋了Terry Pratchett的“Discworld系列”。

201812191013489a70a2b1-9ef3-4a84-ab7a-7074e8e81638.png


所有的建議都是針對同一系列中的其他書籍,但是一個很好的假設,搜尋“Terry Pratchett”的客戶已經知道這些書。在Feed的第2頁到第14頁可能會有一些意想不到的建議,但有多少使用者會去看呢?

相反,讓我們使用驅動系統方法來設計一個改進的推薦引擎,首先要重新考慮我們的目標。推薦引擎的目標是通過給客戶帶來驚喜讓他們去購買在沒有推薦的情況下不會購買的書籍。我們真正想做的是模仿Zite執行長Mark Johnson的經歷,他在最近的TOC演講中給出了一個客戶推薦體驗應該是什麼樣子的完美例子。他去過一個位於紐約市的斯特蘭德書店,要了一本類似於託尼莫里森的書,書名為“親愛的”。書櫃後面的那個女孩推薦他威廉福克納的“Absolom Absolom”。在亞馬遜上,類似查詢的最高結果為託妮莫里森的另一本書和幾本著名女作家的著作。斯特蘭德書商做出了一個聰明但卻牽強附會的建議,該建議可能更多地基於莫里森的寫作特徵,而不是莫里森和其他作者之間的表面相似之處。她建議客戶帶回一本新書,並在下一次光顧斯特蘭德書店時將書帶回來。

這並不是說亞馬遜的推薦引擎無法達到相同的效果;這個問題在於這個有用的建議將深埋在推薦資訊中。我們的目標是摒棄推薦不好的東西,這個術語最初由Eli Pariser提出,被用來描述個性化新聞推送的趨勢,用來展示廣受歡迎的文章或進一步確認讀者現有的偏見。

與AltaVista-Google示例一樣,書商可以控制的變數是推薦的排名。此外他們還必須收集新資料以生成促進新銷售的建議。這將需要進行許多隨機實驗,以便為廣泛的客戶收集各種相關建議的資料。

動力傳動系統過程的最後一步是構建模型裝配線。避開推薦泡沫的一種方法是構建一個包含兩個購買概率模型的模型器。這兩個概率之間的差異是針對客戶的給定建議的效用函式(參見下面的推薦引擎圖)。演算法推薦客戶最近拒絕的書籍(兩個元件都很小)或者即使沒有推薦也會購買的書籍(兩個元件都很大並相互抵消)的概率會很低。我們可以構建一個模擬器來測試我們庫存中的每一本書的效用,或者可能只是測試類似客戶購買的協作過濾模型的所有輸出,然後構建一個簡單的優化器來排序並顯示推薦的基於模擬效用的書籍。一般來說,在選擇目標函式進行優化時,我們較少強調“功能”,而更多地強調“目標”。使用我們資料產品的人他們的目標是什麼?我們實際上幫助他或她做出了什麼選擇?


優化終身客戶價值

這種相同的系統方法可用於優化整個營銷策略。這包括零售商在實際買賣交易之外與其客戶進行的所有互動,無論是進行產品推薦,鼓勵客戶檢視線上商店的新功能,還是傳送促銷活動。做出了錯誤的選擇,其代價就是零售商要降低利潤(無法帶來額外銷售),房地產商在其主頁上利用一定的篇幅給那些如果不推薦使用者就不會購買或者失去客源(傳送這麼多無用的電子郵件促銷資訊,客戶將以後所有的通訊郵件統統過濾為垃圾郵件)。我們將展示如何構建優化的營銷策略,以減輕這些不良策略造成的影響。

正如與前面的每個例子一樣,我們首先要問:“營銷策略試圖達到什麼目標?”。簡單來說:我們希望優化每個客戶的生命週期價值。 第二個問題:“我們有什麼可調因素來實現這一目標?”。有一些,如下面所示:

1.我們可以給出可以造成驚喜和喜悅的產品推薦(使用上一節中提到的優化建議)。

2.我們可以為客戶提供量身定製的折扣或特別優惠,這些產品並非隨時可供購買或在其他地方可以買到。

3.我們甚至可以打電話給客戶以瞭解使用者使用我們的網站的感受並讓他們感受到他們的反饋是有價值的。

我們需要收集哪些新資料?這可能因具體情況而定,但一些線上零售商正採取創造性的方法來完成這一步驟。線上時裝零售商Zafu給我們展示了它是如何鼓勵客戶參與到此過程的。很多網站都出售設計師的作品,但對於很多女性來說,高階牛仔褲是他們不會在線上購買的一件商品,因為如果不試穿的話,很難找到合適的牛仔褲。Zafu的方法不是直接將衣服展示給顧客,而是先詢問一系列關於顧客體型、其他牛仔褲的合身程度以及時尚偏好的簡單問題。只有這樣,客戶才能繼續瀏覽Zafu網站。資料收集和建議步驟不是附加元件;他們是Zafu的整個商業模式 - 女式牛仔褲現在是一種資料產品。 Zafu可以根據他們的系統收集到的資料來不斷改良他們的牛仔褲設計。

20181219101411a5fb39f2-d18b-4e54-9905-6d7e4c292cc5.png


以目標作為出發點,這催促資料科學家思考什麼樣的模型是他們需要的。我們可以保留已經建立的“喜歡”模型以及有或沒有建議的購買因果關係模型,然後採用分階段方法新增我們認為可以提高營銷效果的其他模型。我們可以添加價格彈性模型來測試提供折扣是如何改變客戶購買商品的概率的。我們可以構建一個耐心模型測試使用者對於低效溝通的忍耐力:他們什麼時候會將我們的訊息直接過濾到垃圾郵件?(“如果Hulu再一次向我展示同樣的狗糧,我將不會再訪問這個網站!”)。一個購買序列因果關係模型可用於識別關鍵的“入門產品”。例如,一條經常穿的牛仔褲與特定的帽子配對,或者是小說的第一部分通常會引領讀者看完這部小說。

一旦我們擁有這些模型,我們就構建了一個模擬器和一個優化器,並在組合模型上執行它們,以找出哪些建議將實現我們的目標:推動銷售並改善客戶體驗。

2018121910142428987ee5-2ae8-4f79-bd1c-18cc170c05ae.png



實際資料產品的最佳實踐

很容易陷入這樣的怪圈,即由於資料是抽象的,以電子表格的形式或存在於雲中,因此資料產品只是抽象的演算法。因此,我們最後向您展示基於客觀的資料產品如何已經成為有形世界的一部分。這些例子最重要的一點是設計這些資料產品的工程師並不是從建立一個neato機器人開始,然後再尋找與之相關的東西。他們以一個目標開始,例如“我希望我的車能將我帶到某個地方”,然後他們設計了一個數據產品來完成這項任務。工程師通常處於演算法應用的前沿,因為他們長期以目標為導向來思考他們自己的模型。工業工程師是最先開始使用神經網路的一批人,他們將其應用於裝配線和質量控制等最佳設計問題。布萊恩·裡普利(Brian Ripley)關於模式識別的一本書為許多想法和技術提供了驗證,這些20世紀70年代的想法和技術的之前已經被許多人遺忘。

在設計產品或模擬過程時,類似動力傳動系統的過程以及模型整合,模擬和優化是系統工程師常用的幾種技術。在工程中,通常需要將許多元件模型組合在一起,以便可以串聯模擬和優化它們。這些公司在最終產品中構建每個元件和系統的模型方面擁有豐富的經驗,無論是建造伺服器叢集還是戰鬥機。可能有一個詳細的機械系統模型,一個是單獨的熱系統模型,另一個用於電氣系統等。所有這些系統彼此相互作用。例如,電氣系統中的電阻產生熱量,這需要作為熱擴散和冷卻模型的輸入。多餘的熱量可能導致機械部件彎曲,對於一些元件模型而言作為輸入。

下面的螢幕截圖取自Phoenix Integration設計的模型整合工具。雖然它來自完全不同的工程學科,但該圖與我們推薦用於資料產品的動力傳動系統方法非常相似。目標被明確的定義為建造飛機機翼。翼盒包括跨度,錐度比。資料是翼材料的物理特性;成本列在應用程式的另一個選項卡。有一個空氣動力學和機械結構的建模器,它可以輸入模擬器,以產生成本,重量,升力係數和誘導阻力等關鍵輸出。這些結果可以輸入優化器,以建立一個功能強大且具有成本效益的飛機機翼。

20181219101440178bd409-a2a4-41da-8802-2d364f4891e2.png


隨著預測建模和優化對於各種各樣的活動變得越來越重要,請留意工程師來破壞那些不會立即出現在資料業務中的行業。例如,“動力傳動系統方法”這一短語的靈感已經出現在街道的標語中。我們現在可以讓資料驅動我們,而不是被資料驅動。

假設我們想從舊金山到聖塔克拉拉去參加Strata2012會議。我們可以建立一個簡單的距離/速度限制模型來預測到達時間,只需要一個標尺和一個路線圖。如果我們想要一個更復雜的系統,我們可以建立另一個交通擁堵模型,另一個模型來預測天氣狀況及其對最安全的最大速度的影響。在構建這些模型時存在許多有趣的挑戰,但是它們本身並沒有將我們帶到目的地。現在,使用某種型別的啟發式搜尋演算法來預測沿著各種路線(模擬器)的駕駛時間,然後選擇最短的一個(優化程式),例如要滿足一些約束,如過橋費或最大化汽油里程。但為什麼不想的廣一點呢?不要再通過GPS的femme-bot語音告訴我們要走哪條路線以及在哪裡轉彎,取而代之的是思考建造一輛可以自行做出這些決定的汽車該需要些什麼?為什麼不將模擬和優化引擎與物理引擎捆綁在一起,所有的這些只需要放在汽車的黑匣子就可以?

讓我們考慮一下這是動力驅動系統方法的應用。我們已經確定了我們的目標:建造一輛自行駕駛的汽車。可調因素是我們熟悉的車輛控制裝置:方向盤,加速器,制動器等。接下來,我們考慮汽車需要收集哪些資料; 它需要感測器來收集有關道路的資料,以及可以檢測路標,紅燈或綠燈以及意外障礙物(包括行人)的攝像機。 我們需要定義我們需要的模型,例如用於預測轉向,制動和加速度影響的物理模型,以及用於解釋道路標誌資料的模式識別演算法。

正如谷歌自動駕駛汽車專案的一位工程師在最近的連線文章中所說的那樣,“我們正在每秒20次分析和預測世界。”報價中丟失的是由於這種預測而發生的事情。車輛需要使用模擬器來檢查可能採取的行動的結果。如果它現在左轉,它會撞到那個行人嗎?如果在這些天氣條件下以55英里/小時的速度右轉,它會在路上滑行嗎?僅僅預測會發生什麼並不夠好。自動駕駛汽車需要採取下一步措施:在模擬所有可能性之後,必須優化模擬結果,以選擇加速和制動,轉向和訊號的最佳組合,以便我們安全地前往聖克拉拉。預測只告訴我們可能會發生的事故。優化器則告訴我們如何避免事故。

改進資料收集和預測模型非常重要,但我們希望強調先定一個實現目標的重要性,即通過產生可操作結果的可調因素來定義明確的目標。資料科學甚至已經開始滲透到我們生活中最實際的元素中。隨著科學家和工程師越來越擅長將預測和優化應用於日常問題,他們正在將其擴充套件生活中的方方面面,從我們的個人健康到我們居住的房屋和城市的一切。開發模擬流體動力學模型已經通過使用出口和擁擠控制障礙作為可調因素來改善交通和行人流量。這提升了地鐵站的緊急疏散效率,減少了在體育賽事中人群踩踏和踐踏對人的生命安全的危險。Nest正在設計智慧恆溫器,可以瞭解房主的溫度偏好,然後優化他們的能耗。對於機動車交通,IBM與斯德哥爾摩市合作開展了一項專案來優化交通流量,減少了近四分之一的擁堵,並將城市的空氣質量提高25%。特別有趣的是,沒有必要建立一個精心設計的新資料收集系統。任何有紅綠燈的城市都已經擁有了所有必要的資訊;他們只是沒有辦法從中挖掘其價值。

在另一個基於目標的資料產品有能力改變生活的領域,矽谷的CMU擴充套件專案有一個積極的專案,用於構建資料產品,以幫助建立自然災害或人為災害後的及時響應系統。卡內基梅隆大學的Jeannie Stamberger向我們解釋了預測演算法在災難響應中的許多可能應用,從文字挖掘和推文的情緒分析到確定損害的程度,以及成群的自主機器人進行偵察和救援,物流優化工具,幫助多個司法管轄區協調其響應。這些災難應用程式是一個用來告知我們為什麼資料產品要簡單,為什麼介面要精心設計的特別好的例子。在緊急情況下,僅產生更多資料的資料產品幾乎沒有用處。資料科學家現在擁有預測工具來構建可增加共同利益的產品,但他們需要意識到,如果不能產生優化的可實現的結果,那麼僅僅構建模型是不夠的。


資料產品的未來

我們引入了動力傳動系統方法,為設計下一代優秀資料產品提供了框架,並描述了優化對於該框架的重要性。在未來,我們希望在商學院和統計部門中看到優化課程。我們希望資料科學家能夠提供旨在產生理想成果的產品。這仍然是資料科學的未來發展方向。我們不知道在將來會開發出什麼樣的設計方法,但是現在,資料科學界需要關注共享詞彙和產品設計過程,這些過程可以用來告知人們如何從中獲得價值。如果我們不這樣做,我們會發現我們的模型只是使用資料來創造更多資料,而不是使用資料來驅動行為,變革行業並改變生活。


免費領取驗證碼、內容安全、簡訊傳送、直播點播體驗包及雲伺服器等套餐

更多網易技術、產品、運營經驗分享請點選


相關文章:
【推薦】 資料庫路由中介軟體MyCat - 背景篇(2)
【推薦】 適用於Java的嵌入式指令碼語言
【推薦】 Apache 流框架 Flink,Spark Streaming,Storm對比分析(1)