Vivo算法面经秘籍
《AI未来星球》陪伴成长的人工智能社群,价值过万的各种内部资源及活动,限时特惠中,点击查看。
求职跳槽福利:为了便于大家求职、跳槽的准备,大白将45家大厂的面经,按照知识框架,整理成700多页的《人工智能算法岗江湖武林秘籍》,限时开放下载,点击查看下载。
面经整理历程:经过一年多的努力,大白整理了超过3500篇,各类大厂的算法面经资料。
并将涉及到的知识点,按照知识框架,分类汇总,每个公司整理成一篇,比如本文的Vivo面经。
大家对照面经,可以了解心仪的公司,会根据你的简历,问哪些知识点?便于大家对掌握的知识,进行回顾梳理。
希望为大家在求职或者跳槽的道路上,提供一些帮助,为大家取得心仪的offer助力。
面经整理心得:大白也将整理所有面经的心得,写成了一篇文章,点击查看心得。
其他大厂面经:国内其他大厂的面经汇总,点击查看目录。
Vivo面经整理:江大白
1 Vivo面经汇总资料
1.1 面经汇总参考资料
① 参考资料:
(1)牛客网:Vivo面经-61篇,网页链接
(2)知乎面经:点击进入查看
(3)面试圈:点击进入查看
② 面经框架及参考答案:
(1)面经知识框架:点击进入查看
(2)面经参考答案:点击进入查看
1.2 面经涉及招聘岗位
(1)实习岗位类
【NLP算法实习工程师】
(2)全职岗位类
【图像算法工程师】、【语音算法工程师】、【广告推荐算法工程师】、【nlp算法工程师】、【芯片算法工程师】、【机器学习算法工程师】、【vivo提前批图像算法工程师】、【深度学习算法岗工程师(互联网方向)】、【广告推荐算法工程师】
1.3 面试流程时间安排
PS:以上流程为大白总结归纳所得,以供参考。
1.4 Vivo面试心得汇总
★ 建议把项目仔仔细细过一遍,涉及到的一些常见的概念,算法和原理(特别是你提到,用了的)一定要弄清楚。
★ 面试官对于面试者之前做的东西挺重视的,毕竟能从中问你很多问题。所以对自己做过的东西一定要很熟悉,很清楚。如果你做的东西不是很多,那做过的那些一定要连细节都很清楚。
★ 总体感觉,不是很难,基本第一面都是基于项目来问,都是比较基础的问题。
2 Vivo面经涉及基础知识点
2.1 图像处理基础
2.1.1 讲解相关原理
● 知道哪些噪声,图像降噪的原理?分别怎么处理?
● 知道哪些传统的降噪算法?哪种滤波器不会影响图像边缘?
● 高斯滤波器?
● 边缘检测算子,canny梯度幅值如何计算?
● 彩色如何变灰度?
2.1.2 手写算法代码
● 写傅里叶变换?
2.2 深度学习:CNN卷积神经网络方面
2.2.1 讲解相关原理
2.2.1.1 卷积方面
● 卷积的物理意义是什么?
● 图像感受野怎么结算?感受野的意义与公式?
● Dropout的工作机制,Dropout在训练过程如何使用?
2.2.1.2 网络结构方面
无
2.2.1.3 其他方面
● 问了下常用的深度学习模型,以及框架最重要的组成部分?
● 简单叙述卷积神经网络前向传播和反向传播过程?
● 一个模型的bais和variance的具体定义是什么?bais和variance哪个比较重要,为什么是trade-off?bais开始的时候很大没问题,为什么开始的时候variance也很小?
● 训练网络时有没有出现梯度爆炸?解释一下梯度弥散和梯度爆炸,如何解决。
● 梯度消失怎么解决? 为什么会梯度消失?
● 神经网络初始化能等于0么,为什么?
● Mini-bach的作用?
2.2.2 公式推导
● 画了一个神经网络,给了一个输出,让求输出对一个w权值的导数,求完导之后问这个输出和这个w有没有关系?其他输出和这个w有关系吗?
● 写一下softmax的公式?
2.3 深度学习:RNN递归神经网络方面
2.3.1 讲解相关原理
● RNN为什么梯度爆炸?
● LSTM的改进点有哪些?
● 叙述一下LSTM三个门,为什么用LSTM,LSTM可以用什么代替?
● sigmoid函数对每个门的作用?
2.3.2 手绘网络原理
● 写一下LSTM的公式(给他画了流程图)
2.4 深度学习:CNN&RNN通用的问题
2.4.1 基础知识点
无
2.4.2 模型评价
● 评估指标、在AUC值大时,Log损失也大。请问可能的原因?
● 问采用什么评价标准,F1和P、R值相比有和不同?
2.5 传统机器学习方面
2.5.1 讲解相关原理
2.5.1.1 数据准备
无
2.5.1.2 特征工程
① 特征降维
● 问LDA的原理,应用方面?我就说它是让数据经过映射之后使类间的距离最大化,类内的距离最小,可以应用在分类跟降维。
② 特征选择
● 项目中特征工程怎么做的,从数据流到模型建立?
● 特征工程有什么常用的方法?
2.5.1.3 有监督学习-分类和回归方面
① 分类回归树(集成学习)
● Xgboost和随机森林各自的特点,差别?分析他们的不同?
● bagging 和 boosting 的区别和异同 ?
A.基于bagging:随机森林
● RF和GBDT介绍,RF在属性的随机采样是有放回的还是不放回的?
B.基于boosting:Adaboost、GDBT、XGBoost
● RF/XGboost/GBDT区别,树模型如何处理缺失值和连续值,模型融合stacking?
● 讲一下GBDT和xgboost的区别?
● GBDT+LR
② 逻辑回归LR
● LR的极大似然函数是凸函数吗?
● 逻辑回归有什么特点?如果使用逻辑回归,你是如何提升模型性能的?
● LR讲一下?
③ SVM(支持向量机)
● SVM与LR的区别?
● 为什么SVM做二分类的效果很不错?
● 给我讲一下svm的流程,不要背书,我看得出来哦。 损失函数是什么,w的二范式是做什么的,什么是拉格朗日对偶,需要满足什么条件,为什么要求对偶问题?如果是非对偶的情况呢?
2.5.1.4 无监督学习-聚类方面
● 讲一下k-means的原理以及过程?
● K-means聚类这种方法一定会收敛嘛?如果不收敛,你怎么办?
2.5.2 手推算法及代码
● 手撕SVM
2.6 深度学习&机器学习面经通用知识点
2.6.1 损失函数方面
● 逻辑回归的损失函数是什么?
● 逻辑回归为什么不用MSE做损失函数?
2.6.2 网络优化梯度下降方面
● 除了梯度下降还了解什么优化算法?牛顿法和拟牛顿法,拟牛顿法的原理以及优势?
2.6.3 正则化方面
● 正则化L1和L2的原理以及适用场景?
● L1和L2范数各有什么特点以及相应的原因?
2.6.4 过拟合&欠拟合方面
● 如何解决过拟合、欠拟合?
2.6.5 其他方面
● 机器学习和深度学习的区别?
3 Vivo面经涉及项目知识点
3.1 深度学习:CNN卷积神经网络方面
3.1.1 目标检测方面
● 画具体的faster rcnn网络结构,然后让具体介绍rpn,fpn网络?
3.1.2 超分辨
● 知道哪些超分辨率算法?
3.2 深度学习:RNN递归神经网络方面
3.2.1 自然语言处理NLP
① Bert
● Bert的未登录词怎么处理?
● Bert的残差网络在哪用到的?
● 问一下你对bert的理解,bert和transformer什么关系, bert的位置编码和transformer有什么不同,为什么有这样的不同?
● bert为什么需要多头, 为什么bert有12层encoder, 如果是QA问题,你知道该如何调整encoder的层数吗?
● 知道self-attention吗,讲一下。 如果bert中去掉self-attention层,还可以拿到词嵌入么,为什么?
● 知道albert么? 讲一下albert的两个改进,对计算量有影响么,为什么?
② Transformer
● Transformer用的是哪种attention机制?
● 画一下Transformer结构图
③ Attention
● Self-attention的Query,Key,Value分别是什么。乘积是什么和什么的Query和Key相乘 ?
● Slef-attention的乘法计算和加法计算有什么区别?什么时候乘比较好,什么时候加?
● 多头注意力机制的原理是什么?
④ HMM隐马尔科夫模型
● HMM具体怎么做的?
⑤ Word2vec
● Word2vec具体怎么得到词向量?
● 问Word2vec,为什么没有预训练,word2vec和bert的区别,和ELMO的区别?
● 简历中写了word2vec,问了很多很细的问题
⑥ 其他
● 有没有做过命名实体识别,CRF了不了解?
● 讲一下CTC的原理、CTC在测试的时候怎么搜索的,两种方式?
● 基于项目,讲一下基于WFST的静态解码网络的语音识别流程?除了GMM-HMM,你了解深度学习在语音识别中的应用吗?
● 给了一个场景,求短文本语义相似度
● 文本的数值化方式,例如:TF-IDF、BOW、One-Hot、分布式的表示方式(word2vec、Glove)等?
● 问kaggle情感字段抽取具体是怎么做的,用什么模型,如果句子中出现多个情感字段,怎么解决? 如果使用lstm+crf,当成序列标注来做可以吗,有什么优劣势?
3.3 强化学习
无
3.4 机器学习方面
3.4.1 推荐系统
● 你了解过最新的推荐算法有哪些?推荐系统的LFM是什么?解释一下。
● 介绍了一个CTR项目,针对项目提问题,特征选择,特征工程,随机森林是怎样重要筛选特征的?
● deepFM和wide&deep有什么区别?wide&deep是什么样的结构?(补充:你在使用deepFM的时候是如何处理欠拟合和过拟合问题的?)
● FM(factorization machine)模型的公式写一下,模型解决了什么问题?
● 手写deepfm算法,说明网络结构设计的思路,以及为什么这么做的好处?
4 数据结构与算法分析相关知识点
4.1 数据结构与算法分析
4.1.1 线性表
4.1.1.1 数组
● 有序数组的二分查找(重复数字返回第一个),二叉树相加,是否子结构?
● 给你一个数组,让你把零全部挪到数组末尾,并且不改变元素的相对位置?
● 两个数组公共元素最大值?
4.1.1.2 链表
● 手写反转链表
● 如何判断单链表中是否有环?
● 什么是链表,循环链表和链表的区别,循环链表在生活中的例子?
● 输入一个sorted链表,删除其中重复的值,return更新之后的链表?
4.1.1.3 字符串
● 在字符串abc求其所有顺序排列 null,a,b,c,ab,ac,bc,abc?
● 给你一个字符串,让你写出所有元素的组合?
● 求一个字符串的所有子序列?(字符串如果有重复字符,只取一次子序列)
4.1.2 树
● 二叉树知道吗,二叉树搜索时间复杂度?和什么有关?
● 求树的深度
● 怎么获得一棵完全二叉树的最后一个结点,时间复杂度,空间复杂度?
4.1.3 排序
● 手撕归并排序
● topk,我给他写了快排的,推了一下快排和堆排的时间复杂度?
● 给了一个栈,里面元素乱序,给了一个相同大小的空栈,和一个变量的位置,让写一个程序对这个进行排序?
4.2 算法思想实战及智力题
● 找出小于n的所有质数:筛选法,时间复杂度O(nlogn)?
● 最长递增序列
4.3 其他方面
4.3.1 计算几何
● 傅里叶变换推导?
4.3.2 概率分析
● 6位数字的8位数码管显示的数字,倒过来看和以前相同的概率是多少?
● 8支球队循环赛,前四名晋级。求晋级可能性?
● 有100亿个email账号,来一个新账号,先查找是否存在,如果不存在就插入,如何做使得效率最高?允许一定的查找误差率。
4.3.3 其他
● 输入n,输出小于n的所有质数?
4.4 Leetcode&剑指offer原题
● Leetcode 56
● Leecode 189
5 编程高频问题:Python&C/C++方面
5.1 python方面
5.1.1 网络框架方面
● tensorflow数据怎么加载到网络里面?
● tensorflow session 是怎么实现的?
● tensorflow如何数据读取?
5.1.2 基础知识
● dic和list的区别,为什么遍历dic时间复杂度是O(1)
5.2 C/C++方面
5.2.1 基础知识
5.2.1.1 内存相关
● 变量的内存存储在什么地方?
5.2.1.2 讲解原理
● C++构造函数的作用,什么时候用?
● 析构函数的作用,析构函数要什么形式,为什么要虚函数?虚函数的作用?
● 面向对象的特点,多态是什么意思,怎么实现?
● 静态变量,静态局部变量?
● C++基础,static和数据段?
6 操作系统高频问题:数据库&线程&常用命令等
6.1 数据库方面
无
6.2 操作系统方面
6.2.1 TCP协议相关
● TCP和UDP的区别?
6.2.2 线程和进程相关
● 线程有了解吗?
● 线程和进程的区别,如何实现多线程?
7 技术&产品&开放性问题
7.1 技术方面
● 只有正样本,没有负样本?怎么解决
● 场景题:有很多数据,它们是以向量形式存储的,怎么把它们自动的进行分类?(聚类)
7.2 产品方面
● 项目中的用户画像你们是怎么做的,怎么分析的?
本文由 大白智能 作者:凯哲 发表,其版权均为 大白智能 所有,文章内容系作者个人观点,不代表 大白智能 对观点赞同或支持。如需转载,请注明文章来源。