机器学习面试:系统设计方法简论

作者 : IT 大叔 本文共3923个字,预计阅读时间需要10分钟 发布时间: 2020-08-28

机器学习面试:系统设计方法简论插图

机器学习(ML)是增长最快的领域之一,预计将从2020年的$ 7.3B增长到2024年的$ 30.6B。在ML领域工作是令人兴奋和有利可图的。但是,如果您想担任数据科学家一职,则需要经过竞争性面试过程。

大多数顶级公司都会测试您在编程,数据分析和批判性思维方面的技能。但是最重​​要的是您要精通系统设计,因为它表明您可以有效地解决开放式问题。这些技能使您区别于其他工程师。

本文是面向机器学习面试的入门指南,适用于希望通过面试并与系统设计概念脱颖而出的开发人员。

今天我们将介绍:

  • 什么是ML面试?
  • ML面试概念和技术概述
  • 如何建立机器学习系统
  • 建立实体链接系统
  • 接下来要学什么

使用系统设计概念对ML工程师进行面试。

了解如何以高水平思考系统的能力来打动面试官。

什么是ML面试?

机器学习(ML)是对计算机算法的研究,该算法会根据经验自动提高。ML旨在解决众多复杂问题,并且在语音理解,搜索排名,信用卡欺诈检测等领域取得了长足的进步。

机器学习面试:系统设计方法简论插图(2)

从医疗保健和农业到制造业和零售业的各个行业的公司都在利用这些技术取得成功。作为机器学习工程师,工作是令人兴奋且有利可图的。

在面试中,您将接受各种技能的测试:

  • 技术和编程技巧
  • 数据分析技能,包括多种方法和技术
  • 系统设计概念
  • 您有效应用机器学习理论的能力
  • 沟通技巧和文化适应

该领域仍然是需要高水平技术技能的领域。面试者着重于候选人在高层次上思考系统的能力。他们提出了一系列开放性问题,以测试候选人解决​​端对端ML问题的能力。

例如,可能要求候选人:

  • 建立向用户展示相关产品的推荐系统
  • 建立自动驾驶汽车的视觉理解系统
  • 建立搜索排名系统

ML面试概念和技术概述

性能和容量注意事项

在基于ML的系统上工作时,我们的目标是在确保满足容量和性能服务水平协议(SLA)的同时,改善指标(参与率等)。

基于性能的SLA可确保我们在给定的时间范围内(例如500毫秒)将结果返回给99%的查询。容量是指我们的系统可以处理的负载,例如,系统可以支持1000 QPS(每秒查询)。在构建ML系统的以下两个阶段中,将进行主要的性能和容量讨论:

  • 培训时间:构建我们的预测器需要多少培训数据和能力?
  • 评估时间:在满足模型和容量需求时,我们必须满足哪些SLA?

在ML系统中,例如搜索排名,推荐和广告预测,分层/漏斗建模方法是解决规模和相关性的正确方法,同时又能保持较高的性能和可检查的容量。在这种方法中,当文档数量最多时(例如在查询“计算机科学”以进行搜索的情况下为1亿个文档),您可以从一个相对较快的模型开始。

在随后的每个阶段,您都将继续增加复杂性(即,预测中的模型更优化)和执行时间,但是现在该模型需要在减少数量的文档上运行,例如,您的第一阶段可以使用线性模型,而最后阶段可以使用深度神经网络。

培训数据收集策略

ML模型直接从提供给它的数据中学习,并基于该数据针对给定任务创建或完善其规则。因此,数据不足或不相关甚至会使性能最高的算法失效。

训练数据的质量和数量是决定您可以在机器学习优化任务中走多远的重要因素。数据收集技术主要涉及以下任何一项:

  • 用户:用户与现有系统的交互(在线)
  • 人工标签(离线):众包,开源数据集,例如BDD100K数据集
  • 专业贴标机

此外,您可以利用其他创意数据收集技术。例如,您可以通过从用户收集数据来在产品中建立个性化的体验。或者,当使用诸如对象检测器或图像分割器之类的使用视觉数据的系统时,可以使用GAN(生成对抗网络)来增强训练数据。这里还需要考虑其他事项:

  • 数据分割
  • 资料训练
  • 测试/验证
  • 数据量
  • 资料筛选

过滤数据非常重要,因为模型将直接从中学习。理想情况下,您希望模型尽可能没有偏差。

在线实验

成功的机器学习系统必须通过测试不同的场景来评估其性能。这可以导致模型设计方面的更多创新。对于ML系统,“成功”可以通过多种方式进行衡量。

为了进行在线实验,A / B测试对于衡量新功能或系统更改的影响非常有益。在A / B实验中,修改了网页或屏幕以创建其第二版本。原始版本称为控件,而修改后的版本为变体。从这里,我们可以提出两个假设:

  • 零假设
  • 替代假设

我们还可以使用此阶段通过回测和长期运行的A / B测试来衡量长期影响。

机器学习面试:系统设计方法简论插图(4)

实验框架阶段

嵌入

嵌入使我们能够在低维向量空间中对实体(例如单词,文档,图像,人,广告等)进行编码,以便捕获实体的语义信息。让我们看一下两个流行的文本术语嵌入生成模型及其使用示例。

  • CBOW:连续词袋(CBOW)从其周围的词预测当前词
  • 跳过图:在这种架构中,我们尝试根据当前单词来预测周围的单词。

其他ML面试概念和技术

我们已经介绍了ML面试和设计中使用的主要概念和技术。这只是对您将需要成功的技术的介绍。为了继续学习,我建议您研究以下内容:

  • 转移学习
  • 模型调试和测试
  • 训练数据过滤
  • 建立模型和迭代模型改进

通过系统设计进行ML面试。

逐步了解常见的系统设计问题。Educative的基于文本的课程易于浏览,并具有实时编码环境,从而使学习快速高效。

如何建立机器学习系统

在ML面试中,您将被期望有效地建立一个系统。让我们熟悉回答访调员的问题所需的思考过程。

设置问题

面试官通常会要求您为特定任务设计ML系统。这个问题通常涉及面很广,因此您要做的第一件事就是提出问题。这将帮助您缩小问题范围,并确保您的系统要求与面试官的要求紧密匹配。

您的对话还应该包括有关系统性能/速度和容量注意事项的问题。

这些问题的答案将在您提出系统架构时为您提供指导。知道需要快速返回结果将影响模型的深度和复杂性。

定义问题的指标

下一步是为在线和离线测试仔细选择系统的性能指标。您选择的指标将取决于您的系统要解决的问题。

例如,如果要执行二进制分类,则将使用以下离线指标:曲线下面积(AUC),对数损失,精度,召回率和F1得分。

在提出在线指标时,您可能需要基于组件的指标和端到端的指标。基于组件的度量标准用于评估已插入并用于改进其他ML系统的ML系统的性能。

一个终端到终端的度量计算一个ML模式后系统的性能得到了应用。例如,搜索引擎的指标是插入模型后用户的参与度和保留率。

机器学习面试:系统设计方法简论插图(6)

架构讨论

下一步是设计系统的体系结构。您需要考虑系统的组件以及数据如何流经这些组件。在此步骤中,您需要谨慎设计易于缩放的模型。

机器学习面试:系统设计方法简论插图(8)

搜索引擎机器学习系统的体系结构组件

在大多数情况下,您的问题将涉及一个系统,该系统具有大量且不断增加的数据量。例如,如果您负责构建一个向用户显示相关广告的ML系统,则您的模型无法一次处理系统中的所有广告。

相反,您可以使用渠道方法,其中每个阶段要处理的广告都更少。最后,您将拥有一个可扩展的系统,即使数据量增加,该系统仍可快速为所有用户找出相关广告。确定了所有ML系统的要求之后,就可以继续构建模型了。这涉及:

  1. 训练数据生成:这涉及采购数据以训练模型。这可以是手动标记的数据,也可以从用户与现有系统的交互中收集。
  2. 功能工程:为了实现功能,您需要确定给定任务中涉及的主要参与者,分别检查这些参与者并探索它们之间的关系。
  3. 模型培训:在这里,您将决定要为系统使用哪种模型。
  4. 离线评估:这非常有益,因为它使您可以快速测试许多不同的模型。选择最有希望的模型进行在线测试,这是一个缓慢的过程。
  5. 在线执行,评估和迭代改进

现在,让我们熟悉下一部分中构建实体链接系统的任务。

建立实体链接系统

命名实体链接(NEL)是检测给定文本中的实体提及并将其链接到目标知识库中相应实体的过程。实体链接分为两部分:

  • 命名实体识别: NER将文本中潜在的命名实体检测并分类为预定义的类别,例如人员,组织,位置,医疗代码,时间表达等。
  • 消除歧义: 通过将每个检测到的实体链接到知识库中的相应实体,消除歧义。

在下面的示例中,让我们看一下实体链接的作用:

机器学习面试:系统设计方法简论插图(10)
实体链接概述

句子/文字说:“迈克尔·乔丹(Michael Jordan)是加州大学伯克利分校的机器学习教授。” First NER将命名的实体Michael Jordan和UC Berkeley进行检测并将其分类为个人和组织。

然后消除歧义发生。假定在给定的知识库中有两个“迈克尔·乔丹”实体,即加州大学伯克利分校的教授和运动员。文本中的Michael Jordan与知识库中的加利福尼亚大学伯克利分校的教授链接(该文本所指)。同样,本文中的加州大学伯克利分校与知识库中的加利福尼亚大学实体相关联。

应用领域

实体链接在许多自然语言处理任务中都有应用。用例可大致分为信息检索,信息提取和构建知识图,它们又可用于许多系统中,例如:

  • 语义搜索
  • 内容分析
  • 问答系统/聊天机器人/虚拟助手

所有上述应用程序都需要文本的高级表示,其中与应用程序相关的概念与文本和其他无意义的数据分开。

问题陈述

面试官要求您设计一个实体链接系统,该系统:

  • 标识文本中潜在的命名实体提及。
  • 在目标知识库中搜索可能的对应实体以消除歧义。
  • 返回最佳候选对应实体或nil。

该问题陈述转化为以下机器学习问题:

“给出一个文本和知识库,找到文本中所有提及的实体(识别),然后将它们链接到知识库中相应的正确条目(消除歧义)。”

实体链接的面试题

这些是访问者在讨论实体链接系统时可以提出的一些问题。

  • 您将如何构建实体识别器系统?
  • 您将如何构建消歧系统?
  • 给定一条文本,您将如何提取其中提到的所有人员,国家和企业?
  • 您将如何衡量歧义消除器/实体识别器/实体链接器的性能?
  • 给定多个歧义消除器/识别器/衬里,您如何确定哪一个是最好的?

接下来要学什么

恭喜!向您介绍了ML系统的概念和实现它们的技术。最后,您将学习基于实际系统设计概念的解决任何面试问题的策略。本文是有关ML访谈的Educative系列文章的一部分,请继续关注!

关于机器学习和系统设计,还有很多东西要学习。您需要掌握以下系统:

  • 广告预测系统
  • 自动驾驶汽车系统
  • 推荐系统
  • 基于提要的系统
  • 搜索排名
免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » 机器学习面试:系统设计方法简论

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论