某渣渣NLP暑期实习面经

某渣渣NLP暑期实习面经

写在前面的话:

  • 在介绍面经之前,还是介绍一下个人的情况吧,本人就读于某中流211,参加过一些算法比赛,比如AI研习社 “LOL排位赛胜负推测” 比赛 ,DF平台CCF“离散制造过程中典型工件的质量符合率预测”比赛等,一些比赛的名次还算不错。在学校还参与过一些论文的改进。但也是到今年三月份论文才被录用,方向是机器学习相关,这可能是我大学为数不多的谈资。(大三找实习的时候论文还在修改中,因此简历都没提到,相关面试也就没有这部分内容。)
  • 本文其实记录的是2020年春招的内容,是本人大三时候找算法暑期实习的记录,时隔一年才最终决定发出来,现在回头看看,当初自己还是挺菜的。最后在6月份的时候,侥幸收到了百度地图的实习offer。但当时考虑到许多算法岗还是挺卡学历的,于是自负地选择了放弃offer去准备考研。(结果考研内卷失败hhh TAT)
  • 现在回头看来这也算一段挺奇妙的旅程,就打算发出来记录下,也希望自己的经历可能对后人的选择有所帮助。
  • 就个人感觉而言,要想拿到算法岗实习offer,主要有以下几个方面,
    1、业界相关的比赛经历;
    2、较好的论文;
    3、扎实的算法功底和领域知识(lc300+以上,我当时刷了快400+);
    4、较好的研究生学历,一般小厂都会卡学历,大厂有些也会,也是我选择考研放弃offer的主要目的。

腾讯后台机器学习一面:

  • 过拟合是怎么判断的?
  • 过拟合的解决办法?
  • 特征工程是怎么做得?交叉特征是怎么做得的?
  • GAN生成效果怎么样?为什么GAN很难训练?用过什么样子的GAN?
  • 后续有没有考虑新的模型?是怎么考虑的?为什么要用TextCNN?

字节跳动飞书一面面经:

  • 介绍项目.
  • 数据增强怎么做的?
  • 有哪几种做法? 做
  • 的效果怎么样? (同义词替换,词删除,词序转换.)
  • XGBoost具体的算法内容了解么?算法思想有哪些?
  • LSTM解决了RNN的什么问题?怎么解决的?

代码题目:
敏感词过滤:给定字典[word, world, test, text] 同时有字符串workwordtestcardadtextext等.如何从字符串中取得对应的字典中的词.问算法的时间复杂度.(解题思路应该是前缀树,通过对字典构建前缀树去判断对应的下标是否存在对应的内容。)

字节跳动飞书二面面经 :

  • 介绍一下word2Vec内容,负采样了解吗? 怎么做的?
  • 层次softmax为什么? 怎么做的? 从根节点到叶子节点的过程是怎么样的?
  • TextCNN的运作过程?
  • TextCNN的卷积核维度?
  • TextCNN的参数维度?
  • Atteneion了解的怎么样?
  • 介绍一下BERT?
  • word2Vec和BERT的词向量为什么BERT更好?

开放题目: 给一个不知语种的文本,如何做属于哪个语种的分类?怎么做不同语种字的分词?(没有什么思路,考虑的是从字向量入手,对每一个语种的字做字向量的嵌入.用字向量的叠加来作为整个文本的向量,从而分类,采用doc2vec的方式?)手撕TextCNN.

360数据平台机器学习一面:

  • 简单介绍比赛内容.哪个平台的什么比赛,什么时候到什么时候的。持续了多久等...
  • 介绍一下GAN模型和XGBoost回归的做法,对于GAN训练困难是如何解决的。问了比赛团队分工的合作.模型融合是怎么做的。特征组合怎么选择的。是人工筛选的吗?
  • 文本比赛方面是怎么选择的模型,对于类别不平衡是如何解决的。BERT的训练时长
  • 介绍一下XGBoost和LightGBM的算法的优缺点.
  • 手撕代码:牛客网“二分简单”题分组.

阿里巴巴蚂蚁金服一面:

  • 自我介绍,介绍项目.
  • 有没有对分类错误的一些语料进行查看什么的.对于那些语料有没有考虑怎么采用方式进行改进.(扩充数据量?)
  • BERT模型怎么做的?大致的网络架构是怎么样的?BERT模型对防止梯度消失优化是什么?
  • LSTM和BERT模型有什么区别?简单介绍一下你理解的优化器?SGD的优点是什么?(对于梯度的要求很低,计算比较快)
  • 介绍GBDT算法的原理,介绍对应的LightGBM的对于XGBoost的一些优化?

代码题:
给定列表[1,4,2,5,2,3,1],列表中每一个数字是可以移动的台阶数,如何用最少的次数从上完所有的台阶?(隐约觉得是lc原题,但不记得是那题了.用的动态规划解题.要改进但是我没做出来.)

阿里巴巴蚂蚁金服加面:

  • 自我介绍,项目介绍。
  • 简单问了一下XGBoost和LightGBM的算法的差异性。
  • 开放题目:如何对爬虫收集到的文本数据判断对应的主题?
  • 怎么做一个特征筛选?XGBoost是怎么预防过拟合的?
  • 问了一个python中如何去除列表中空字符串。
  • 反问。面完就感觉自己凉了。。。。

好未来AI算法优化一面:

  • 自我介绍,项目介绍。
  • 介绍一下word2Vec模型,对于其中的窗口选择策略?窗口选择5,10,15都有什么区别吗?是不是越大越好呢?项目中的一些调参的方法是怎样做得呢?
  • BatchSize设定的大小都有什么关系吗?越大的BatchSize就越好吗?
  • 了解TensorFlow吗?
  • 对于神经网络的本质是怎么理解的?(完全懵比,应该从一个问题的最优化的层面来介绍。然后给我介绍了从函数方面的理解。意思上比较像是引导我说对应的)
  • 是否了解一些模型加速和优化的策略?(讲了知识蒸馏)为什么要用大模型训练了再采用小模型进行训练呢,反正不都是需要最后训练大模型么?(也不知道是我不懂还是面试官不懂了,反正我懵了)
  • 介绍一下TextCNN的模型。
  • 讲一下线性模型和非线性模型的区别?
  • 了解强化学习吗?对强化学习的理解程度有多少?强化学习和普通神经网络间有什么差别?层次聚类是怎么做得?背景是什么?

京东算法一面:

  • 自我介绍,项目介绍.
  • 介绍LSTM模型,
  • 介绍LSTM对RNN模型的改进.
  • RNN存在什么的问题?
  • LSTM对比BERT有什么区别.
  • 介绍一下Transformer.
  • 你认为Transformer同LSTM这些有什么区别和关系?
  • 比赛对应的评价指标? F1指标是怎么计算的? 了解对应的ROC曲线吗? 怎么计算对应的ROC曲线?
  • 还认识什么机器学习的模型? SVM中的松弛化是什么? 支持向量是什么?常用的核函数有哪些?怎么选取?

代码题目:

  1. 两个链表找对应的相交点(做了哈希和双指针,叫写更低复杂度的没写出来.)
  2. 最大连续子数组和(写了前缀和和动态规划的做法,但dp思路不清晰.)
    反问,问一些面试的改进啥的,交流了一些对应的知识都是怎么学的,为什么不读研啥啥的.

百度算法一面:

  • 自我介绍,介绍项目.问了一下合作分工这样.(侧重于基础内容)
  • XGBoost和LightGBM的差别?
  • word2vec是怎么样的模型?
  • 负采样是怎么样的?
  • CNN和DNN的参数计算量差别?
  • 进程和线程的差别?
  • C++多态? 底层是怎么实现的?(猜猜不知道是不是泛型,总之8会.)

算法题目:

  1. 给定对应的字符串列表,对字符串列表中的内容进翻转.
  2. 快速排序. (面试官嫌我前一题用了python的特性就写了两行,又叫我写快排.结果一下子没有撕出来,但是给面试官讲了我的思路,估计我的思路他没见过就整个人显得很惊讶hhhh.危险过了算是.)

百度算法二面

(侧重于知识和业务拓展方面。)

  • 自我介绍,介绍项目
  • 大致问了怎么做的?
  • 项目中的A,B,C类参数是一个什么样的关系?
  • 有没有看过别人的冠军代码这样.问了一下具体的项目分工这样.
  • 介绍一下LSTM和TextCNN和BERT这些模型这样子.
  • 问了GBDT 和 XGBoost和LightGBM的大致改进.
  • 问了解信息抽取吗?(撞我枪口上了吧!哈哈,拿着NER给它大讲了一通.)后来问用BERT+LSTM+CRF的训练数据大概要多少?会存在什么问题吗?

算法题目:根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。
例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。(单调递减栈)
反问.

百度算法三面

(一看就是真大佬,透露着一种智慧的气息.也是唯一一个我还没介绍就叫我名字的.这一面更侧重于整体的个人学习及思路吧.)

  • 自我介绍,挑项目介绍.
  • 为什么选择模型的一个大致思路? 具体问了问我CRF(几个月前做的记不清了,大致讲了一下.)了不了解百度对BERT做的一些改进?(暗指ENRIE模型).个人在实际中遇到的一些困难,是如何解决掉的?
  • 对个人的职业规划是怎么样的?
  • 最近有没有学习什么的?排序和推荐的对应的理由是什么?有没有接触过对应的一些spark,hadoop这样的大数据工具.
  • 反问.

华为算法一面:

(双管齐下的面试官,一个负责算法一个负责开发部分.开发面到自闭,也更提醒简历的重要性.)

  • 开发面试官问我了解python协程方面的内容吗?
  • 数据预处理也用的python吗?
  • 是否用过协程?
  • 看到你OS写得92分,介绍一些操作系统的内存调度算法? 了解进程的三个状态吗?(开始怀疑我的操作系统.)
  • 算法部分倒是没什么问题.常规的问了LSTM,word2Vec,BERT,TextCNN等模型内容,
  • 因为面的语音方面,可能更关注到了HMM的模型等, 问了HMM的改进模型有哪些?
  • HMM是一个独立考虑的模型,有没有对应的能考虑全局的模型?(????)
  • 写代码的时候共享屏幕被看到的SVM的内容,又问了问SVM是怎样的模型.

手撕代码: 给定数组,其中有n个数字, 数字的数目在1到n-1这样. 找到出现两次的数字.
(就用了hash表做..犯了一个很脑残的错误,然后被指出来了...然后也不知道是不是问改进,总之听不清,感觉面华为还是得准备对应的计算机基础的内容,包括OS,计算机组成原理等等.)

华为算法主管面:

(主要是考察一些个人内容.面试官显然不是很懂具体业务内容....)

  • 询问一些地域的考虑,家是哪里的.自己的职业规划是怎样的.
  • 怎么学习研究?
  • 怎么看待华为公司?
  • 有遇到什么问题? 是如何去解决的?

58同城NLP实习生一面:

  • 介绍一下项目.了解过一些更优化的模型吗?如ALBERT,XLNet等.
  • 介绍一下BERT的三种的embedding的输入.
  • transformer的position embedding和BERT的position embedding的区别.
  • 对于数据类别不平衡的一些解决的办法,如何从损失函数的层面去考虑。
  • 了解seq2seq吗?有没有用过对应的transformer进行对应的使用项目?
  • 手推LR,能不能从最小化损失函数的角度介绍介绍?有没有了解过LR是服从什么的分布?有没有了解损失函数的层面,有没有了解交叉熵.SVM过程大致介绍一下.SVM如何实现多分类
  • 统计学的怎么样?怎么看待数学的?
  • 反问.

58同城NLP实习生二面:

  • 主要是项目相关,更像是聊天。

58同城NLP实习生三面:

  • 问我项目的内容及分工,
  • 询问大致的思路, 询问对应的问题的难点.
  • 询问
  • 问我找最大的数字,找第k个最大的数字.(topk啊,堆栈分桶啊,臭***指我自己.)
#实习##面经##算法工程师##腾讯##字节跳动##360公司##阿里巴巴#
全部评论
感谢同学分享的面试经历~100元京东卡已经在路上啦~😉  ----------------------  邀请大家参加春招面经征集活动呀~ 写面经,攒人品,领100元京东卡、牛客周边! 活动详情:https://www.nowcoder.com/discuss/611293
点赞 回复 分享
发布于 2021-04-26 14:52
收藏比点赞多是为什么呜呜呜😅
点赞 回复 分享
发布于 2021-04-25 16:10

相关推荐

面试官人很好,态度和蔼可亲,没答出来时也会引导你去思考。由于是晚上面的,导致我白天一天都有点紧张,面的时候状态也不是很好,正常可能面试官提问完应该思考几秒再答,而我就像抢答一样一口气把所有会的都说出来,这样就导致逻辑比较混乱,东一句西一句的。首先是自我介绍,先把会的技术大致讲一下,由于我八股背的多所以着重讲了一下,Java,go,jvm,MySQL,Redis,计网,操作系统这些,然后一小部分闲聊,然后先问了一下项目,面试官问我这个项目是否落实之类的,直接坦言说是写的练手的,包括之前也写过IM通讯,外卖之类的。然后面试官就把提问的重点放在了八股上。先问了Java:类加载器(答:3种+自定义类加载器、tomcat、原因+双亲委派+好处)JVM参数(答:xmx,xms,newsize这些,问我是如何设定的,我回答是把内存分一半给堆,再把堆分一半给新生代,这方面确实不太了解)然后问了一下并发相关的:线程池(答:线程池的7个参数(忘了线程工厂和阻塞时间了),3个重要参数,还有线程如何启用,为什么要设计最大线程数之类的,提到Java栈默认分配1MB运行时不可以更改)AQS(答:先讲clh是自旋锁+list,然后是AQS在这个基础上做的两个优化,然后举了一下reentrantlock根据state如何获取资源)CAS(答:使用三个字段,aba问题,然后将通常搭配自旋锁实现,面试官问通常会自旋多少次,这个不太了解,答的100,然后问100次大概多少秒,回答微秒级,然后面试官讲了一下怎么做资源可能没用完,意识到可能还需要进行阻塞操作)然后考虑一下Linux命令(top,ps,如何使用管道符过滤线程和使用Linux启动线程没答出来)然后问Redis:持久化机制(答:三种aof,rdb,混合,aof的三个参数刷盘策略,rdb以快照保存,使用bgsave会使用子线程来保存不会阻塞,而aof虽然会阻塞但是只在写完数据后追加一条命令,不会太影响,然后是他俩的优缺点,还有混合是怎么保存数据的)集群模式(答:三种,主从复制到缺点再到哨兵机制,正常使用三个哨兵互相监督,主节点挂了投票选主哨兵然后选主节点,然后额外讲一下脑裂的问题,主节点进行数据更新然后把命令写入aof来同步从节点,最后cluster集群,如何实现,使用16383个哈希槽(艹答成16384了),先根据哈希码取余,再根据节点数取余决定放在哪个节点上,然后问了一下我会怎么选集群模式,首先是cluster的问题,会让管道操作之类的失效,然后哨兵会导致整个集群结构变得复杂,使用小项目可能会考虑哨兵,大的考虑cluster,然后考了一下cluster如果一个节点挂了怎么办,根据节点数重新取余然后数据转移,面试官说这么转移比较慢,有没有别的办法,我隐约记得使用一个类似环形数组的方式,想不起来了)然后考了一下MySQL的b+树(这方面的知识点太多了,导致我什么都想讲逻辑就比较乱,讲了一下聚簇索引,树的叶子节点对应着一张页16KB,MySQL有一个区的概念,把这些页放在同一个区中,这样叶子节点的双向链表遍历时速度更快,然后b+树的扇出比较大(非常二,说成扇度之类的,面试官以为说的是扇区)这样层数就比较小,一行1kb数据的话3层可以放心2000w数据)其他的暂时想不起来了算法是lru,面试官问要不要提示,我说写个,然后写了10分钟左右,说大概写好了,但是面试官指出了2个小错误,第一个马上就改回来了,第二个一直没看出来(大脑这时候已经停止工作了)反问:问学习建议,说根据实际的项目进行深入,考虑应该怎么做,还问了一下组里面是做Java的吗?面试官说他是做go的,组里什么语言都有,语言影响不大,连忙补充了一句我对go的底层有深入源码的学习)结束。总体感觉答得不太好,没有太体现出深度,细节也不够全面。
下一个更好呗:佬,我投完云智一直没消息,多久约的一面啊
查看14道真题和解析
点赞 评论 收藏
分享
评论
31
140
分享

创作者周榜

更多
牛客网
牛客企业服务