ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

腾讯音乐数据科学岗春招笔试复盘:SQL、AB实验与业务案例

腾讯音乐数据科学岗春招笔试复盘:SQL、AB实验与业务案例 2023年3月我参加了腾讯音乐春招数据科学岗的第一批笔试。和很多校招同学想的不太一样数据科学岗的笔试并不是纯算法题而是“SQL 统计 机器学习 业务案例”的混合体。两个小时里你会明显感觉到它不是在招一个会跑模型的人而是在招一个能听懂业务、能取数、能设计实验、能把结论讲清楚的人。这篇文章我把这一批笔试的考察逻辑、题型细节和我自己踩过的坑完整复盘一遍给你一份可以直接照抄的复习清单。1. 笔试整体结构与考察逻辑1.1 题型分布和我的时间分配第一批笔试是在线进行的全程双机位监控总时长大约两小时。我印象里没有特别难的脑筋急转弯但题量对时间形成了不小的压迫感。整体可以分成四个模块模块题量建议用时考察重点选择/填空10题左右25分钟机器学习、概率统计、数据结构基础SQL编程2题35分钟HiveSQL/MySQL、窗口函数、连续性问题统计与概率简答2题30分钟AB实验、显著性、贝叶斯、辛普森悖论业务案例分析1大题30分钟指标设计、点击归因、预算优化闭环我当时的策略是先把选择填空快速过一遍不会的先标记不做过多纠缠。SQL题放在第二顺位做因为它是自动判题的能多拿一分是一分。统计简答和业务案例放在最后这类题没有标准答案但需要展开写逻辑一旦前面卡太久后面很容易来不及。1.2 从题目反推岗位画像考完复盘的时候我最大的感受是这个岗位想要的人不是“调包侠”也不是“数据分析师”而是更偏策略方向的数据科学人才。什么叫策略方向简单说你要能用数据判断一个业务动作该不该做、资源该往哪里投、用户为什么涨跌、模型上线之后怎么评估。从题目占比也能看出来SQL和业务案例占了将近一半的分值。这说明团队默认候选人已经具备扎实的工程和数据能力不需要再专门考察复杂的算法推导。反过来如果你只刷LeetCode算法题、不去准备业务场景那这一批笔试会很吃亏。2. 高频考点拆解2.1 SQL从行为日志里算出业务指标我遇到的SQL题背景是音乐产品的听歌行为日志。核心表大致长这样-- 听歌行为表 create table listening_log ( user_id bigint, song_id bigint, play_date string, play_duration int, -- 本次播放时长单位秒 song_duration int, -- 歌曲总时长单位秒 platform string -- ios/android/pc等 );第一问是计算每个用户的“最大连续听歌天数”。这类题在校招笔试里非常高频核心思路是“先去重再用日期减去行号生成分组标识”。我当时的写法是with distinct_daily as ( select user_id, play_date from listening_log group by user_id, play_date ), t1 as ( select user_id, play_date, row_number() over(partition by user_id order by play_date) as rn from distinct_daily ), t2 as ( select user_id, play_date, date_sub(play_date, rn) as grp from t1 ) select user_id, max(cnt) as max_consecutive_days from ( select user_id, grp, count(*) as cnt from t2 group by user_id, grp ) t3 group by user_id;很多新手会漏掉group by user_id, play_date先去重这一步。如果同一天有多次播放记录不去重的话row_number()会把连续日期打散算出来的结果就是错的。这类题背后的业务价值是连续活跃代表真实粘性比“7日活跃”更抗刷量。做推荐、做会员策略、做流失预警都会用到类似口径。所以笔试考这个不是为了刁难你而是希望你具备“从脏日志里清洗出有效指标”的基本功。除了连续性问题窗口函数里的rank()、row_number()、lag()也建议熟练掌握。比如“统计每首歌在其所属曲风下的播放量Top3”这种题就是row_number() over(partition by genre order by play_cnt desc)一旦窗口函数不熟现场很容易写崩。2.2 概率统计AB实验不能只看p值统计模块并不要求你手推复杂分布但非常注重概念理解。我印象最深的是一道关于“听歌时长AB实验”的题目对照组人均听歌时长10分钟实验组人均10.5分钟p值0.03。问是否应该全量上线很多人的第一反应是“p值小于0.05显著上线”。但这是典型的统计思维陷阱。真实业务里至少还要看三点一是效应量。0.5分钟对音乐产品来说可能是一个很大的绝对提升也可能只是噪音要除以均值看相对提升幅度再算置信区间而不是只看一个p值。二是实验单位。如果用户被分到实验组和对照组时同一个用户可能被重复统计样本不独立p值会偏小结论就会失真。音乐产品里听歌时长是强重复测量的指标通常比较稳妥的做法是在用户粒度上聚合后再做检验。三是多重比较。如果你同时看了人均时长、次日留存、人均付费、人均播放次数四个指标只要其中一个p值小于0.05就宣称“显著”那么假阳性概率会远超5%。这时候要么做Bonferroni校正要么先定义唯一主指标。我备考时复习到的核心公式是两样本均值检验的样本量估算n (Z(1-α/2) Z(1-β))² * (σ1² σ2²) / Δ²其中Δ是最小可检测提升σ是标准差。这个公式经常会被包装成“如果想让实验能检测出1%的时长提升需要多少用户”来考。只要清楚α、β、Δ、σ这几个参数的含义题目就能做出来。2.3 机器学习从特征到上线评估机器学习部分考得比较基础大概是给一个“预测用户未来7天是否付费”的二分类问题问你怎么构造特征、选什么模型、怎么评估。这类题想拿全分不能只答“用XGBoost”。更好的是像给面试官讲方案一样分步骤展开特征层面我会分四类用户基础属性性别、年龄、会员等级、注册时长、历史行为过去7天/30天听歌次数、活跃天数、付费金额、收藏数、内容偏好top歌手、top曲风、播放完成率、场景特征当前设备、时段、最近一次播放距今多久。关键要说明“特征时间窗口要截止在标签时间之前”避免用未来信息预测过去这是新手最容易犯的泄漏错误。模型层面第一版可以用逻辑回归或XGBoost。如果团队需要可解释性逻辑回归更好如果追求精度XGBoost默认参数就能拿到不错的效果。更关键的其实是评估正样本比例低时不能只看accuracy要看AUC、PrecisionK、RecallK。如果后续要做预算分配还需要校准概率因为业务方要拿预测分当ROI的依据。我还记得有一道选择题问“XGBoost和GBDT的主要区别”其实在考正则项、二阶泰勒展开、列采样这些点。不需要展开特别深但要能说出核心差异。2.4 业务案例从点击归因到预算优化闭环业务案例题是最难临时抱佛脚的也是数据科学岗位笔试最有区分度的部分。今年的题目把“SEM投放”场景和“预算优化”串在了一起跟行业里常说的“从点击归因到预算优化的闭环实践”非常像。大致题意是产品在搜索引擎投放广告用户从点击到最终付费存在数小时甚至数天的延迟。现在预算有限需要你判断哪些关键词、哪些渠道应该加预算哪些应该砍掉。这类题第一步就是明确归因口径。我给一个通用对比归因模型规则适用场景末次点击归因转化归给最后一次点击搜索词效果评估偏短期首次点击归因转化归给第一次点击新客获取、品牌曝光价值线性归因同一转化路径上的触点平均分快速出结论适合小样本时间衰减归因距离转化越近的点击权重越高转化周期较短的产品数据驱动归因用算法学习每个触点的边际贡献数据量大、路径复杂时使用笔试不是让你把表背下来而是要看你会不会结合场景选择。如果产品主要靠搜索流量转化且转化周期短末次点击归因是简单可用的起点如果存在跨天决策、多次点击那就要引入时间衰减或数据驱动归因。第二步是建立“成本-转化-利润”的闭环。只算ROI不够还要把付费用户后续的LTV算进去。比如A关键词ROI高但量很少B关键词ROI稍低但能带来大量高LTV用户预算分配时就不能单纯看短期ROI。我当时的答题思路是先定目标预算受限下最大化整体利润 再拆环节点击量 × 点击率 × 转化率 × 付费单价 - 投放成本 再分渠道按关键词/计划维度统计归因后的ROI和边际ROI 最后迭代把预算从边际ROI低的关键词转移到边际ROI高的关键词。这里特别关键的一个词是“边际ROI”。很多答案只写了“砍掉ROI低的词”但在真实投放环境里每个关键词的转化率会随预算增加而下降。正确做法是用小步试投逼近边际效应而不是简单做加减法。这样答出来业务题才算有了闭环思维。3. 备考资料与可复用的复习路径3.1 三周冲刺复习规划如果从现在开始准备我建议按三周来排第一周主攻SQL和概率统计。SQL每天刷3道中等偏上的题优先覆盖窗口函数、连续问题、留存计算、TopN。概率统计重点过一遍假设检验、p值、置信区间、样本量公式再用实际案例去理解辛普森悖论。第二周主攻机器学习和业务分析。机器学习不需要从头啃教材直接看“面试题”类型的整理资料重点是把特征工程、模型选择、评估指标、上线监控这些项目流程讲清楚。业务分析这一周可以每天拆解一个案例为什么留存下降、怎么预测付费、怎么分配补贴预算、怎么做点击归因。第三周进入全真模拟。自己卡时间做一套题尤其是SQL要动手写业务题要写成文字方案不要只在脑子里过一遍。模拟完再对着复盘看自己是卡在统计概念、SQL语法还是业务框架上。3.2 我实际用过的资料清单SQL部分我刷了LeetCode的database相关题目配合《SQL必知必会》快速查漏补缺。更进阶的连续性问题、会话划分问题可以在牛客上找大厂历年SQL真题。不用贪多把“窗口函数 group by join”这几个核心吃透就够了。概率统计部分推荐茆诗松的《概率论与数理统计》和任何一本AB实验相关的资料。重点不是背公式而是能用一句话解释“p值表示在原假设成立时观察到当前或更极端结果的概率”能说清楚第一类错误和第二类错误的区别。机器学习部分李航的《统计学习方法》适合打底但不用从头啃到尾。配合《百面机器学习》这类面试整理资料性价比更高。业务案例部分我看了不少写“从点击归因到预算优化闭环”的实践文章这类文章的好处是能把概念落到投放业务里。3.3 数据科学职业核心能力到底考什么“数据科学与大数据技术”专业的就业方向看起来很宽可以去做算法工程师、数据产品经理、数据分析师也可以做策略运营。但这批笔试让我意识到不管最终去哪个具体岗位有四个核心能力是绕不开的第一是数据提取能力。拿到一个业务问题时你能不能快速想到需要哪张表、哪个字段、用什么SQL逻辑去提取。第二是量化判断能力。能不能用统计方法区分“真实波动”和“随机噪声”。第三是策略建模能力。能不能把一个业务目标抽象成数学问题用分类、回归、归因模型去求解。第四是业务落地能力。模型或结论能不能被业务方执行是否考虑了成本、边界和反馈循环。笔试其实就是在用两小时压缩检验这四个能力。你不需要每一项都做到满分但至少要有两项明显突出其他项不拖后腿。4. 常见问题与排查技巧实录4.1 业务案例题没思路怎么办这是我在备考群里最常见的求助“这个业务场景我完全没接触过怎么写”如果你是第一次见这种题记住下面这个框架明确目标先问自己业务的北极星指标是什么预算优化类题目通常是最大化利润或ROI。拆解漏斗把用户从曝光、点击、转化到付费的核心路径画出来把能算的指标都列出来。提出假设影响结果的因素有哪些是渠道拿量不足、素材点击率低、落地页转化差还是归因给了错误的渠道。制定验证方案哪些数据可以验证假设需要做哪些AB测试样本量够不够。输出结论和迭代给出一版可执行的策略同时说明怎么评估效果、多久迭代一次。即使题目背景不熟悉只要按这个框架答题至少能拿到60%-70%的分数。最怕的是只写“我建议优化关键词”这种没有推导过程的一句话结论。4.2 SQL题容易踩的坑SQL题我吃了好几个亏这里把所有常见坑都列出来常见错误原因解决办法连续日期没去重直接对明细表排序日期重复导致分组错误先对 user_id play_date 去重JOIN引发数据膨胀一对多关联结果行数变多先聚合再关联或先distinct再join空值被过滤掉where里写了col ! value导致NULL被剔除用col is null or col value窗口函数排序错误order by方向反了TopN记得用desc连续问题用asc时间字符串格式不一致分区字段有时是2023-03-14有时是20230314先统一格式再比较SQL题是机器自动判分的所以结果字段名、字段顺序都必须和题目要求一致。写完以后多检查一遍不要因为少一个distinct就整题白给。4.3 笔试心态和后期衔接我必须说第一批笔试最大的敌人其实是焦虑。我那天做业务案例题的时候剩余时间只有25分钟看到题目里“归因模型”“预算优化”这些词一度脑子发懵。后来我停下来缓了十秒把题目读了两遍发现它没有表面那么复杂。考核的不是你会不会用某个专业术语而是能不能用逻辑把问题回答清楚。另外笔试和后面的面试是强关联的。腾讯音乐这种团队笔试之后通常还会有一轮业务面面试官可能会拿着你笔试里的业务题继续深挖。所以笔试结束后一定要趁记忆新鲜把答案和思路记下来哪怕没进下一轮复盘出来的东西也是你后续投其他公司的弹药。我自己最终没有走完流程但这轮笔试对我后续的准备方向帮助很大。现在回想起来数据科学岗笔试真正想筛选的不是背了多少公式而是你在一个具体业务问题面前能不能冷静地把“数据获取、量化分析、模型决策、业务落地”这条链路走通。如果你也正在准备类似的春招笔试我希望这份复盘能让你少踩一点坑至少别在SQL的连续日期上栽跟头。共勉。
返回列表