建築釺


釺如何克服了數據泄漏,建立預測生產

馬特Willet-Jeffries 通過馬特Willet-Jeffries2020年12月21日

今年早些時候,釺宣布啟動預測生產在我們的新,第一個特性預測套件。這個集合預測分析工具的目的是使品牌更容易理解和對他們的觀眾主動識別趨勢和見解,支持智能客戶參與和幫助企業與用戶建立更強的關係。

表麵上,預測生產是一個簡單的特性。成功地為它工作,這個工具必須訓練模型來識別個人客戶可能不滿意,然後可以將該模型應用到一個更大的人口的用戶。manbetx万博全站客户端這允許品牌識別用戶在他們的觀眾特別可能失效,使他們達到這些用戶提供有針對性的活動,從而增加保留。在幕後,然而,有一個隱藏的財富的複雜性,最終形成的基本模式和預測生產是建立在基礎設施。

讓我們看看這裏的過程,使我們和我們所麵臨的挑戰之一有效地預測生產函數:數據泄漏。

設置階段:理解構建預測生產的挑戰

當我們第一次開始著手預測生產的發展,我們的主要目標是確定建築這一特性甚至可能是,以確保我們可以將用戶數據,喂成一個模型,準確的識別出用戶最可能停止與一個給定的品牌。在一個典型的工程,然而,這種早期的目標最終讓位給更深入、更持久的擔憂。

從很小的時候起,我們知道客戶流失預測和其他形式的行為為我們的許多客戶預測是可能的,但當我們挖更深的很明顯,與此相關的難題潛在特性建模本身不相關。manbetx万博全站客户端相反,中央與預測生產模型問題的implementations-occurred在十字路口之間的軟件工程和科學數據。

為預測生產為客戶提供真正的價值,需要真正的兩件事。manbetx万博全站客户端首先,我們的預測模型可以由每個客戶使用特征匹配他們的品牌生產的定義。其次,這些模型可以訓練後立即定義完成。但是我們發現這些需求的意外的副作用限製了數據,我們可以使用訓練我們的預測模型。

我們用來訓練我們的數據模型必須快速訪問和能夠靈活地過濾以滿足觀眾專門設計的定義,迫使我們依賴有狀態用戶數據和阻止我們提前選擇軍團。結果呢?為了生產我們需要的特性集和標簽,我們不得不選擇用戶根據已知的曆史,然後恢複他們的狀態與曆史、內部過程我們稱為“回頭看”。

回頭看是通過存儲用戶使用這些曆史事件的曆史,然後操縱狀態字段建立準確的曆史用戶的狀態。這個過程允許我們重用現有過濾選擇目標用戶群和培訓支持能力迅速把曆史上準確的觀眾。然後,我們能夠迅速構建特性和標簽我們需要訓練。但是這種方法並非沒有成本。一個大問題嗎?打開門的預測模型,最普遍的問題之一是,數據泄漏。

數據泄漏:它是什麼和為什麼它很重要

監督預測模型依賴於一組曆史輸入和結果為了學習如何預測未來的結果;如果曆史輸入成為偏見或被相關的已知結果,改變底層的性能預測模型在實踐中可以大大受損。這種現象被稱為數據泄漏,可以發生在任何情況下預測模型時無意中得到信息在培訓期間不會獲得預測時間。

認為它是“作弊”的模型試驗在知道答案,然後讓中期沒有任何信息。漏有效地讓模型在訓練時間作弊,但是因為信息的處理沒有時,實際預測的東西,它往往導致模型偏離劇本表演在訓練,然後在預測時表現不佳。

這種動態破壞預測模型的有效性以及用戶的信任模型,可能導致更少的使用或降低采用整體模型。,如果你要花時間和精力才能建立這樣的模型,是一種最壞的情況。

釺如何使用快速驗證地址數據泄漏

預測生產,我們回顧意味著用戶對象的使用杠杆來構建我們的特性集和選擇培訓可能包含信息可用,最終不會模型在預測時間。當我們最終能通過嚴格的測試培訓免受大多數數據泄漏,很明顯,我們需要一個協議來防止代碼和模型更改引入數據泄漏到模型,預測生產。

創建預測生產過程中,我們發現數據泄漏可以來自任何階段的訓練過程,可以以複雜和令人驚訝的方式。此外,這種泄漏通常被證明是無法覺察的單元測試和簡單的集成,所以我們決定檢查更積極的方法來檢測和處理它。

有許多潛在的方法來識別數據泄漏,但最直接的涉及的使用驗證,測試過程中反對他們的預測結果作為post-prediction分析的一部分。就像你測試一個監督和成績預測模型映射到結果在培訓時,您可以驗證模型在預測時的性能通過收集分數,等待的時間窗口預測,然後映射收集到的分數決定的結果。因為驗證的功能用於生成分數不可能包含數據泄漏,就可以使用性能在測試和驗證差異來檢測泄漏。

用這種方法,我們引入了一個驗證階段為預測生產我們的建模過程。在這個階段,我們有一個工作管道收集的分數隨機選擇樣本預測預測觀眾的時間,然後安排後續工作來確定該隊列的最後結果。我們隨後測量的成功預測和比較模型所描述的性能期望培訓在測試階段。這將確保性能顯著變化可以用作問題警報數據泄漏。

通過利用這種積極主動的方法,我們得到了一個通用的心跳度量的健康模型和測試一種絕緣方式變化的一種手段。然而,它不滿足所有的需求。因為驗證必須等待一個預測的時間窗口通過最後的結果能夠準確地確定之前,它可以相當緩慢,限製代碼和模型改進的節奏可以介紹。大多數預測模型在釺是建立在為期兩周的時間進行預測,所以單獨依靠現場驗證測試變化有可能推遲開發由多個星期。

為了解決這個並發症,我們決定收集曆史快照的用戶群體,讓我們快速運行驗證。重用我們的訓練和預測管道,我們把匿名用戶數據為典型的模型定義在訓練和驗證時間,然後這些數據存儲在Amazon S3上緊湊序列化文件。通過從這些文件,我們可以培養一種新的模式和驗證其預測僅僅是分鍾。所以通過觸發這個過程作為我們持續集成的一部分(CI) /持續交付(CD)協議,我們有效地引入了可運行驗證,消除了痛苦的等待真實的結果在采取任何行動之前。雖然這種方法是相對較新,還在積極開發在釺,這被證明是能夠產生快速、準確的結果。

最終的想法

這些層的自動化,數據泄漏已經謝天謝地縮小預測生產的問題。同時仍然主要關注在模型開發階段,我們有效地開發安全rails,大大減少泄漏的風險,讓我們密切關注我們的預測模型的完整性。

更多地了解預測生產和什麼是可能的客戶接觸,看看我們這裏的綜述文章

在銅焊工作感興趣?看看我們目前的職位空缺!


馬特Willet-Jeffries

馬特Willet-Jeffries

馬修Willett-Jeffries在釺AIML團隊的工程經理。不工作時,你會發現他在棋盤上享受一個自命不凡的小杯咖啡。

相關內容

擴展企業SaaS產品團隊

閱讀更多

故事從黑客一天:釺高級網站可靠性工程師布萊恩·伯恩斯坦和馬特DiSipio去“脫軌”

閱讀更多

釺利用Ruby在規模如何

閱讀更多

故事從黑客一天:釺產品工程經理德裏克·舒爾茨解決運動複製的挑戰

閱讀更多