顽疾

Airbnb的数据团队很重要的一个职责就是传播基于数据的决策方法。我们将数据的获取民主化,使得每一个Airbnb的成员都可以量化他们基于数据的决策影响力并且借此洞察用户偏好,提升数据产品的用户体验。最近,我们开始解决一个令人头疼的问题。随着组织的扩大,如何确保我们的一个洞见有效地在社交网络传播开,这在我们内部称之为知识扩张。

当我们团队仅由几个乐于分享和发现研究技巧的人组成这不是什么难题。但是当我们团队开始快速扩张时,这个问题一下就被放大了。Jennifer是一位新来的数据科学家,她正在研究如何通过房东拒租的话题和同事开展工作。
这里是我们所看到的:

  1. Jennifer 找到了一堆的PPT、Email、Google Docs 并且询问团队其他成员有关这个项目的历史。

  2. 前人的代码已经不是最新的了,但 Jennifer 还是从 GitHub 或者原来作者的机器上弄下来代码。

  3. 在和代码一顿混战之后, Jennifer 意识到之前的项目有些许问题,她决定从头开始撸代码。

  4. 在浪费大量重复工作之后,Jennifer 又放弃了重头开始的想法,她感到精疲力尽。

  5. Jennifer 留下了一堆的 PPT、Email、Google Doc, 循环往复。

基于其他公司的对话,我们发现这个现象实在太普遍了。随着组织的扩张,跨团队跨时期的知识传输成本不断增长,一个低效、乌合的研究环境使得这种情况雪上加霜,放慢了分析和决策的速度。因此,一个更加一气呵成的解决方案可以加快决策落地的速度并且保持公司在知识洪流中立于不败之地。

药方

随着我们看到这个问题工作流的不断发生,我们意识到我们可以做得更好。作为一个团队,我们在一起决定了做研究的五个关键原则:

  • 可重复性 - 代码不应该分离,整个查询、转化、可视化、文档撰写应该一气呵成,并且保证结果是尽量更新的。

  • 质量 - 没有经过正确性和准确性审查的研究都不应该被共享。

  • 用户体验 - 研究结果应该是让读者容易理解的,我们也应该将美感和品牌延伸考虑在内。

  • 可得性 - 任何人都可以发现、浏览并且保持在相关工作话题上的更新。

  • 学习价值 -  与可重复性,其他研究者应该能够通过工具和技术从其他人的工作中增益自己的能力。

根据这些原则,我们单独调查了现有的工具来解决这个问题。我们注意到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

推荐阅读

  • 数据流编程教程:如何使用Airflow构建数据科学工作流

  • Python 开发者如何正确使用 RStudio 编辑器

  • 文档定义应用:数据科学的文档革命

作为分享主义者(sharism),本人所有互联网发布的图文均遵从CC版权,转载请保留作者信息并注明作者 Harry Zhu 的 FinanceR专栏:https://segmentfault.com/blog...,如果涉及源代码请注明GitHub地址:https://github.com/harryprince。微信号: harryzhustudio
商业使用请联系作者。

[译] 解密 Airbnb 的数据科学部门如何构建知识仓库相关推荐

  1. [译]解密Airbnb的数据科学部门如何使用R语言

    概述 我之所以在aribnb希望成为一名数据科学家是因为这里可以有一个非常多元化的团队来一起解决重要的现实问题.我们不仅仅在性别上多样化,而且在教育背景和工作经历也是霄壤之别.我们的团队包括数理统计的 ...

  2. 最新7篇数据科学/深度学习/CNN/知识图谱/文本匹配等中英文综述论文推介(附下载)

    1 ▌深度文本匹配综述 作者:庞亮  兰艳艳  徐君  郭嘉丰  万圣贤  程学旗 摘要:自然语言理解的许多任务,例如信息检索.自动问答.机器翻译.对话系统.复述问题等等,都可以抽象成文本匹配问题.过 ...

  3. [原]解密Airbnb 自助BI神器:Superset 颠覆 Tableau

    概述 我非常认同前百度数据工程师.现神策分析创始人桑老师最近谈到的数据分析三重境界: 统计计数 多维分析 机器学习 数据分析的统计计数和多维分析,我们通常称之为数据探索式分析,这个步骤旨在了解数据的特 ...

  4. 【译Py】数据科学面试终极指南(二)

    欢迎来我的简书:呆鸟的译Py胡言 聘用数据科学家的行业   各行业对数据科学的要求不一样.每个行业都有专业知识,数据类型也因此不同,比如学校与银行关注的指标就不一样.   假如求职者恰巧对要面试的行业 ...

  5. Airbnb数据科学团队进化论:如何由内而外实现数据驱动

    虽然团队组织结构的演化允许数据科学家团队繁荣兴旺,但是公司的成功源于"精准定位"于两件事:发自肺腑地关爱员工,积极主动的数据驱动决策.不论是开发可持续利用的开源工具还是奋力改进数据 ...

  6. 【译Py】数据科学面试终极指南04

    [译Py]数据科学面试终极指南 [译Py]数据科学面试终极指南01 [译Py]数据科学面试终极指南02 [译Py]数据科学面试终极指南03 [译Py]数据科学面试终极指南04 [译Py]数据科学面试终 ...

  7. 【译Py】数据科学面试终极指南(四)

    欢迎来我的简书:呆鸟的译Py胡言 数据科学面试题 行为试题   与其它岗位的面试类似,数据科学面试也包括大量行为试题,面试官会考核求职者的软技能,了解求职者能否适应公司的企业文化. 请说明你以前做过的 ...

  8. 向《数据科学实战》作者Cathy O'Neil提问!

    Cathy O'Neil是约翰逊实验室高级数据科学家.哈佛大学数学博士.麻省理工学院数学系博士后.巴纳德学院教授,曾发表过大量算术代数几何方面的论文.他曾在著名的全球投资管理公司D.E. Shaw担任 ...

  9. 打通数据价值链,百分点数据科学基础平台实现数据到决策的价值转换 | 爱分析调研

    随着企业数据规模的大幅增长,如何利用数据.充分挖掘数据价值,服务于企业经营管理成为当下企业数字化转型的关键. 如何挖掘数据价值?企业需要一步步完成数据价值链条的多个环节,如数据集成.数据治理.数据建模 ...

最新文章

  1. Elasticsearch之CURL命令的PUT和POST对比
  2. URL编码以及GET和POST提交乱码解决方案
  3. 值传递 引用传递(传地址,传引用)的区别
  4. 环保公益PSD分层海报,小景合成美好世界
  5. Android源码之路(二、AsyncTask)
  6. 基于visual Studio2013解决面试题之1201链表去重
  7. hql语句关联查询(select new )
  8. VS2017创建项目模板和项模板(方便实用)
  9. poi excel 隐藏行
  10. MACD顶背离和底背离是什么(图解)
  11. 计算机课拔线头检讨书,乱接电线检讨书
  12. VMware虚拟机更改静态IP报错Unit network.service entered failed state解决方案
  13. web编程开发_Web编程简介(Web设计和Web开发)
  14. 猫咖小程序开发有何优势?具备什么功能版块?
  15. 《第一堂棒球课》:王牌二垒手·棒球4号位
  16. 团队管理29--沟通理解层次图
  17. X86实模式与保护模式简介
  18. 靠期货真的能实现财务自由么?
  19. 编译相关(非原创 读书笔记)
  20. 看完 Python3.10 的新特性,我决定仍不更新

热门文章

  1. postgresql创建表
  2. distinct 多列问题 group by 解决
  3. Wireshark数据包分析之DHCP协议包解读
  4. cell 滑动实现旋转动画效果
  5. 多线程之:并发编程面临的挑战
  6. 谈谈HTML5中的history.pushSate方法,弥补ajax导致浏览器前进后退无效的问题
  7. oracle 无备份恢复数据文件
  8. C++ STL之map常用指令
  9. BZOJ 2037 Sue的小球
  10. 新版直播其他问题QA