AmazonML
Amazon ML
面试总结
考察核心:
- 要求你能够理解business problem
- 把business problem 转化成一个ML problem
- 提出并且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
面经回顾
-
简单的leetcode + ML知识点
-
ML知识点
-
BQ (leadership principle)
熟悉leadership principles会非常重要
4轮中1轮考BQ
而其它3轮,会有2个BQ问题
ML 考察点
-
ML breadth
机器学习的广泛知识和理论基础
feature selection的方法
熟悉 常用的模型和简历中涉及到的模型
熟悉到 能够写出伪代码的程度
-
ML depth
特定机器学习领域(如深度学习、自然语言处理等)的专业知识和技术深度
transformer模型比RNN family的优势在什么地方
BERT集体的模型结构是什么
为什么需要multi-head attention
写一下logistic regression的loss并且计算gradient
-
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
-
High Quality Labeling Data
缺乏高质量的标注数据 -->导致模型性能不佳 —> 数据增强、伪标签等技术
-
Legacy Systems
整合新的机器学习解决方案—>与旧的系统进行接口或完全替换—>技术和兼容性的挑战
-
Cross-team Communication
项目需要多个团队的合作(如数据科学家、产品经理、工程师等 )—> 跨团队沟通协调能力
-
Latency/Scalability/Robustness
模型的响应时间、可扩展性和鲁棒性(business areas 非常重要) —> 用户体验和产品的可用性
-
Formulate Business Problems
将抽象的业务需求转化为具体的机器学习问题 —> 深入理解业务本身并能提出可行的technical solution
How to prepare ML Design?
重点: 分模块: 问题是什么—> 怎么解决 —> 怎么衡量 —> 上线
问题的概览,big picture聊一下(这里是用1-2句话描述项目), 观察interviewer反应
面试官反应继续: 觉得可以继续一部分一部分展开,就每一个小的模块,具体展开讲讲
面试官有表达欲望:停下来
ML Design核心: train一个model来实现某个task
比如prediction/ranking/classification。有经验的人都知道,实际上给定一个问题,好用/常用的solution基本上只有很少的几种。
1. 问题是什么
-
可用信息
-
输入和输出
-
问题类型: classification or regression 或者 relevance/matching/ranking
Relevance
某个文档、内容、或项与查询或需求之间的匹配程度 —> 评估一个内容项(如网页、文档、产品)与用户查询的相关性
相关性通常通过分配一个分数来表示,分数越高,表示内容与查询越匹配。
搜索: 用户输入查询词,系统返回的网页应该与查询词高度相关。相关性算法会对每个页面打分,决定它在搜索结果中的排序位置。
广告: 在广告推荐中,系统评估广告内容与用户兴趣的相关性,以展示最相关的广告。
Matching
两个实体(如文本、用户和物品等)之间的相似性或兼容性。能包括相关性、匹配度、点击率、用户反馈等
匹配通常用于推荐系统、问答系统、语义相似性计算等场景。
推荐: 根据用户的历史行为和偏好,匹配出最合适的商品或内容。
NLP: 判断两个句子是否具有相同的语义或是否相似。
Ranking
根据某些标准对一组项目进行排序 —> 确保最相关或最匹配的项目排在前面,满足用户的需求。
搜素: 排序模型会根据网页的相关性和其他因素将搜索结果进行排序,最相关的结果排在最前面。
推荐:对多个可能推荐的商品进行排序,确保用户最感兴趣的商品首先展示。
-
根据问题类型,选择 需要train哪种类型的model
Relevance, Matching 和 Ranking的联合
一个推荐系统中,首先需要判断哪些商品与用户需求具有相关性,
接着根据用户的特定偏好对商品进行匹配,
最后根据不同的权重和因素对匹配到的商品进行**排序22。
2. Diagram on a Whiteboard
明白问题后,需要draw一个overview 的 diagram展示work flow
Workflow:
- training/testing data
- input representation
- model
- output
- evaluation
- 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.
-
分析你选的model的components
-
每个components之间的关系
-
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
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).
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.
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
支持机器学习模型开发、训练、部署和维护的底层技术和工具的集合
-
数据存储
HDFS、S3、SQL/NoSQL数据库
-
计算资源
GPU、TPU、CPU集群
云平台:AWS、GCP、Azure等
-
分布式计算框架
处理计算的框架: TensorFlow、PyTorch、Apache Spark
-
模型管理与版本控制
跟踪管理ML tools: MLflow、DVC(Data Version Control)
-
持续集成与部署
Jenkins、Kubeflow、Docker
-
监控与日志记录
log 监控 ML model运行情况
Prometheus、Grafana、ELK Stack(Elasticsearch, Logstash, Kibana)
Preprocessing
对原始数据进行转换和清理,从而让其可以被ML model使用
-
data clearning
Handling missing values
填充缺失数据或删除包含缺失值的记录
平均值填充、中位数填充、前后值填充(前向填充、后向填充)
Processing noise
识别和删除数据中的异常值或错误值( abnormal value)
-
data formalization
Normalization/standardization
将数据缩放到一个特定的范围(如0到1之间)
Min-Max缩放、Z-score标准化
coding category variable
将类别数据转换为数值形式
One-Hot Encoding
Label Encoding
-
Feature Engineering
Feature selection: 选择对模型有用的特征,剔除无关或冗余的特征。
—> 剔除无关或冗余的特征,减少模型的复杂性和过拟合风险
feature extraction: 通过组合或转换原始特征,生成新的特征以更好地捕捉数据的本质。
时间序列数据中的移动平均、主成分分析(PCA)
-
data segmentation
将数据集划分为Training Set和Test Set
cross-validation
-
data augmentation
增加训练样本的多样性
图像翻转、旋转、裁剪 Image flipping, rotating and cropping
文本的同义词替换 Synonym substitution for text
-
Dimensional reduction
减少特征数量来简化数据
主成分分析(PCA)或线性判别分析(LDA)
Post-processing
机器学习模型生成预测结果后对这些结果进行进一步处理的步骤
-
结果过滤
去除异常值: 在预测结果中识别并去除明显不合理的值
规则化处理: 根据业务规则或先验知识,对预测结果进行调整
如果某个模型预测值超出了合理的范围,可以根据业务规则将其截断或调整到一个合理的范围内。
-
结果平滑
平滑时间序列
对于时间序列预测,通过移动平均或指数平滑等技术减小短期波动
分类结果平滑
在图像分类或语音识别等任务中,可能会对模型的预测结果进行平滑处理,以减少误分类现象。
-
结果校准
概率校准: 对输出的概率进行校准,使得预测概率更加准确
使用Platt校准或Isotonic回归对模型的概率输出进行调整
分段调整: 将预测结果分段处理,比如将回归模型的连续输出分为离散的类别
-
组合与加权
模型集成: 将多个模型的预测结果进行组合或加权平均 —> 提高最终的预测精度
集成学习方法,如Bagging、Boosting或Stacking
投票机制: 在分类任务中,可以通过多个模型的投票机制来确定最终的分类结果。
-
格式转换
输出格式转换: 将模型输出转换为所需的格式或结构
将概率分布转换为具体的类别标签
将预测值映射到实际应用的特定单位(如货币、温度等)
输出解释: 对模型的输出进行解释或可视化,帮助用户理解模型的决策过程
使用SHAP值、LIME等技术对模型预测进行解释
-
结果优化
结果优化: 可以对初始的模型输出进行进一步的优化处理
应用线性规划或其他优化算法,以满足特定的业务目标或约束条件
多目标优化: 在多目标任务中,可能需要对多个预测结果进行协调优化,以找到最优的权衡方案。
-
结果输出与存储
将最终的预测结果保存到数据库或以指定的格式输出
例如JSON、CSV等
ML model training/inference
Model Training 模型训练
调整模型的参数,以最小化误差并提高模型对未知数据的预测能力
-
数据准备
1.1 数据收集
1.2 数据预处理
-
模型选择
根据任务的性质(如分类、回归、聚类等)选择适合的机器学习模型( 如线性回归、决策树、支持向量机、神经网络等)
-
损失函数和优化算法
3.1 损失函数
loss function: 评估模型预测结果与实际结果之间差异的度量
均方误差(MSE)、交叉熵损失
3.2 选择优化算法
Optimzer: 用于调整模型参数,以最小化损失函数。
梯度下降(SGD)、Adam
-
模型训练
4.1 training model: 使用训练数据集,通过优化算法迭代地调整模型参数 —> 损失函数逐渐减小,从而提高模型的预测能力。
4.2 validate model: 使用验证数据集评估模型的性能,调整超参数(如学习率、正则化参数等)以优化模型表现。
-
模型评估
在Test dataset 上评估模型的最终表现
使用性能指标(如准确率、精确率、召回率、F1分数等)来衡量模型的泛化能力。
Inference 推理
使用已经训练好的模型对新数据进行预测或分类的过程
-
数据输入
接收新的数据输入,该数据通常没有标签,需要模型给出预测结果
-
模型预测
将新数据输入到已经训练好的模型中,模型根据其内部的参数和结构生成预测结果
-
结果处理
输出结果: 模型的预测结果输出
这些结果可能是分类标签、回归值、概率分布等
后处理: 根据业务需求,对模型的预测结果进行后处理
例如平滑、校准或转换格式
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(总结,继续)