资讯动态

2024春招算法岗笔试复盘:小红书真题解析与复习指南

发布时间:2026/8/30 20:45:10 来源:尧图企业网站定制
每年春招都是各路算法岗候选人最紧绷的时候面试环节还没影儿光是笔试这道门槛就能刷掉一大批人。小红书作为现在内容社区里的头部产品算法岗笔试的考察风格一直很有代表性既看重基础功底又不放过对业务理解的考察。2024年春招第一批笔试我完整跟下来了整体感受是题型不算偏但覆盖面很广难点在于如何在有限时间内把会做的做对、把不太熟的写出思路。这篇文章准备围绕这次笔试做一次完整复盘适合接下来要面算法岗的朋友尤其是目标定在内容平台型公司小红书、抖音、B站这类的候选人。我会把笔试的板块划分、核心考点、解题思路、以及我自己踩过的坑全部拆开讲清楚里面有我对每类题型的理解也有实打实的复习建议希望能帮大家少走弯路。1. 先盘盘小红书算法岗笔试的整体风格与考察重点1.1 岗位方向决定了大盘基调在接到笔试邀请之后我第一时间做的事情是上官网查了这个岗位挂在哪个团队下面。小红书的算法体系一般分得比较细有推荐算法、搜索算法、NLP算法、多模态内容理解这几条线笔试的题目结构会随方向会有微调但公共基础部分几乎是固定的。2024年春招第一批笔试从题目分布来看大致分成了四个部分机器学习基础、深度学习与NLP基础、推荐系统相关场景题、以及代码题。前三部分以选择题和简答题为主最后一部分是编程需要在一个在线平台上完成。这里有个细节值得注意小红书的笔试把代码题放在最后但并不是说前面的选择简答不重要恰恰相反前面几个板块的单题分值低但数量多容错率高是稳住基本盘的关键。后面我会详细展开。我觉得小红书笔试最鲜明的特点是它特别重视“内容理解”这个命题。这个和它的产品形态强相关平台的核心内容是图文和视频算法团队不管做推荐、做搜索还是做审核都离不开多模态内容理解这一层。所以像CLIP的原理、图文匹配的常见做法、文本分类里的长尾问题都是高频考点。1.2 笔试考察的底层逻辑与能力模型我在准备笔试前专门梳理过内容平台算法岗的能力图谱这里分享给同样在准备的朋友。笔试本质上是在短时间内检验三件事第一是基础扎实程度。机器学习里的经典模型推导、损失函数选择、评估指标计算深度学习里的网络结构、激活函数、正则化手段这些是死功夫没有捷径。小红书笔试中这类题占比约三成难度中等但考察得非常细比如会考到AUC的计算过程、Softmax的数值稳定性处理这种深入细节的问题。第二是业务感觉。相比纯粹的大厂通用算法岗小红书这类产品驱动的公司非常看候选人能不能用算法解决实际问题。笔试里会直接给一个业务场景问你如何设计特征、选什么模型、怎么评估收益。这类题没有标准答案但考察的是你有没有真实做过推荐或内容理解项目有没有自己的思考体系。第三是工程思维。代码题除了考算法本身还会看你对边界条件的处理、时间空间复杂度的取舍、代码风格是否干净。这些单拎出来都不难但放到一起就成了拉差距的关键。2. 机器学习与深度学习核心考点拆解2.1 机器学习基础推导题重现江湖笔试的第一板块一上来就给了个下马威推导逻辑回归的损失函数对参数的梯度。如果你只记住了“逻辑回归用交叉熵作为损失函数”这句话没亲手推过梯度公式这里很容易卡壳。我给出一个相对严谨的推导步骤方便大家对照。假设样本的预测概率为 p\sigma(w^Tx)其中 \sigma 是 sigmoid 函数对于单个样本 (x, y) 的交叉熵损失为L -[y ln p (1-y) ln(1-p)]对 w 求梯度利用 \sigma(z)\sigma(z)(1-\sigma(z)) 这个性质最终可以得到\frac{\partial L}{\partial w} (p - y)x这个结果看起来很简洁但推导过程中的每一步都是考点。笔试还追问了一个问题如果使用平方损失来训练逻辑回归梯度表达式会变成什么样答案是不再是上述简洁形式而且会导致非凸优化问题所以实践中不会这样用。这类题目考察的就是你有没有真正理解损失函数和模型输出之间的关系而不只是套库调参。第二道有代表性的题是关于偏差和方差的判断。题目给了一个场景训练集误差很小验证集误差较大问应该优先采取哪些措施。这属于典型的过拟合问题选项里包括增加正则化系数、做数据增强、使用Dropout、增加模型复杂度。正确思路是排除“增加模型复杂度”这个选项其他都可以考虑。这类题不难但需要你对偏差-方差分解有清晰认知。2.2 深度学习高分值题Transformer与多模态深度学习板块考得非常聚焦大方向是Transformer结构及其在内容理解中的应用。有一个选择题问的是多头注意力中为什么要对 Query、Key 做缩放即为什么除以 \sqrt{d_k}。这道题的考点在于当维度 d_k 增大时点积结果的方差会变大导致 Softmax 输出分布过于尖锐梯度容易消失缩放是为了让注意力权重分布更平滑保证训练稳定。还考了一个细节就是 Self-Attention 的时间复杂度是 O(n^2 d)如果输入序列过长计算代价会非常大这也是为什么很多内容理解模型会限制输入长度或使用稀疏注意力。有一道简答题问得比较深如果让你设计一个模型对一篇图文笔记的内容质量进行打分你会怎么做。这个问题没有标准答案库我给出的思路是分三层第一层是文本特征提取标题和正文的关键词判断信息密度和标题党倾向。第二层是多模态特征把图片通过预训练视觉模型编码计算图文相关性重点考察图片是否与文本描述匹配。第三层是互动反馈特征把收藏率、读完率、分享率等作为弱监督信号用回归或排序模型做最终打分。整个思路的核心是“多模态信息融合”加“用户反馈闭环”这和小红书内容生态的运营逻辑是一致的。后面口语化地讲就是笔记质量本身要好同时用户用脚投票的结果必须被纳入模型不然模型学不到真实偏好。3. 推荐系统与业务场景题实战分析3.1 推荐链路设计题冷启动的经典解法推荐系统板块出了三道大题最有代表性的是一道“新笔记冷启动”设计题。场景是这样平台每天有大量新发布笔记但因为没有互动数据推荐系统很难判断质量问你会怎么做冷启动。我当时的思路是分成三个环节来答第一个环节是内容理解前置。新笔记虽然没有用户行为但它有文本和图片。通过一个轻量级的多模态模型先产出内容标签、质量分、风险分。内容标签用于召回匹配质量分用于过滤低质内容风险分用于合规判断。这就把冷启动问题从“没有特征”变成了“构造特征”。第二个环节是探索与利用的平衡。新笔记可以先分配一个小流量池比如曝光给一小部分对该类目有偏好的用户观察反馈数据。这里可以用汤普森采样或UCB来动态调整流量分配而不是简单的随机曝光。第三个环节是渐进式放量。当笔记在初始流量池中积累了一定的点击率、收藏率、完读率之后逐步扩大推荐范围。同时要设定一个淘汰线比如48小时内互动率低于阈值的笔记不再进入更大流量池。我补充了一个在真实业务中常见的坑就是探索流量池的用户选择问题。如果新笔记是宠物类内容却把流量探索池均匀地撒在全量用户上大概率学不到有效反馈因为不感兴趣的用户秒划走模型会误判内容质量差。正确做法是从对该类目有历史偏好的用户群中采样类似分层采样保证探索质量。3.2 AB实验与评估指标题别只背公式推荐系统板块还考了一道AB实验的评估题场景是团队优化了推荐排序模型离线AUC提升了0.02问你在线实验应该如何设计、关注哪些指标。这道题除了考基础概念还考察了实践深度。我的回答分了几步第一步是分流方式。要保证实验组和对照组用户群体在统计学上同分布一般用user_id哈希分桶同时要避免实验组和对照组用户之间的社交关系干扰。这句话的意思是如果实验组用户关注了对照组用户或者两个组用户在同一个社交网络里他们的行为会互相影响导致实验评估结果被污染业界叫网络干扰network interference。第二步是指标设计。核心指标包括人均时长、点击率、收藏率、笔记完读率同时要关注负向指标比如举报率、划走率、卸载率。在小红书这类内容社区只看点击率很容易被标题党内容拉高必须结合长期价值和用户满意度指标。第三步是显著性判断。要计算p值、置信区间并设定最小可检测效应MDE避免实验时间过短导致结论不可靠。这里还有个小技巧实验前做一个AA实验验证分流均匀性如果AA实验本身指标波动都很大后面的AB结果也不可信。当时笔试里还问了一个关于GAUC的问题就是Group AUC。和普通AUC的区别在于GAUC会把样本按照用户分组在每个用户内部计算AUC再按曝光数加权平均。这个指标更贴近推荐系统的真实目标因为推荐系统关心的是给每个用户排序的准确度而不是全局排序。这是面试官特别爱追问的点建议大家把分组逻辑和加权方式都记牢。4. 编程题实用思路复盘4.1 题目类型分布与时间分配建议编程题部分一共四道难度梯度设置得比较合理两道中等偏简单一道中等一道偏难。我用Python完成整体时间大约是90分钟。先大概扫了一遍四道题迅速确定它们的类型和难度然后按先易后难的顺序来解这个策略帮我稳住了前面两道题的AC率。四道题的考点分布我复盘了一下大致是第一道题是数组模拟题面包装成“按规则调整推荐位顺序”本质就是数组重排。第二道题考字符串处理和KMP算法相关题目要求判断一个模式串在文本串中是否出现并给出所有匹配位置。第三道题是动态规划包装成“内容分发的最佳路径选择”属于比较典型的二维DP。第四道题是图论最短路径问题数据范围较大需要优化到Dijkstra堆。4.2 字符串匹配题KMP的思路与模板第二道KMP题目比较典型题面要求判断模式串pabacaba在文本串s中出现的所有位置。KMP的核心思想是利用模式串自身的前缀后缀信息避免匹配失败时从头开始从而把时间复杂度降到O(nm)。next数组的构建是关键。next[i]的定义是“模式串前i个字符组成的子串中最长的相同前缀后缀的长度不包括自身”。比如模式串abacaba手动推一遍next[0]0规定next[1]0前缀a无相同前后缀next[2]0前缀ab无相同前后缀next[3]1前缀aba最长相同前后缀是a长度为1next[4]0前缀abac无相同前后缀next[5]0前缀abaca无相同前后缀next[6]1前缀abacab最长相同前后缀是ab长度为1next[7]1前缀abacaba最长相同前后缀是aba长度为3其实是aba所以是3这里要特别提醒一个容易记混的点next数组的下标含义。有的教材里next数组整体右移一位有的则不减一笔试时一定要先看清楚题面的定义再写。否则按照模板背很容易写错。KMP已经是非常经典的算法了建议把上面的推导手推三遍形成肌肉记忆笔试时直接用模板。4.3 DP题与图论题如何快速建模第三道DP题题面包装成了“内容分发路径选择”抽象出来就是给定一个m x n的网格每个格子有收益值从左上角走到右下角每次只能向右或向下走问能够获得的最大收益。这类题属于最经典的二维DP转移方程是dp[i][j] grid[i][j] max(dp[i-1][j], dp[i][j-1])初始化时需要注意第一行和第一列只能从单一方向到达所以要单独处理。笔试的时候我用了一个滚动数组进行空间优化把二维dp降到一维在在线编辑器里写起来更简洁也给内存留了余量。这是一个值得养成的习惯因为笔试平台的内存限制有时候写得很低二维数组容易爆。第四道图论题是最短路径数据范围n可达10^5级别边数m也在10^5级别Floyd显然不可能Bellman-Ford也可能超时必须用Dijkstra二叉堆优化。这里我用的是Python标准库heapq注意要用邻接表而不是邻接矩阵。我分享一个容易踩的坑有向图和无向图的邻接表写入方式不一样无向图需要在两个方向都加边漏掉一边必然WA。这种低级错误在笔试高压下特别容易犯大家记住写完后花30秒检查一下建图逻辑。5. 常见问题与排查技巧实录5.1 我踩过的笔试“低级坑”在准备和参加笔试的过程中我总结出几个在在线笔试环境里非常容易踩的“低级坑”这里如实整理给大家第一个坑输入输出格式不匹配。笔试题平台有的用input()、有的用sys.stdin.readline()如果数据量大input()会卡到超时。建议在笔试开始前就写好一个统一的快速输入模板比如import sys data sys.stdin.read().split()这样可以一次读入所有内容然后按索引取数性能比反复调用input()稳定得多。第二个坑在线编辑器没有自动补全。平时在IDE里写习惯了到了笔试环境才发现没有代码补全手写一些不常用的库函数容易卡壳。建议在准备阶段就用纯文本编辑器练手尽量少依赖IDE的智能提示。第三个坑边界条件考虑不全。比如数组越界、空输入、单元素输入等这些用例在平时IDE里根本不出现但笔试的判题机一定会测。每道题写完务必留出一分钟检查边界。第四个坑递归栈溢出。有时候你觉得用DFS写很方便但Python递归深度默认只有1000层遇到链式图或深树就直接爆栈。解决方案是手动转为迭代写法或者对深度做限制判断。这道题如果没调起来会很影响心态。5.2 各板块的时间分配控制笔试总时长一般是120分钟。我自己的节奏是前面选择题和简答题控制在45分钟左右编程题留90分钟。前面如果卡壳超过两分钟先标记跳过绝不恋战因为后面的大题一旦写不出来前面的分也没抓住就真的没了。选择题里遇到不会的我一般先用排除法去掉两个明显错误的选项再结合业务常识猜一个。这里的逻辑是单选猜中概率优先多选题则求稳不确定的选项宁可不选也不选错因为多选漏选可能得一半分错选直接零分。编程题部分如果一道题10分钟内没有成熟的思路我的建议是直接暴力求解拿部分分。很多笔试平台是分测试点给分的暴力解能过一部分小数据拿到的分数也很有价值。真实情况里我见过不少人为了冲满分死磕难题最后连基础题的分都没拿全非常不划算。5.3 笔试前一周的冲刺复习清单笔试前一周的复习策略我根据自己的经验总结成三个优先级。第一优先级是高频算法模板KMP、前缀和、滑动窗口、二分查找、DFS/BFS、拓扑排序、Dijkstra、并查集、经典DP模型这些必须达到随时能写出来的程度。第二优先级是机器学习基础概念和常见模型推导逻辑回归、SVM、决策树、GBDT、K-Means、PCA、AUC/ROC概念题重点是理解而不是背题。第三优先级是业务场景思考把推荐系统冷启动、多模态内容理解、AB实验、搜索排序这些命题按“问题-方案-评估”的逻辑各准备一道完整答案考试时遇到类似题目可以直接迁移。这里特别强调一下小红书笔试的特点决定了它不可能完全靠刷题通过前两部分的基础题占据了大量分值所以即使是准备编程面试为主的朋友也一定要花时间过一遍机器学习基础。我去年有个朋友算法题全部AC结果栽在了机器学习选择题上非常可惜。6. 笔试后的复盘与扩展思考6.1 笔试经验对后续面试的延伸价值笔试结束不代表这件事就翻篇了认真做一次复盘价值甚至比笔试本身还大。因为我发现笔试里出现的大量知识点几乎都是后面面试时面试官喜欢追问的方向。比如Transformer的多头注意力细节几乎每家公司的面试都会深挖推荐冷启动问题我在面其他内容平台时也被反复问到。我的复盘方法是把笔试中没把握的题全部重新整理一遍每个考点写一段“一句话解释一个例子一个易错点”。这样复习的效率远比重新看一遍课程高而且把零散的知识点串成了一张网。比如写Transformer的时候我给自己整理的是一句话解释多头注意力让模型同时关注不同子空间的信息。例子一个头可能关注句法关系另一个头可能关注指代关系。易错点注意力的缩放因子是 \sqrt{d_k}不是 d_k。通过这种“一句话、一例子、一易错点”的方式知识很难再忘掉。这个方法是我自己的私藏技巧也分享给各位读者亲测有效。6.2 2024年春招算法岗复习方向建议站在2024年春招的时间点结合这次笔试的题目特征我给出几个复习方向建议第一坚决重视多模态方向。小红书的核心内容是图文和短视频算法面试和笔试必然会涉及多模态内容理解。CLIP、BLIP这类图文预训练模型的原理以及它们在推荐、搜索里的落地方式是绝对的高频考点。第二推荐系统的“场景化”考察越来越重。现在笔试简答题不再是干巴巴地问你“FM和DeepFM的区别”而是给你一个具体业务场景看你如何把模型选型融入场景中。比如“小红书笔记流推荐中如何平衡收藏率和点击率”这类问题需要你从多目标优化角度给出方案单纯背模型结构是答不好的。第三工程实现细节的考察比重在上升。编程题不再仅仅是大厂面试中的LeetCode原题而是越来越多地结合实际业务包装比如分发路径、排序规则、字符串匹配。这要求候选人不仅会算法还要能读懂题目背后的业务语境并快速抽象成数学模型。第四概率论和数理统计的基本功不能丢。有一类选择题专门考概率题比如某个事件发生的概率是0.01检测准确率是0.99问检测结果为正时真实发生的概率是多少。这题用贝叶斯公式就能解但笔试现场能快速算对的人并不多。建议把条件概率、贝叶斯、期望、方差这些基础题型都刷一遍性价比极高。6.3 关于在线笔试环境的几个使用心得最后聊聊在线笔试环境的使用虽然是小问题但在真实考试中非常影响发挥。我用过的笔试平台有几个通用规律代码编辑器大多支持多种语言切换但模板默认的代码结构未必是最优的一般建议先把读入模块写好再写核心逻辑部分平台支持本地IDE调试但不支持网络查找资料所以不要把希望寄托在临时搜索上提交前系统一般会给出编译错误提示但样例跑通了不代表能AC还是得靠自己对边界条件的把控。还有一个小细节笔试过程中有时候代码编辑器会卡顿尤其是代码文件变大的时候。我的习惯是每做一道题就新建一个代码文件不要所有题的代码都堆在同一个文件里这样既能避免卡顿也方便回头检查。另一个实用的经验是笔试前先把键盘和电脑调试好特别是用自己电脑考试的朋友一定要提前确认屏幕分辨率、编辑器字号避免进考场后才发现代码显示不完整。这个小问题看着不起眼实际影响很大我听说过有人在正式笔试时因为字体太小盯了三个小时代码出来后眼睛都快花了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价