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商业使用请联系做者。