数智资源网
首页 首页 大数据 大数据入门 查看内容

解密 Airbnb 的数据科学部门如何构建知识仓库

木马童年 2019-3-2 17:45 215 0

顽疾 Airbnb的数据团队很重要的 个职责就是传播基于数据的决策方法。我们将数据的获取民主化,使得每 个Airbnb的成员都可以量化他们基于数据的决策影响力并且借此洞察用户偏好,提升数据产品的用户体验。较近,我们 ...

顽疾

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

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

这里是我们所看到的:

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

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

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

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

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的内建审查编辑应用,这个应用另 个可能的特性是主编对研究议题的管理,我们也正在考虑现有文章的迁移问题。

数据产品 用户体验 数据科学家 解决方案 数据仓库 数据分析
0
为您推荐
大数据技术怎么学习,在学习大数据之前,需要具备什么基础?

大数据技术怎么学习,在学习大数据之前,需要具备什么

  大数据又称黑暗数据,是指人脑无法处理的海量数据聚合成的信息资产,在民生、IT、…...

大数据现在处于什么阶段,入行大数据,需要学习哪些基础知识?

大数据现在处于什么阶段,入行大数据,需要学习哪些基

大数据的发展历程总体上可以划分为三个重要阶段,萌芽期、成熟期和大规模应用期…...

对于大数据开发的学习,最经典的学习路线是什么?

对于大数据开发的学习,最经典的学习路线是什么?

对于现代社会,大数据开发的重要性不言而喻,通过大量的数据处理、分析获取有价值的信…...

大数据时代,主要需要什么类型的人才?

大数据时代,主要需要什么类型的人才?

什么是大数据,大数据是主要指的是,无法在可承受的时间范围内用常规软件工具进行捕捉…...

数据科学,数据分析和机器学习之间,有什么本质区别?

数据科学,数据分析和机器学习之间,有什么本质区别?

我们都知道机器学习,数据科学和数据分析是未来的发展方向。有些公司不仅利用大数据帮…...

什么样的人才是大数据人才呢?我们应该怎么定义和分类?

什么样的人才是大数据人才呢?我们应该怎么定义和分类

在未来世界,国家之间、区域之间甚至是公司之间的大数据人才的争夺战,将是愈演愈烈的…...