尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

机器学习算法岗面经:腾讯阿里网易面试真题复盘

机器学习算法岗面经:腾讯阿里网易面试真题复盘 机器学习算法面经腾讯阿里网易| 掘金技术征文从三月份开始投简历到六月初拿到满意的 offer这三个月里我密集地面了腾讯、阿里、网易三家加上中间穿插的几个大厂和小厂一共面了差不多二十轮。说实话机器学习算法岗的面试跟我想象中不太一样——它在考基础这件事上比我预想的狠得多而在考论文这件事上又没网上说的那么玄乎。这篇面经我尽量还原真实题目和真实场景把每一轮问什么、怎么准备、哪些地方我栽过跟头都写清楚给准备走算法岗的朋友一个参考。先交代一下我的背景211 硕士研究方向是机器学习与数据挖掘有两段实习经历一篇 CCF-B 论文在投面试时是 under review 状态编程主要用 PythonC 能写但不熟。投递的岗位是算法工程师/机器学习工程师方向base 深圳和杭州。这个背景放在今年这个行情里不算突出能拿到面试机会主要靠项目经历和实习经历了。1. 面试前的准备简历、项目与刷题方向的取舍在开始讲具体的面试题目之前我想先说一个很多人忽略的事情——投递时间线和简历内容本身很大程度上决定了你后面面试的难度。我三月初就开始准备但真正大规模投递是三月中旬这里面的区别在于早投的批次面试官问的问题明显更常规而到了四月底五月初的批次同样是这些公司面试官的问题会明显更偏、更细这可能跟候选人池子的整体水平变化有关。简历上我最终呈现的项目有四个两个实习项目一个推荐系统相关的一个用户画像相关的一个学校的科研项目也是推荐方向的还有一个 kaggle 比赛项目。这里有个很实用的经验简历上写的每个项目背后至少要能讲出三层东西。第一层是项目本身做了什么、你的角色是什么第二层是技术选型为什么这么做、有没有对比过其他方案第三层是这个项目里你认为最大的难点是什么、你怎么解决的、如果再让你做一次会怎么改进。这三层缺一层面试官追问下去你就容易露馅因为面试官深挖项目的速度远比你想的快。刷题方面我的策略是主攻 LeetCode 热题 HOT 100 加上剑指 offer 的经典题重点放在数组、链表、二叉树、动态规划、字符串这几个大类。为什么没刷太多难题因为从实际面试来看算法岗手撕代码的难度并不像开发岗那么高更侧重考察你对算法思想的理解和边界条件的考虑而不是纯竞赛技巧。我面了三家加起来手撕了大概七八道题没有一道是 hard 难度的偏题怪题全是中等难度或者偏简单的中等题。这个后面会专门展开讲。2. 腾讯系面试从群面到技术二面的完整题目复盘腾讯我投的是 CSIG 部门的算法岗位一共面了四轮群面、一面技术初面、二面技术复面、HR 面。整体感受是腾讯的面试流程最规范每一轮边界清晰但群面环节对算法岗来说确实有点折磨。2.1 群面一个算法岗也要参加的案例分析腾讯的算法岗居然有群面环节这是我没想到的。群面题目大概是这样的给一个电商场景需要设计一套用户增长方案让一组人在 30 分钟内讨论出方案框架并推选一人总结。这个环节看起来是产品题但算法背景的人在里面其实有自己的优势——你可以主动提出通过用户分群、行为序列特征提取、流失预警模型这类技术实现路径在讨论中占据技术可行性的角色定位。我在这轮里做的一件事是当大家讨论得比较散的时候主动站出来把方案拆成了数据基础—特征—模型—策略—评估五个模块然后建议大家按这个框架分工。最后总结环节不是我做的但讨论框架是我提的这应该算加分的点。群面通过的很大概率是说话有条理、能推进讨论节奏的人而不是声音最大的人。2.2 腾讯一面机器学习基础与简历深挖腾讯的一面持续了大概 70 分钟节奏非常紧凑。面试官上来先让我自我介绍然后直接开始问项目。针对我的推荐系统实习项目他问了几个我印象很深的问题第一个问题你们用的 FM 模型是怎么做特征交叉的为什么不用更高阶的组合这个问题其实是在考察你是否理解特征交叉的代价——二阶交叉的参数量是 O(n²)三阶就变成 O(n³)在稀疏场景下高阶交叉的参数量太大而且容易过拟合。我当时答了 FM 通过隐向量内积来建模二阶交叉把参数量从 n² 降到 nkk 是隐向量维度同时提到高阶交叉可以用 DeepFM 的深度部分去隐式学习但显式的高阶交叉在工程上性价比不高。第二个问题你的模型线上效果提升了多少这个提升是怎么评估的要小心的是面试官问这个不只是想知道数字更想确认你的评估方法论。我当时回答了 AUC 提升了多少、GAUC 提升了多少同时补充说明做了分层评估——按用户活跃度分层和按品类分层分别看了提升情况发现对低活跃用户和长尾品类的提升更明显。面试官对分层评估这个点明显比较满意因为这说明你不仅看了总体指标还关注了模型在不同群体上的表现差异。第三个问题是有一定难度的如果线上特征分布发生漂移你会怎么检测和处理这个问题我当时其实答得不太够只说了用 PSI 指标监控特征分布变化、定期重训模型。面试官追问你提到的重训是全部重训还是增量训练增量训练会不会有灾难性遗忘的问题这里就有点卡住了。后来复盘这道题更完整的答法应该是先用 PSI 分特征监控漂移程度区分是季节性波动还是真实漂移然后考虑是加规则兜底、做在线学习、还是定期用新数据微调如果做增量学习可以提一下用前面的样本做经验回放来缓解遗忘。这个点我后面在别家的面试里准备过再遇到就答得顺多了。腾讯一面的算法题是手写一个快排的变种——按奇偶性重排数组奇数在前偶数在后并且相对顺序保持不变。这就是典型的考察稳定性和空间复杂度的题目。最直接的解法是新建两个数组分别收集奇数和偶数再合并时间复杂度 O(n)空间复杂度 O(n)。面试官问能不能做到 O(1) 空间我想到的是类似插入排序的思路从左往右找到第一个偶数再往后找第一个奇数然后把这个奇数依次交换到偶数前面。相对顺序不变空间 O(1)但最坏时间复杂度是 O(n²)。跟面试官讨论了这个 trade-off他说可以了。这一题给我的感觉是面试官想看的不是你会不会背某个模板解法而是你能不能分析不同解法的优劣并且理解为什么某些场景下稳定比空间更重要。2.3 腾讯二面更高维度的方案设计与系统思考腾讯二面面试官应该是部门 leader 级别的人问题明显从你会不会这个变成了你能不能用这些技术解决实际问题。他直接给了我一个场景微信里的视频号推荐如果让你设计冷启动方案你会怎么做这个问题很大、很开放考察的是系统设计能力。我当时的回答分了几个层次对于新发布的视频先通过内容理解打标签多模态视觉、音频、文本然后利用标签匹配到已有的内容池或用户兴趣簇对小流量测试阶段设计探索与利用策略比如 UCB 或汤普森采样等累积到一定交互量后再切到常规的召回排序链路。面试官追问了你怎么判断一个视频是否已经到了可以切换的充分交互量——这个问题考的是工程指标设计。我回答按交互条数和置信区间来定比如一个视频至少要有多少曝光和正的反馈量用 Wilson 区间看 CTR 的下界是否已经超过某个阈值再决定是否切换。这个回答面试官是认可的。二面还有一道手撕代码题目是二叉树的层序遍历但要求按之字形zigzag输出。这是剑指 offer 原题两个栈或者双端队列都可以解决。我选了双端队列写完后面试官追问了空间复杂度我答 O(n)最坏情况下队列里会保存一整层的节点。这题答得比较快感觉这轮的重点已经不在算法题上了而是在方案设计上。腾讯的 HR 面比较常规主要问实习时间、毕业时间、薪资期望、能不能接受 base 深圳。整体感受腾讯的算法岗面试非常看重候选人的项目深度和系统思考能力光会跑模型是不够的需要能讲清楚为什么、怎么评估、上线后出问题怎么处理。3. 阿里系面试指标推导与项目细节的极限追问阿里我面的是淘系技术部的算法岗一共面了三轮技术面加一轮 HR。阿里面试给我的整体印象是问题密度极高对指标的追问会追到底层公式而且面试官非常喜欢从你的回答里找下一个问题前面一个回答如果不严谨后面往往会连环翻车。3.1 阿里一面从项目细节开始的连环追问阿里的一面是我整个求职季里问题密度最大的一轮。面试官上来没有让我自我介绍直接对着简历上的推荐项目开始问你用了 DeepFM 对吧好DeepFM 的 FM 部分和深度部分是共享同一个 embedding 的吗这个问题我当时愣了一下——因为很多框架的实现里 FM 部分和深度部分是各自维护 embedding 的。我回答的是在我们项目的实现里两者共用了一套 embedding也就是 one-hot 特征只有一个 embedding 向量同时输入给 FM 部分和深度部分这能控制参数量也方便联合训练。面试官点头然后追问如果共用 embedding那 FM 部分和深度部分的梯度会对同一个 embedding 产生不同的更新方向怎么处理这里其实涉及到多任务学习里常见的冲突问题。我当时回答的是在反向传播时两个分支的梯度会叠加本质上是加性融合一般不会出现严重冲突但如果出现训练不稳定的情况可以考虑分别用不同的 embedding或者对 FM 分支设置更低的学习率。面试官没有再深追但我隐约感觉他其实有更标准的答案——比如 FFM 或者 FwFM 里对 field 维度的显式建模。然后面试官把问题切到了推荐系统的召回环节。他问你们做召回的时候双塔模型的内积用的是什么为什么选内积而不是余弦相似度这里有个细节双塔模型如果用余弦相似度相当于把向量归一化到单位球面上再内积这会丢失向量的模长信息。模长在推荐场景中其实是有意义的——它可能反映了特征的置信度或者强度所以某些场景下不加归一化的内积效果更好。我当时把这个逻辑讲了一遍面试官看似满意但紧接着问好那内积的值域很大训练的时候你会不会对内积做温度缩放我说会温度系数的作用是调节 softmax 的平滑程度低温让分布更尖锐、更利于区分正负样本高温让分布更平滑、防止过拟合。面试官终于没有继续在这个问题上追了但我也被问出了一身汗。3.2 阿里二面指标体系的 AB Test 深度推演阿里二面是我整个面试季里印象最深的一轮因为面试官把一个 AB Test 的问题问了整整二十多分钟。他给的场景是一个推荐策略上线曝光点击率涨了 3%但人均停留时长降了 5%这个实验你怎么判断能不能全量这题如果只是简单回答看核心指标有没有显著提升就太浅了。我当时花了很长的时间去拆解第一步先确认这两个指标的置信区间和显著性。点击率涨 3% 可能是显著的但停留时长降 5% 是不是噪声要看 p 值和置信区间宽度。第二步分析指标之间的关联。曝光点击率涨了可能是因为新的策略让用户更容易点到感兴趣的内容但也有可能是因为标题党或者误导性封面吸引了误点击如果是后者用户的真实兴趣没有满足停留时长就会下降这属于典型的点击率陷阱。第三步分层拆解指标。把用户按活跃度分桶看高活跃和低活跃用户分别的表现把内容按类型拆看是不是某一类内容贡献了点击率提升但拉低了停留时长。这里如果发现有明显的跷跷板效应需要进一步分析是不是推荐多样性的问题。第四步结合业务目标判断北极星指标是什么。如果这个产品的核心目标是把用户时长做上去那停留时长下降就是不能接受的如果核心目标是提升点击转化、带动商业化收入那点击率提升 3% 可能更重要。面试官在听到我说北极星指标这个词的时候明显有了兴趣追问我怎么定义北极星指标。我回答的是北极星指标要能反映产品给用户带来的核心价值对内容平台来说通常是总消费时长或者活跃天数而不是点击率这种过程指标因为点击率是手段消费和留存才是目的。阿里二面最后也给了一道手撕代码题目是判断一个字符串是否是另一个字符串的旋转字符串比如 abcde 旋转后是 cdeab。我用的解法是判断两个字符串长度相等且 s1s1 是否包含 s2。这道题其实很简单但面试官问了一个很刁的问题如果字符串长度极大s1s1 的内存开销你考虑过吗这就逼我要么换 KMP 避免拼接要么说明拼接空间复杂度是 O(n) 但可以通过窗口比较避免。我现场选择了用 KMP 的方式实现了一遍虽然代码写得比拼接麻烦很多但面试官的意图我猜就是要看看你愿不愿意考虑极端场景下的内存问题。3.3 阿里三面业务理解与机器学习基础结合阿里的三面leader 面反而没有前面那么大的压力更多是业务理解层面的交流。面试官是 P8 级别的问的问题偏宏观你怎么看待当前电商推荐场景里搜推一体的趋势你在实习时有没有了解过搜索链路和推荐链路的差异我当时的回答是搜索和推荐本质上都是用户意图匹配的问题区别在于搜索的意图是明确的、实时的推荐的意图是隐式的、长周期的。搜推一体的核心是统一建模用户的实时意图和长期兴趣共享特征和模型结构但在训练目标和推理路径上仍然需要差异化——搜索更侧重相关性推荐更侧重多样性探索。这个回答整体比较稳leader 也没有再往深追可能是到了这个层级更看重候选人对行业趋势有没有自己的思考框架。阿里整体三面下来我的感觉是阿里最看重的是细节的扎实程度一个技术点喜欢从多个角度反复戳戳到你说不出为止。所以在准备阿里的时候建议把所有项目里用到的公式、参数量、loss 函数、优化器选择、embedding 维度这些细节全部过一遍确保每一个点都能做 10 分钟以上的深挖。另外阿里喜欢考察 AB Test 和指标评估体系这几乎是必考的可以提前准备好一套标准的分析框架。4. 网易系面试领域知识与代码落地能力并重网易我面的是网易有道和网易云音乐两个部门的算法岗最后拿到了其中一个的 offer。网易的整体面试风格跟腾讯、阿里都不太一样——没有群面、没有太强的压力感但更侧重考察你对具体业务场景的理解以及代码落地能力。4.1 网易有道一面教育场景的 NLP 与用户建模网易有道的算法岗主要做教育相关的智能化产品面试官先问了我的项目然后给了一个场景题如果一个学生用户在一道题上反复做错系统该怎么调整对他的推荐策略这个问题很有趣它既有 NLP 的成分题目文本理解、知识点标签又有推荐系统的成分个性化推荐还有一点点教育学的背景。我的回答是首先反复做错意味着当前题目的难度和该学生的能力不匹配或者学生在这个知识点上有系统性漏洞。系统应该做两件事一是把当前题目关联的知识点识别出来然后下调和这个知识点相关题目的难度二是给学生推荐该知识点的基础讲解内容视频/文章而不是继续推题。面试官追问你怎么判断反复的阈值我当时答的是用滑动窗口统计最近 N 次做题记录里的错误率同时结合做题间隔时长——如果学生隔了几天又遇到同类题错说明这不是偶发错误是有知识漏洞。网易有道的一面还考了一道 SQL 题让我计算每个用户连续登录的天数。这道题在算法岗面试里出现频率很高解法是用 row_number() 给每个用户按日期排序然后用日期减去序号得到分组标志相同分组内的记录就是连续的日期区间。我写完 PG 版 SQL 后面试官追问了思路的数学原理——为什么日期减序号就能分组我解释如果一个序列是连续的那么日期递增 1序号也递增 1两者之差不变一旦中间断档差值就会变大。面试官点头。这道题很多人会背解法但说不清原理建议理解而不是死记。4.2 网易云音乐二面音乐推荐场景的冷启动与多样性网易云音乐的二面偏推荐系统面试官给了两个场景题第一个场景是歌单冷启动一首新歌上线没有用户行为数据怎么把它推给合适的用户这个问题我前面在腾讯二面里已经练过一次答得比较顺。内容理解音频特征提取、歌词文本分类、基于相似歌曲的迁移找风格相近的老歌把老歌的听众作为候选用户、多臂老虎机探索三件套全给出来了。第二个场景很有网易云音乐特色用户长期只听某一类音乐比如只听民谣你是会给他推更多民谣还是尝试拓宽他的口味这题表面考推荐多样性实际上考的是探索与利用的平衡以及商业目标的理解。我回答从用户体验角度完全只推同一品类会让用户审美疲劳也容易导致推荐系统进入信息茧房但从短期指标角度推用户熟悉的品类点击率更稳定。所以策略上应该是以利用为主70-80% 的流量推相关品类、探索为辅20-30% 的流量在其他品类试水同时探索的部分要设定兜底机制如果用户对探索内容表现出强烈的负面反馈比如连续划掉、删除就降低这类内容的权重。面试官认可这个回答并补充说网易云音乐的场景里还有歌单的氛围感因素——同样一首歌在不同的歌单里推荐效果可能完全不同。这个补充其实是暗示推荐不只是 item-to-user还要考虑 item-to-context我当时也在笔记里记下来了。网易的算法题考了两道一道是二分查找的变种在旋转有序数组里找目标值一道是编辑距离的 DP 实现。第一道题我用了标准的二分加有序区间判断的解法第二道题是经典的二维 DP写起来不难但面试官追问了如果字符串长度是 10 万你的 DP 会内存溢出怎么优化——这考的是滚动数组优化把二维 DP 降到一维时间复杂度不变空间从 O(mn) 降到 O(n)。我现场写了滚动数组版本面试官满意。网易的算法题整体难度跟腾讯相当比阿里略简单但更看重边界条件和复杂度优化。4.3 网易 HR 面与 offer 沟通网易的 HR 面比较轻松主要问职业规划、对部门的了解程度、手里有没有其他 offer 以及期望薪资。这里有一个小建议当 HR 问你手里有其他 offer 吗的时候不要撒谎但也不用太实诚地把所有 offer 都交代干净可以说有 1-2 家在流程中给对方一个合理的紧迫感又不至于让对方觉得你只是在拿这个 offer 当备胎。5. 机器学习基础考点五家面试中重复出现的那些题除了各家特色问题机器学习算法岗面试里有一批约等于必考的基础题。我把三家面试里反复出现的知识点整理了一下这些内容几乎是算法岗面试的基本盘如果没有完全掌握建议先补齐再投简历。5.1 模型原理类考点逻辑回归是我被问得最多的一道题。问法通常有这些变种逻辑回归的损失函数是什么、为什么用交叉熵不用均方误差、逻辑回归为什么能用于非线性分类、逻辑回归的决策边界是线性的还是非线性的。这几个问题里最有陷阱的是最后一个——逻辑回归本身是线性模型决策边界是线性的但通过特征工程多项式特征、核函数可以处理非线性问题。面试官特别爱看你能不能清楚地区分模型本身和特征表达这两个层面。SVM 的考察频率也很高。常见问法包括SVM 的损失函数是什么、什么是支持向量、软间隔里的 C 参数有什么作用、核函数怎么选、SVM 和逻辑回归的区别第。重点说一下 C 参数C 越大对误分类的惩罚越大模型越倾向于减少训练集错误但容易过拟合C 越小对误分类的容忍度越高泛化能力可能更好。这个点如果只回答C 是惩罚系数是不够的要把 C 对偏差方差的影响讲清楚。GBDT 和 XGBoost 也是高频考点。GDBT 的基础问题是GBDT 每一轮拟合的是什么不是残差是损失函数对当前模型预测值的负梯度当损失是平方损失时负梯度恰好等于残差。XGBoost 相比 GBDT 的改进点要至少能说出三四个二阶泰勒展开用了一阶导和二阶导、正则项的显式加入叶子节点数和叶子权重的 L2、特征列预排序和近似直方图算法工程加速、对缺失值的自动学习方向、支持列采样。此外XGBoost 里叶子节点的最优权重有闭式解推导就是让损失函数对叶子权重求导等于零这个推导经常被要求现场推一遍。5.2 工程与评估类考点评估指标方面准确率、精确率、召回率、F1、AUC、GAUC、NDCG每一个都要理解到能说公式能说场景偏好的程度。AUC 的物理含义要会解释——随机抽取一个正样本和一个负样本正样本的预测分数大于负样本的概率。这个解释经常被当作追问的起点比如如果 A 模型的 AUC 高于 B 模型但是 AB Test 的时候 A 模型效果反而更差你怎么排查——这里就涉及到 AUC 的局限性AUC 对全体样本的排序质量做平均但在用户维度上可能存在用户分组内排序提升、组间不均衡导致整体 AUC 虚高的情况所以业界常用 GAUC先按用户分组算 AUC 再按曝光加权平均。类别不平衡问题也几乎必考。我的标准答法是先分清楚是绝对不平衡还是相对不平衡然后从数据、模型、损失函数、评估四个层面给方案。数据层面可以过采样/欠采样但要注意过采样可能导致过拟合SMOTE 生成样本时也要小心噪声模型层面可以选用对不平衡更鲁棒的模型或者用集成学习损失函数层面可以用 focal loss 或者给少数类样本加权评估层面不要只看 accuracy要看 PR 曲线或者 ROC 曲线。这里加分项是你能说出为什么 accuracy 在不平衡场景下不可靠——因为如果正样本只有 1%模型全部预测负样本也有 99% 的准确率但模型一点用都没有。5.3 手推公式的准备方法面试里手推的环节比很多人想象的多。我遇到过的现场推导包括逻辑回归 loss 对参数的梯度推导、线性回归的闭式解推导、softmax 交叉熵的反向传播推导、SVM 的对偶问题转换、XGBoost 里分裂增益gain的公式推导。这些推导说实话不难但不提前练几遍面试现场真的容易卡住因为你的手速、公式书写清晰度、变量命名的规范性都会影响面试官对你的判断。我的建议是选几个核心模型的完整推导每个都手写三遍以上直到不用过脑子就能顺畅写出来的程度。目标不是会推是肌肉记忆。6. 手撕代码环节的准备经验与具体题目算法岗的手撕代码跟开发岗比确实温和一些但有几类题目几乎是算法岗专属高频率值得重点准备。第一类是 DP动态规划题。编辑距离、最长公共子序列、最长递增子序列、背包问题这四道我建议不仅会写二维版本还要会写压缩到一维的优化版本、以及打印路径的版本。面试官很爱追问空间优化这算是基本的延伸题。第二类是树的遍历。层序遍历、之字形遍历、前序中序后序的非递归写法二叉搜索树的第 K 大节点树的最近公共祖先LCA这些都是最高频的考点。二叉树的题套路比较固定核心是把递归版本的写法练到滚瓜烂熟再理解非递归版本用栈模拟的过程。第三类是双指针和滑动窗口。最长无重复子串、盛最多水的容器双指针经典题、三数之和、合并两个有序数组这类题在算法岗面试里出现频率很高因为代码量适中而且容易考察边界条件。第四类是概率题和随机数题。机器学习算法岗有时会考一些随机算法比如用不均匀硬币产生均匀分布、带权随机采样这个在推荐系统的负采样里也有实际应用、蓄水池抽样未知大小的数据流中等概率抽样。蓄水池抽样我至少被问了两次原理是遍历到第 i 个元素时以 1/i 的概率替换当前选中的元素。这个证明可以通过数学归纳法完成建议理解并能现场证明。第五类是海量数据处理。如果面试官想加压可能会问如果数据量非常大内存放不下怎么办——经典方案包括分治 哈希取模把大文件分成小文件、位图法记录数据是否出现过、布隆过滤器判断存在性有误判率、外部排序归并。这类题在算法岗面试里出现频率不高但一旦出现就是拉差距的题。7. 项目深挖是最容易翻车的环节简历内容与讲述逻辑我在面试中最大的体会是项目经历被深挖的深度直接决定了面试的上限。很多人的项目其实做得不错但因为讲述逻辑不清晰或者细节准备不足在面试官深挖两三轮之后就撑不住了。项目讲述我后来总结出了一套比较顺的逻辑这里分享给大家现象 → 痛点 → 方案 → 验证 → 反思。现象就是把业务场景用一两句话说清楚比如信息流广告的点击率随着时间推移在衰减。痛点是这个业务问题背后技术上的难点在哪比如用户兴趣变化快导致模型时效性不足。方案是你具体的技术选型和实现路径这部分要讲清楚特征怎么设计的、模型结构是什么、训练数据怎么构建、上线流程怎么走。验证是你怎么证明方案有效——离线指标、在线 AB Test 结果、分层评估结果都要有。反思是最能拉开差距的环节——这个方案有什么不足、如果重新做你会怎么改进、你还考虑过哪些其他方案但最终没有采用、为什么。一个能讲清楚反思的候选人在面试官眼里的评价通常比单纯讲做了什么的人高一个档次。简历上还有一个容易翻车的细节不要写一些你自己其实没有完全理解的热词。比如很多人喜欢在简历上写用过 Transformer面试官问一句Transformer 里的 position encoding 为什么用正弦函数不用可学习参数就卡住了这会极大拉低面试官对你基础能力的评价。简历上的每个技术名词都要以能接住三连追问为标准来写。8. 复盘与心得被拒的原因、改进的方向和一些实在的建议面完所有公司的技术面之后我做了比较完整的复盘。有几件事我觉得值得单独拎出来说第一面试中卡壳不可怕可怕的是卡壳之后的处理方式。我最初几轮面试里遇到不会的问题会直接愣住然后面试官印象就很差。后来我学会了部分回答 换角度切入的技巧哪怕不知道完整答案也可以先把你知道的那部分讲出来然后说这个方向我不太确定但如果从另一个角度理解的话……用这种话术给自己争取思考时间。大多数面试官其实愿意听你分析问题的过程而不是只等你给一个完美答案。第二自我介绍的质量被很多人严重低估。算法岗的自我介绍不要从头到尾念一遍简历——面试官手里就有简历不需要你来念。更好的方式是把自我介绍当成一次重点预告用两三分钟把你想让面试官重点关注的项目和技术方向讲清楚引导接下来的提问方向。比如我主要做推荐方向对召回环节的多路召回和粗排环节的轻量模型有比较多的实践经验面试官大概率会顺着你的方向去问这比被动等他随机挑简历上的内容要可控得多。第三面试中的记录和复盘很重要。我每面完一轮会立刻花十五分钟时间把能记住的题目全部整理进一个文档包括当时我的回答、面试官的追问、我卡壳的点、以及事后查资料补充的完整答案。等到了下一家公司面试我会把这些文档拿出来集中过一遍。这个方法看起来笨但实际上效果出奇好——因为算法岗面试的题目范围就那么大你整理过的题目几乎都会在后面的面试中再次遇到。到后期我面到第三家的时候很多问题我已经能条件反射地回答了这让我在面试中明显更放松。第四基础知识的学习资源。如果你是刚开始准备算法岗面试我比较推荐按这个顺序来先过完李航的《统计学习方法》前八章感知机、KNN、朴素贝叶斯、决策树、逻辑回归、SVM 这些然后搭配周志华老师的《机器学习》西瓜书作为补充理解再刷完 LeetCode 热题 HOT 100 和剑指 offer最后把一些重点模型的公式推导手写三轮。时间充足的情况下可以看深度学习相关的课程但说实话面试的深度没那么夸张以上几样扎实了覆盖 80% 以上的基础考点没什么问题。第五也是最后想说的面试是一个双向筛选的过程不要只想着被选择。面到后面我发现面试官问你问题的方式、追问的角度、以及你遇到不会的问题时对方的态度其实能反映出这个团队的技术风格和合作氛围。阿里那种高压式的追问不适合每个人网易那种偏业务讨论式的交流也会有人觉得很没挑战。找到适合自己的团队比单纯追求大厂 offer重要得多。这也是为什么我觉得面经的意义不只是帮你过面试更是帮你在还没入职之前就提前感受一下接下来几年你可能会在什么样的环境里工作。机器学习算法岗的面试其实没有想象中的那么卷天卷地。把基础打扎实、把项目讲透彻、把代码题练熟练整个面试过程会顺畅很多。希望这篇面经能帮到正在准备的同学祝大家都拿到满意的 offer。
返回列表