AmazonML

Amazon ML

面试总结

考察核心

  1. 要求你能够理解business problem
  2. 把business problem 转化成一个ML problem
  3. 提出并且implement ML solutions —> improve business metrics

所谓ML的经验: 就是一眼看出这个business problem适不适合用来做ML,有没有前途

amazon不同岗位 从事的工作

engineering team —> ML infra

BI engineer/Data Scientist/Data Engineer —> data pipeline

Applied Science —> preprocessing, post-processing, ML model training/inference

创建一个模型inference的endpoint从而跟engineering team来interact

面经回顾

  1. 简单的leetcode + ML知识点

  2. ML知识点

  3. BQ (leadership principle)

    熟悉leadership principles会非常重要

    4轮中1轮考BQ

    而其它3轮,会有2个BQ问题

ML 考察点

  1. ML breadth

    机器学习的广泛知识和理论基础

    feature selection的方法

    熟悉 常用的模型简历中涉及到的模型

    熟悉到 能够写出伪代码的程度

  2. ML depth

    特定机器学习领域(如深度学习、自然语言处理等)的专业知识和技术深度

    transformer模型比RNN family的优势在什么地方

    BERT集体的模型结构是什么

    为什么需要multi-head attention

    写一下logistic regression的loss并且计算gradient

  3. ML application

    类似 机器学习设计面试

    重视**机器学习问题的形成 ** —> 在给定的业务场景中正确地定义和构造问题

    而非仅仅是解决方案的设计

    现在amazon search bar只支持general retail products,然后我现在也想同时支持amazon fresh的搜索,你会怎么设计

How to prepare a ML story in the Resume?

重点: 科学创新(science innovation)+ 各种挑战(challenges)+ How to slove challenges

Common Challenges Examples

  1. High Quality Labeling Data

    缺乏高质量的标注数据 -->导致模型性能不佳 —> 数据增强、伪标签等技术

  2. Legacy Systems

    整合新的机器学习解决方案—>与旧的系统进行接口或完全替换—>技术和兼容性的挑战

  3. Cross-team Communication

    项目需要多个团队的合作(如数据科学家、产品经理、工程师等 )—> 跨团队沟通协调能力

  4. Latency/Scalability/Robustness

    模型的响应时间、可扩展性和鲁棒性(business areas 非常重要) —> 用户体验和产品的可用性

  5. Formulate Business Problems

    将抽象的业务需求转化为具体的机器学习问题 —> 深入理解业务本身并能提出可行的technical solution

How to prepare ML Design?

重点: 分模块: 问题是什么—> 怎么解决 —> 怎么衡量 —> 上线

  1. 问题的概览,big picture聊一下(这里是用1-2句话描述项目), 观察interviewer反应

    面试官反应继续: 觉得可以继续一部分一部分展开,就每一个小的模块,具体展开讲讲

    面试官有表达欲望:停下来

ML Design核心: train一个model来实现某个task

比如prediction/ranking/classification。有经验的人都知道,实际上给定一个问题,好用/常用的solution基本上只有很少的几种。

1. 问题是什么

  1. 可用信息

  2. 输入和输出

  3. 问题类型: classification or regression 或者 relevance/matching/ranking

    Relevance

    某个文档、内容、或项与查询或需求之间的匹配程度 —> 评估一个内容项(如网页、文档、产品)与用户查询的相关性

    相关性通常通过分配一个分数来表示,分数越高,表示内容与查询越匹配。

    搜索: 用户输入查询词,系统返回的网页应该与查询词高度相关。相关性算法会对每个页面打分,决定它在搜索结果中的排序位置。

    广告: 在广告推荐中,系统评估广告内容与用户兴趣的相关性,以展示最相关的广告。

    Matching

    两个实体(如文本、用户和物品等)之间的相似性或兼容性。能包括相关性、匹配度、点击率、用户反馈等

    匹配通常用于推荐系统、问答系统、语义相似性计算等场景。

    推荐: 根据用户的历史行为和偏好,匹配出最合适的商品或内容。

    NLP: 判断两个句子是否具有相同的语义或是否相似。

    Ranking

    根据某些标准对一组项目进行排序 —> 确保最相关或最匹配的项目排在前面,满足用户的需求。

    搜素: 排序模型会根据网页的相关性和其他因素将搜索结果进行排序,最相关的结果排在最前面。

    推荐:对多个可能推荐的商品进行排序,确保用户最感兴趣的商品首先展示。

  4. 根据问题类型,选择 需要train哪种类型的model

Relevance, Matching 和 Ranking的联合

一个推荐系统中,首先需要判断哪些商品与用户需求具有相关性

接着根据用户的特定偏好对商品进行匹配

最后根据不同的权重和因素对匹配到的商品进行**排序22。

2. Diagram on a Whiteboard

明白问题后,需要draw一个overview 的 diagram展示work flow

Workflow:

  1. training/testing data
  2. input representation
  3. model
  4. output
  5. evaluation
  6. optimization (parameter estimation)

3. Discuss the Model

基于任务,列出2-3个常用model,比较它们,选择一个常用的model.

Depending on the task type, list possible models, compare 2-3 common ones, and choose a commonly used model.

  1. 分析你选的model的components

  2. 每个components之间的关系

  3. visualize the model as needed

    e.g., layers in a DNN,

    log likelihood in logistic regression,

    L1 and L2 norms in regularization

OverView Visualization: Layers in a DNN

  1. Input Layer

    Function: Receives raw data like a image

    Visualization:Represented as a layer where each neuron corresponds to a pixel value in the image

    assume the input is a grayscale image of size 28x28 pixels

    —>

    the input layer would consist of 784 neurons (28 x 28).

  2. Hidden Layers

    Function: Extract features from the input.

    Visualization: Typically drawn as one or more layers between the input and output.

    Each layer contains neurons that connect to the previous layer

    First Hidden Layer: Might learn basic features like edges and simple textures. Visualized as a layer of neurons, each processing different parts of the input based on their weights and biases.

    Second Hidden Layer: Might learn combinations of features from the first hidden layer, such as corners or parts of objects in the image.

  3. Output Layer

    Function: Produces the final prediction or classification result.

    Visualization: The final layer, where each neuron corresponds to a class label in a classification task.

    in digit recognition (0-9), this layer would have 10 neurons. Each neuron represents the probability that the input image belongs to one of the digits.

Specific Architectures Visualization

Convolutional Layers 卷积层

https://poloclub.github.io/cnn-explainer/

Recurrent Layers 循环层

Terminology

ML infra

支持机器学习模型开发、训练、部署和维护的底层技术和工具的集合

  1. 数据存储

    HDFS、S3、SQL/NoSQL数据库

  2. 计算资源

    GPU、TPU、CPU集群

    云平台:AWS、GCP、Azure等

  3. 分布式计算框架

    处理计算的框架: TensorFlow、PyTorch、Apache Spark

  4. 模型管理与版本控制

    跟踪管理ML tools: MLflow、DVC(Data Version Control)

  5. 持续集成与部署

    Jenkins、Kubeflow、Docker

  6. 监控与日志记录

    log 监控 ML model运行情况

    Prometheus、Grafana、ELK Stack(Elasticsearch, Logstash, Kibana)

Preprocessing

对原始数据进行转换和清理,从而让其可以被ML model使用

  1. data clearning

    Handling missing values

    填充缺失数据或删除包含缺失值的记录

    平均值填充、中位数填充、前后值填充(前向填充、后向填充)

    Processing noise

    识别和删除数据中的异常值或错误值( abnormal value)

  2. data formalization

    Normalization/standardization

    将数据缩放到一个特定的范围(如0到1之间)

    Min-Max缩放、Z-score标准化

    coding category variable

    将类别数据转换为数值形式

    One-Hot Encoding

    Label Encoding

  3. Feature Engineering

    Feature selection: 选择对模型有用的特征,剔除无关或冗余的特征。

    —> 剔除无关或冗余的特征,减少模型的复杂性和过拟合风险

    feature extraction: 通过组合或转换原始特征,生成新的特征以更好地捕捉数据的本质。

    时间序列数据中的移动平均、主成分分析(PCA)

  4. data segmentation

    将数据集划分为Training Set和Test Set

    cross-validation

  5. data augmentation

    增加训练样本的多样性

    图像翻转、旋转、裁剪 Image flipping, rotating and cropping

    文本的同义词替换 Synonym substitution for text

  6. Dimensional reduction

    减少特征数量来简化数据

    主成分分析(PCA)或线性判别分析(LDA)

Post-processing

机器学习模型生成预测结果后对这些结果进行进一步处理的步骤

  1. 结果过滤

    去除异常值: 在预测结果中识别并去除明显不合理的值

    规则化处理: 根据业务规则或先验知识,对预测结果进行调整

    如果某个模型预测值超出了合理的范围,可以根据业务规则将其截断或调整到一个合理的范围内。

  2. 结果平滑

    平滑时间序列

    对于时间序列预测,通过移动平均或指数平滑等技术减小短期波动

    分类结果平滑

    在图像分类或语音识别等任务中,可能会对模型的预测结果进行平滑处理,以减少误分类现象。

  3. 结果校准

    概率校准: 对输出的概率进行校准,使得预测概率更加准确

    使用Platt校准或Isotonic回归对模型的概率输出进行调整

    分段调整: 将预测结果分段处理,比如将回归模型的连续输出分为离散的类别

  4. 组合与加权

    模型集成: 将多个模型的预测结果进行组合或加权平均 —> 提高最终的预测精度

    集成学习方法,如Bagging、Boosting或Stacking

    投票机制: 在分类任务中,可以通过多个模型的投票机制来确定最终的分类结果。

  5. 格式转换

    输出格式转换: 将模型输出转换为所需的格式或结构

    将概率分布转换为具体的类别标签

    将预测值映射到实际应用的特定单位(如货币、温度等)

    输出解释: 对模型的输出进行解释或可视化,帮助用户理解模型的决策过程

    使用SHAP值、LIME等技术对模型预测进行解释

  6. 结果优化

    结果优化: 可以对初始的模型输出进行进一步的优化处理

    应用线性规划或其他优化算法,以满足特定的业务目标或约束条件

    多目标优化: 在多目标任务中,可能需要对多个预测结果进行协调优化,以找到最优的权衡方案。

  7. 结果输出与存储

    将最终的预测结果保存到数据库或以指定的格式输出

    例如JSON、CSV等

ML model training/inference

Model Training 模型训练

调整模型的参数,以最小化误差并提高模型对未知数据的预测能力

  1. 数据准备

    1.1 数据收集

    1.2 数据预处理

  2. 模型选择

    根据任务的性质(如分类、回归、聚类等)选择适合的机器学习模型( 如线性回归、决策树、支持向量机、神经网络等)

  3. 损失函数和优化算法

    3.1 损失函数

    loss function: 评估模型预测结果与实际结果之间差异的度量

    均方误差(MSE)、交叉熵损失

    3.2 选择优化算法

    Optimzer: 用于调整模型参数,以最小化损失函数。

    梯度下降(SGD)、Adam

  4. 模型训练

    4.1 training model: 使用训练数据集,通过优化算法迭代地调整模型参数 —> 损失函数逐渐减小,从而提高模型的预测能力。

    4.2 validate model: 使用验证数据集评估模型的性能,调整超参数(如学习率、正则化参数等)以优化模型表现。

  5. 模型评估

在Test dataset 上评估模型的最终表现

使用性能指标(如准确率、精确率、召回率、F1分数等)来衡量模型的泛化能力。

Inference 推理

使用已经训练好的模型对新数据进行预测或分类的过程

  1. 数据输入

    接收新的数据输入,该数据通常没有标签,需要模型给出预测结果

  2. 模型预测

    将新数据输入到已经训练好的模型中,模型根据其内部的参数和结构生成预测结果

  3. 结果处理

    输出结果: 模型的预测结果输出

    这些结果可能是分类标签、回归值、概率分布等

    后处理: 根据业务需求,对模型的预测结果进行后处理

    例如平滑、校准或转换格式

Other Company ML 常见考察形式

亚麻AS: 一轮AS coding三轮ML (breath depth applicatoin)

Meta: 选system design + ML design 或者两轮ML Design

Linkedin: 两轮LC + 一轮 ML八股 + 一轮ML Design

一轮data coding 就是Leetcode上比较数学的coding基本都是面经题

一轮data science (ML八股文和统计基础)

一轮ML design

Tiktok:每轮都是ML八股 + LC

ML八股: 类似Amazon的breadth + 一部分depth

微软: 一半engineering一半ML

更侧重engineering

Reference

https://www.1point3acres.com/bbs/thread-910878-9-1.html

https://www.1point3acres.com/bbs/thread-788610-1-1.html

https://www.1point3acres.com/bbs/thread-585908-1-1.html (继续)

https://www.1point3acres.com/bbs/thread-788612-1-1.html(总结,继续)