【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

Facebook 的数据科学面试实践问题

  • 2020-03-24
  • 本文字数:3567 字

    阅读完需:约 12 分钟

Facebook的数据科学面试实践问题

本文作者 Terence Shin 是一名在读分析学硕士、数据科学家,他经常会在个人的技术博客上分享一些技术大厂的面试题,每篇文章的问题下他也会尽自己所能给出一些回答。今天的文章是他个人搜集整理的 Facebook 数据科学面试题,希望能够对各位读者有所帮助,如果对这些问题有更好的答案,欢迎在留言区进行交流讨论。


问:你从 100 个硬币中随机抽取 1 个硬币——这 100 个硬币中有 1 个不公平硬币(两面都是国徽),99 个公平硬币(正常硬币)——然后抛这枚硬币 10 次看结果。如果结果 10 次都是国徽面朝上,那么这枚硬币是不公平的概率是多少?


可以使用贝叶斯定理来解答。贝叶斯定理的扩展方程如下:



假设捡到不公平硬币的概率表示为 P(A),而连续抛 10 次都是国徽面朝上的概率表示为 P(B)。那么 P(B|A)等于 1,P(B|A)等于 0.11,而 P(¬A)等于 0.99。


套入等式,则 P(A|B)=0.9118 或 91.18%。


问:有一栋 100 层的建筑物。给你两个相同的鸡蛋。如何使用这两个鸡蛋找到阈值层,也就是从阈值层以上(含该层)扔下鸡蛋后鸡蛋一定会打破。


更具体地说,问题是寻求给定两个鸡蛋后找到阈值层的最佳方法。


为了更好地理解这个问题,我们假设你只有一个鸡蛋。要找到阈值层,你只需从第一层开始扔鸡蛋,然后一次往上移一层直到鸡蛋扔下去会碎为止。


现在想象一下,假设我们有无限的鸡蛋。查找阈值下限的最佳方法是二进制搜索。首先,你应该从 50 楼开始。如果鸡蛋破裂,则将鸡蛋从 25 层扔下去;如果鸡蛋没有碎,则将鸡蛋拿到 75 层,然后重复此过程,直到找到阈值层为止。


但是只有两个鸡蛋的情况下,找到阈值层的最佳方法是上述两个解决方案的混合。


例如,你可以每隔 5 层扔下第一个鸡蛋,直到它碎裂为止,然后使用第二个鸡蛋找出阈值层在最后这 5 层之间的哪一层。在最坏的情况下,这种方法需要扔 24 次。


如果你每隔 10 层扔下第一个鸡蛋直到它碎裂,在最坏的情况下将需要扔 19 次,这比每隔 5 层扔下第一个鸡蛋要好得多。但如果你想要更好的方案呢?


这里就要引入最大遗憾最小化(minimization of maximum regret)这个概念了。基本上,这意味着当你以给定的增量(跳过多少个楼层)扔鸡蛋时,你希望每扔一次后,下一次都减小一点增量,因为这样的话包含阈值层的层数就会变少。也就是说,如果你的第一次扔鸡蛋是在第 n 层,假设它没有碎裂,那么你第二次扔鸡蛋应该在第 n+(n-1)层。可以写成以下等式:



更进一步,上式可以简化为:



求解 n,得出大约 14。因此,你的策略是从第 14 层开始,然后是 14+13,然后是 14+13+12,依此类推,直到它碎裂,然后使用第二个鸡蛋一次上一层来找到阈值层!


问:我们有两种在信息流中投放广告的选项。选项 1:每 25 个故事中有 1 个是广告。选择 2:每个故事都有 4%的机会成为广告。对于每个选项而言,在 100 个新闻故事中预期展示的广告数量是多少?


两个选项的期望概率都是 100 分之 4。


对于选项 1,1/25 等于 4/100。


对于选项 2,100 的 4%为 4/100。


是不是觉得答案看起来太简单了?要是我拉下什么东西的话请指出来!


问:如果只知道不同性别的身高数据,如何证明男性身高平均比女性高?


你可以使用假设检验来证明男性平均身高高于女性。


零假设方法假定男性和女性的平均身高相同,而备择假设方法假定男性的平均身高大于女性的平均身高。


然后,你会收集一个随机的男性和女性身高样本,并使用 t 检验来判断是否要拒绝这个零值。


问:如果 iOS 上 70%的 Facebook 用户使用 Instagram,而 Android 上只有 35%的 Facebook 用户使用 Instagram,你该如何调查这种差异的原因?


有很多可能导致这种差异的变量,我会检查下列因素:


  • iOS 和 Android 用户的受众特征可能会有很大差异。例如,据 Hootsuite 称(https://blog.hootsuite.com/instagram-demographics/),有 43%的女性使用 Instagram,而男性只有 31%。如果 iOS 的女性用户比例明显大于 Android 的女性用户,那就可以解释这种差异(或至少解释一部分)。年龄、种族、宗教信仰、地域等因素也都可以考虑进来。

  • 行为因素也会产生差异。如果 iOS 用户比 Android 用户更频繁地使用手机,那么与那些花更少时间在手机上的用户相比,前者更可能沉迷于 Instagram 和其他应用。

  • 要考虑的另一个可能因素是 Google Play 和 App Store 的区别。例如,如果 Android 用户明显有更多的应用(和社交媒体应用)可供选择,则可能导致更大的用户稀释度。

  • 最后,与 iOS 用户相比,用户体验上的任何差异都可能让 Android 用户不那么喜欢使用 Instagram。如果与 iOS 用户相比,Android 用户的应用有更多错误,那么他们在应用上活跃的可能性就会小一些。


问:某个平台上用户平均点赞数,以及用户在这个平台上花费的时间正在增加,但平台用户总数却在减少。可能导致这种情况的根本原因会是什么?


一般来说,你可能需要询问面试官以获取更多信息,不过这里假设这是他/她愿意提供的唯一信息。


这里应该注意用户的平均点赞数,这有两个原因。第一个原因是,随着时间的流逝,用户的平均参与度往往会增加——这是有道理的,因为随着时间的流逝,活跃用户更可能是平台的忠实用户,因为使用该平台已成为一种习惯做法。每个用户的点赞数会增加的另一个原因是,分母(用户总数)正在减少。假设停止使用该平台的用户是不活跃的用户,也就是很少参与并且点赞数低于平均水平的用户,那么他们的退出将增加用户整体的平均点赞数。


上面的解释也可以用来解释用户在平台上花费的时间。随着时间的流逝,活跃用户变得越来越活跃,而很少使用平台的用户会退出平台。总体而言,前者带来的参与度提升超过了后者退出的影响。


更进一步,“参与度低的用户”很可能是 Facebook 之前没检测到的机器人。但是随着时间的流逝,Facebook 已经能够开发算法来发现和删除机器人。如果以前存在大量的机器人,这可能就是造成这种现象的根本原因。


问:Facebook 看到点赞数按年同比增长了 10%,为什么会这样?


某一年份的总点赞数取决于用户总数和每个用户的平均点赞数(我将其称为参与度)。


用户总数会增加的一些潜在原因如下:由于国际扩张而获得了新的用户,以及年龄较小的人群随着年龄的增长而开始注册 Facebook。


参与度提高的一些潜在原因包括:越来越忠诚的用户使用应用的几率增加、新功能和新特性的影响以及用户体验改善的影响。


问:如果我们正在测试产品 X,那么你会考虑采用哪些指标来确定它是否取得了成功?


决定产品成功的指标取决于业务模型以及企业要通过产品实现的目标。《精益分析》一书提出了一个很好的框架,可以用来确定在给定场景中要使用的指标:



问:如果某项目经理说他们想让信息流中的广告数量增加一倍,你如何确定这是不是一个好主意?


你可以将用户分为两组来执行 A/B 测试:分别是具有正常广告数量的对照组和具有两倍广告数量的测试组。然后,你将选择用来定义什么是“好主意”的指标。例如,我们可以说零假设是广告数量增加一倍会减少在 Facebook 上花费的时间,备择假设是广告数量增加不会对在 Facebook 上花费的时间产生任何影响。你还可以选择其他指标,例如活跃用户数或客户流失率等。接下来,你会进行测试并确定测试的统计显著性,以拒绝或不拒绝零值。


问:在一个游戏中,你会得到两个公平的六面骰子,并需要投掷骰子。如果骰子上的值之和等于 7,则你会赢得 21 美元。但是,每次掷两个骰子都必须支付 5 美元。你会玩这个游戏吗?


掷出 7 的几率是 1/6。


这意味着期望条件下你需要支付21。


对比这两个数字,期望的花费为-$9(21–30)。


由于预期的收益为负,因此你不会玩这个游戏。

拓展阅读

Google 的数据科学面试脑筋急转弯:https://towardsdatascience.com/googles-data-science-interview-brain-teasers-7f3c1dc4ea7f


40 个针对数据科学家的统计面试问题与解答:https://towardsdatascience.com/40-statistics-interview-problems-and-answers-for-data-scientists-6971a02b7eee


亚马逊的数据科学家面试实践问题:https://towardsdatascience.com/amazon-data-scientist-interview-practice-problems-15b9b86e86c6


5 个针对数据科学家的常见 SQL 面试问题:https://towardsdatascience.com/40-statistics-interview-problems-and-answers-for-data-scientists-6971a02b7eee


Facebook 数据科学面试:https://medium.com/acing-ai/facebook-ai-interview-questions-acing-the-ai-interview-5982add0af55


Facebook 数据科学家面试问题:https://www.glassdoor.ca/Interview/Facebook-Data-Scientist-Interview-Questions-EI_IE40772.0,8_KO9,23_IP3.htm


Facebook 数据科学家面试:https://towardsdatascience.com/the-facebook-data-scientist-interview-38556739e872


Facebook 数据科学面试问题例选:http://mockinterview.co/index.php/2018/04/07/sample-data-science-interview-questions-from-facebook/


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2020-03-24 14:262762
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 262.2 次阅读, 收获喜欢 1293 次。

关注

评论

发布
暂无评论
发现更多内容

USB端口的ESD防护电路设计

元器件秋姐

经验分享 usb 电路设计 电源电路 ESD防护

Java培训机构哪家比较不错

小谷哥

Camtasia Studio2023免费版本电脑屏幕录制软件

茶色酒

Camtasia Studio2022 Camtasia Studio2023

大数据就业培训班哪家好?

小谷哥

NFTScan:优质 NFT 应具备什么?

NFT Research

区块链 NFT

高并发中的atomic

Steven

葡萄城邀您参与「表格技术开发者新年分享会」,共话表格技术新未来!

葡萄城技术团队

培训机构与自学的优缺点有哪些

小谷哥

数据可视化图表系列解析——南丁格尔玫瑰图

Data 探险实验室

数据分析 可视化 数据可视化 图表 可视化数据

ClassIn:如何打造更稳定的Zabbix监控系统

OceanBase 数据库

oceanbase 数据库·

先行试点,创新改造:中信期货关键业务系统自主可控的实践之路

OceanBase 数据库

Flink 批作业的运行时自适应执行管控

Apache Flink

大数据 flink 实时计算

2022 OceanBase 年度报告|用技术让海量数据的管理和使用更简单!

OceanBase 数据库

数据库 oceanbase

2023年汽车行业向好发展,火山引擎VeDI助力车企数智转型

字节跳动数据平台

数据库 大数据 数据处理

盘点微服务架构下的诸多身份验证方式

API7.ai 技术团队

微服务 身份认证 APISIX

阿里云连续3年跻身Gartner全球云数据库管理系统领导者象限

云布道师

阿里云

数据治理:数据质量管理策略!

用友BIP

每个Java程序员都必须知道的四种负载均衡算法

JAVA旭阳

Java 架构 后端

Apache APISIX Ingress 1.6 正式发布!

API7.ai 技术团队

APISIX Serverless Kubernetes Ingress Controller

移动跨端框架最全盘点,16款总有一款适合你

Onegun

flutter 移动开发 跨端框架

小程序编译原理解析

Onegun

微信小程序 前端

安信证券资管清算重要业务在原生分布式数据库的创新实践

OceanBase 数据库

数据库 oceanbase

POI 中 getPhysicalNumberOfCells 与 getLastCellNum 有什么区别

ModStart

培训班有哪些学习前端开发的方法

小谷哥

为什么开发者这么看重SQL?看完这些应用场景你就明白了

雨果

sql 数据库管理工具 SQL开发工具

PHP 中命令行调用 escapeshellarg 函数中文问题

ModStart

先行“蜀道”, 四川农信核心系统分布式转型

OceanBase 数据库

JDK结构介绍

Steven

podman如何开启sock使用docker客户端进行管理

ModStart

尚硅谷Airflow视频教程发布

小谷哥

DiT:Transformers 与扩散模型强强联手

Zilliz

AI 算法模型

Facebook的数据科学面试实践问题_AI&大模型_Terence Shin_InfoQ精选文章