2022秋招算法-个人面经整理
汇总了自己去年秋招的面试记录,希望给大家提供一些帮助。
提前祝各位都能拿到心仪的offer~
个人情况:
双985科班,研究生主要做推荐相关研究, 下面的面经基本上即为自己秋招阶段(含提前批)参加过的所有面试。
p.s.
欢迎大家投递b站实习,随时可查进度, 可以帮忙修改简历、辅导面试
通过下面链接即可
小红书
一面 55min
- coding:
- 滑窗最大值 二维滑窗
- 提问:
- FM公式推导: 最后怎么计算的
- AUC公式特点
- LR的损失函数为什么是交叉熵
- GNN工作的背景和具体做法
二面 50min
- 自我介绍
- 项目介绍
- 项目提问
- FM的原理
- 具体模型产出, 讲的不太好
- 模型过拟合怎么评估, 怎么处理
- 召回阶段和排序阶段的任务差异对比
- FM与YoutebeDNN模型的异同点
- ANN技术了解吗
- GNN:graphsage了解么, 简单介绍
- 业务情况
- 用户冷启动怎么做
- 怎么用GNN做
- Coding思路说明:
- 编辑距离
三面 55min
- 项目介绍
- 建议: 可以使用pairwise方式进行训练 softmax 或者 hingeloss
- MIND:
- 提示: 创新点在于track: weight
- 本质: 进行特征聚类
字节商业化
45min 一面
- 介绍实习项目; 提问: FM 的原理; 如何多路召回
- 基础提问: Bert了解么,介绍一下Transformer; 介绍一下word embedding的方法
- 手写LR公式,以及其loss函数
- 手写sigmoid函数,并分析其原理;并与其他激活函数进行对比
- 代码题目:
跳一跳问题; 分两问给出
商业化 60min 二面
- 题目: 293. 滑动窗口最大值
分析时间复杂度 O(N + W) 时间复杂度分析的不对 - 项目提问:
FM的公式: 二叉项的计算方式: 写的不太清楚
1/2 \sum{f = 1}^k ( (\sum_i=1 v_if x_i)^2 - \sum{i=1}^n v_{i,f}2x_i2 )
具体交叉计算距离
对推荐其他框架了解么:
Wide&Deep细节: 优化器使用情况 wide FTRL deep使用
- NLP提问:
word2vec如何处理OOV问题: fast2text grams
还有其他方式设计处理OOV么?
https://www.jianshu.com/p/2441f8ac3cb6
Word Embedding 如何处理未登录词? - 包大人的回答 - 知乎
https://www.zhihu.com/question/308543084/answer/604729983
unk技巧
subword技巧
https://zhuanlan.zhihu.com/p/191648421 - 机器学习基础提问:
LR的损失函数
LR能用MSE函数代替么: 不能, 因为LR+MSE函数是非凸函数
MSE 会有梯度消失现象
MSE 的导数非凸函数,求解最优解困难
https://lafengxiaoyu.blog.csdn.net/article/details/109916750
https://blog.csdn.net/cuiy0818/article/details/81288701
商业化 45min 三面
- 反问环节
- 介绍大根堆,大根堆的定义是什么?如何构成大根堆;
- 经过排序的完全二叉树
- 代码考察: 非递归方式实现大根堆
- 机器学习基础提问:
- 了解GMM么
- 了解EM么
- 了解决策树么 建树过程如何?
- adaboost模型了解么, loss函数如何写: 指数函数
- 深度学习基础提问:
- online learning了解么
- FTRL与LR的最大区别在于什么? FTRL的核心思想是什么
- 个人情况了解:
- 兴趣方向与工作方向
- 个人coding能力如何?
- 考虑提前来实习么?
- 同组能力如何?
b站
一面 50min
- coding题目:
- LC152. 连续子序列的最大乘积
- 反转单链表
- 语言基础:
- map unordedmap
- list linkedlist array:
- 概率论与统计
- 协方差计算及其意义, 其与相关系数的差异
- 概率密度函数的解释
- 贝叶斯公式的举例及解释
- ML基础
- 朴素贝叶斯解释, 什么是条件独立,与独立性有什么区别
- kmeans聚类与混合高斯模型的区别与相同点
- bagging和boosting的区别:
- 全连接网络初始化问题:
- MLP能不能参数全初始化为1
- 参数初始化有哪些方式
- LR能不能参数全初始化为1
- 回归问题中为什么常对特征进行归一化?
- L1和L2正则化的区别
- 为什么L1能得到稀疏解?
二面 50min
- 以项目介绍为主
- 发散提问
- coding:
- 两个有序链表合并
美团优选
一面 50min
- 项目提问: FM怎么做的
- DSSM和FM的区别
- 其他向量召回了解吗 MIND模型中的胶囊网络怎么做的?
- GNN相关: 图怎么构建的; GNN与我们常用的NN有什么区别?
- 基础提问:
- adam与sgd的主要区别是什么?为什么对稀疏特征学习效果比较好?
- coding:
- 迷宫搜索: 给定10*10的迷宫, 入口和出口固定; 搜索最短路径
- dfs/bfs搜索即可
- 实际使用bfs搜索, 直接得到最小步数。
hr面
虾皮-算法
45min 一面
- 实习项目介绍及提问
- 介绍GNN研究项目,提问:social rec和session rec的差异
- 编程题目:
最长回文子串: 使用中心双向拓展完成;
进一步提问: dp的方式怎么设计
50min 二面
- 项目提问:
- 模型优化目标: 时间 交互
- 特征使用情况
20min hr面
百度-广告
45min 一面
基础:
- CF相关: item CF user CF的计算方式
- 基于模型如何计算
- 向量召回如何实现,向量线上如何生成
- 了解召回框架么
- 介绍一下图采样
- GraphSage的特点, 常用的聚合方法
coding:
不同的二叉搜索树数量
40min 二面
项目提问:
- FM原理, 索引构建方式
- 多路召回的量如何调配设置
- 图神经网络边权重设计
基础:
- xgb与gbdt的区别;
- L2与L1的区别
coding:
给n个字符,从中选m个(排列问题,n个字符不重复)
三面
- 项目介绍
- 基础知识提问:
- SVM原理:
- SVM核函数的条件: 正定性 没答出来
- SVM常用核函数
- C++代码量是多少
- LSTM与RNN的区别
- 工业界常用的模型应该是什么? GRU
- 计算资源和性能效果
- 即从性价比出发
- 反问环节
华为-实验室
一面
代码: 去除字符串相邻字符: 使用栈解决
思考题: 编译选项优化, 给定N个编译选项,如何设计优化目标; 设计优化模型; 考虑时间复杂度
二面
代码: 二叉树层次遍历
提问: C++相关:
- vector内部实现 queue内部实现
- C++ 11新特性有哪些
- iterator的实现方式
- const与constexptr的区别
- c++ 11 构造函数
- 虚函数作用与实例 (当父类与子类采用virtual函数参数都为default)
- 了解模板与元编程么
- 左值与右值
提问: 数据结构相关
- 图的存储方式与遍历方式
- bfs与dfs的区别,适用场景
提问: 操作系统
- 进程与线程的区别
- 进程空间
- 给定一个hello world程序, 进程空间的动态调整过程
- 给定一个递归程序,分析栈区的变化
提问: 体系结构方面
- 给定指令 ADD R0 R1 R2 分析CPU执行过程
主管面 50min
- 交流项目和其中遇到的问题
- 职业规划分析
360-广告
一面
- 项目提问
- 深度学习提问: Bert介绍
- 机器学习提问: 决策树介绍, 节点划分的方式
- 题目: 快排实现; 快排复杂度;
最差时间复杂度 O(N^2) 优化方法
二面
- 项目提问: FM数据样本如何构造
- 针对position bias 如何处理
- 比赛提问: 具体做的内容; 为什么采用xgb
- 介绍一下GNN推荐 以及它是否可以落地
- 代码题目:
- 给定一个不包含重复数组的整数数组, 和一个目标数字target; 返回能够构成target的数字组合; 数字可重复使用; 但最后的结果不能有重复的组合。 回溯法完成即可
HR面
蔚来-电池
一面
项目介绍: 推荐
提问:
- gbdt与xgboost的差异
- gbdt与rf的差异
开放问题:
- 电池包工况曲线构建: 聚类
- 聚类方法有哪些: dbscan与kmeans的区别
二面
- 项目介绍: 推荐
开放问题:
- 异常点检测如何做?
- 方差的作用
三面: HR面试
vivo-广告
一面
- 介绍FM及其变形
- 介绍FM与DSSM区别
- 介绍数据处理: 样本构建(正负样本) + 数据流 + 离散化处理 (分桶)
- 介绍一个熟悉的模型
- 熟悉SVM么 (不怎么熟悉)
https://zhuanlan.zhihu.com/p/270298485
- 其他: C++中的虚函数的作用
二面-HR
- 个人优势与劣势
- 个人职业规划
- 期望薪资
- 最突出的个人评价