Airbnb的數據團隊很重要的一個職責就是傳播基於數據的決策方法。咱們將數據的獲取民主化,使得每個Airbnb的成員均可以量化他們基於數據的決策影響力而且藉此洞察用戶偏好,提高數據產品的用戶體驗。最近,咱們開始解決一個使人頭疼的問題。隨着組織的擴大,如何確保咱們的一個洞見有效地在社交網絡傳播開,這在咱們內部稱之爲知識擴張。git
當咱們團隊僅由幾個樂於分享和發現研究技巧的人組成這不是什麼難題。可是當咱們團隊開始快速擴張時,這個問題一下就被放大了。Jennifer是一位新來的數據科學家,她正在研究如何經過房東拒租的話題和同事開展工做。
這裏是咱們所看到的:github
Jennifer 找到了一堆的PPT、Email、Google Docs 而且詢問團隊其餘成員有關這個項目的歷史。web
前人的代碼已經不是最新的了,但 Jennifer 仍是從 GitHub 或者原來做者的機器上弄下來代碼。編程
在和代碼一頓混戰以後, Jennifer 意識到以前的項目有些許問題,她決定從頭開始擼代碼。segmentfault
在浪費大量重複工做以後,Jennifer 又放棄了重頭開始的想法,她感到精疲力盡。微信
Jennifer 留下了一堆的 PPT、Email、Google Doc, 循環往復。markdown
基於其餘公司的對話,咱們發現這個現象實在太廣泛了。隨着組織的擴張,跨團隊跨時期的知識傳輸成本不斷增加,一個低效、烏合的研究環境使得這種狀況雪上加霜,放慢了分析和決策的速度。所以,一個更加一鼓作氣的解決方案能夠加快決策落地的速度而且保持公司在知識洪流中立於不敗之地。網絡
隨着咱們看到這個問題工做流的不斷髮生,咱們意識到咱們能夠作得更好。做爲一個團隊,咱們在一塊兒決定了作研究的五個關鍵原則:app
可重複性 - 代碼不該該分離,整個查詢、轉化、可視化、文檔撰寫應該一鼓作氣,而且保證結果是儘可能更新的。框架
質量 - 沒有通過正確性和準確性審查的研究都不該該被共享。
用戶體驗 - 研究結果應該是讓讀者容易理解的,咱們也應該將美感和品牌延伸考慮在內。
可得性 - 任何人均可以發現、瀏覽而且保持在相關工做話題上的更新。
學習價值 - 與可重複性,其餘研究者應該可以經過工具和技術從其餘人的工做中增益本身的能力。
根據這些原則,咱們單獨調查了現有的工具來解決這個問題。咱們注意到Rmarkdown和 iPython notebook 是一個可重複性研究的一個優秀解決方案。 GitHub 提供了一個審查框架,可是對於代碼以外的內容和文檔,好比圖片就沒有什麼好的解決方案。 可得性一般是基於文件夾的形式的,可是相似Quora這樣的其餘站點內在對標籤和話題又有特殊的審查機制。
綜上,咱們將這些想法集成到一個系統裏面。咱們的解決方案整合了貢獻和審查的工做,用一個工具來呈現和傳播知識。咱們內部稱之爲"知識倉庫"。
這裏的核心實際上是一個咱們提交工做成果的 Git 倉庫。咱們在 Jupyter 筆記、Rmarkdown 文件或者純 markdown都會發布在這裏,全部的文件(包括查詢文件和腳本)都會被提交。每一個文件都從一個很小的結構化元數據開始,包括做者、標籤以及TLDR,再用一個Pyhon腳本驗證內容並用Markdown格式轉化爲純文本。咱們使用 GitHub 從審查流程中拉取請求系統。最後,用一個 Flask的 web-app 來渲染Repo的內容做爲一個按時間、話題、內容排序的內部博客。
這些工具集的最頂層,咱們有一個流程 專一於確保全部研究是高質量和高可用的。和工程代碼不一樣,低質量的研究是不會產生指標降低或崩潰日誌的。相反,低質量的研究表現爲知識的環境嘈雜,而團隊只能信任他們本身建立的研究。
爲了不這種現象的發生,咱們將流程封裝在工具裏面,結合了工程上的代碼評審和學術上的同行評議方法,保證咱們的研究結果以一個startup的速度在推動。在代碼評審的環節,咱們檢查代碼的正確性、最佳實踐和工具。在同行評議上,咱們檢查方法論的改進、現有工做的關聯性以及準確的解釋性聲明。咱們一般不期望一個研究是面面俱到的,可是也不能草率迭代,這些對他們都是有正確的和透明的限制的。咱們可以駕馭內部的R和Python包並維護品牌調性、整合數據倉庫的函數庫、以及基於GitHub的R和Python筆記的文件處理流程。
圖一 - 一個兩篇文章的總結卡牌的知識流截圖
圖二 — 一篇房東贊成接待的缺口天數的研究文章示例
這些工做爲咱們的智囊團提供了強大的功能。
可重複性 — 這個工做從核心的ETL表查詢到轉化、可視化到整理文章都是在一個文件裏完成的。一般是 Jupyter 筆記, RMarkdown, 或 markdown 文件。
質量 — 經過學習GitHub來發表、審查以及版本控制直接推進了咱們整個工做流。
高可用 - markdown 將咱們的 web-app 隱藏在代碼以後而且咱們使用了內部一致的美學風格,對非技術讀者也更加友好。同行評審用評論也能提供反饋和交流並提升了項目的影響力。
可得性 - 元數據的結構很是有利於通篇瀏覽歷史研究。每一個文章都有一組tag,並有一個相似於知乎話題的多對一的內置話題機制。用戶能夠訂閱話題而且收到新消息提醒。文章能夠以書籤收藏、經過讀者瀏覽或者在博客流中訂閱。
學習價值 - 經過以前一系列的工做,如今數據科學家能夠分享本身的新方法論、代碼技術而且加快品牌化推廣,讓團隊以外的人能夠快速瞭解本身的領域。
這個知識倉庫囊括了海量的內容。大量的工做都是和某個非嘗試性問題的深挖,可是對實驗結果的檢驗沒有被咱們的實驗記者記錄也是很廣泛的。此外也有一些純粹關於如何擴展數據分析的文章,包括新方法論的撰寫、工具或包的示例、使用SQL和Spark的教程等等。咱們也在知識倉庫上公開數據博客文章,固然也包括這一篇。總的來講,這個原則就是:若是這個東西未來可能對一些人有用就能夠發。
知識倉庫仍然是個在建工程。小團隊正在持續知足新需求特性。咱們也在公司內部的其餘團隊推廣這種方法,好比一些不使用GitHub的量化研究。最後,咱們正在測試一個基於Markdown的內建審查編輯應用,這個應用另外一個可能的特性是主編對研究議題的管理,咱們也正在考慮現有文章的遷移問題。
原做者:Chetan Sharma 和 Jan Overgoor 翻譯:Harry Zhu
英文原文地址:Scaling Knowledge at Airbnb
做爲分享主義者(sharism),本人全部互聯網發佈的圖文均聽從CC版權,轉載請保留做者信息並註明做者 Harry Zhu 的 FinanceR專欄:https://segmentfault.com/blog...,若是涉及源代碼請註明GitHub地址:https://github.com/harryprince。微信號: harryzhustudio商業使用請聯繫做者。