博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
腾讯算法实习岗一面--面试90分钟感觉身体被掏空
阅读量:2095 次
发布时间:2019-04-29

本文共 2586 字,大约阅读时间需要 8 分钟。

腾讯算法实习岗一面

  这个面试官一上来就给人很和蔼可亲的感觉,先简单的闲谈了几句,让我瞬间放松了不少,然后就是从简历入手,问了一下之前的实习经历,然后让我自己讲解一下项目,我从数据清洗、特征选择、模型构建一路讲了下来,中间还是因为紧张有点卡壳,但是面试官都说没关系。

  对项目做了简单了解后开始提问,第一是项目中对于不平稳序列是如何做随机性处理的,这个之前确实没接触过,没答上来。然后问我是如何评估模型的效果的,答由于数据值比较大,所以使用的MAPE和R2_Score进行的衡量。然后问你觉得该项目中还有哪些可以优化的点,刚好今天阿里的HR在跟我沟通时让我看了一篇他们团队的论文,里面的流程跟我的有相似之处,于是我讲了一下这个,另外对于预测精度的提升也提出了一个优化方案。
  由于项目里用到了LSTM和GRU,所以让我讲一讲循环神经网络,于是我从RNN讲到LSTM再到GRU,讲了一下发展过程和它们之间的区别。面试官又问了GRU为什么只用了两个门,它的优势在哪里,我记得不太清楚了所以只回答了GRU的参数更少,所以收敛更快。然后还问了如何设置LSTM的层数,给你XX个样本,你怎么选择隐藏层数。
  接着开始了算法部分的提问,N个正整数,返回最小的K个值。答曰先排序再输出。于是理所当然的又接着问了排序算法。我说的是用快速排序,因为它的平均时间复杂度是O(nlogn),他接着问跟堆排序相比哪个更好,我在头脑风暴的时候他又提醒说考虑一下最坏的情况,于是答堆排序。他又问如果数据量非常大的情况下应该用哪种,这个我记得,归并排序在最好最坏情况下的时间复杂度都是O(nlogn)。然后终于过去了,在此友情提醒,几个排序算法的原理、时间、空间复杂度一定要记住,几乎是必考了。
  然后是一道场景题,考察的是数据结构,感觉也是经典题目了,可惜之前没怎么看这方面的内容。说QQ有十几亿的用户,请设计一个存储结构,能够快速查询两个 QQ用户之间能否通过六个以内的用户认识(六度理论)。这就是QQ现有的好友推荐功能了,我最开始理解错了题目,以为问的是查询两个用户是否是好友了,然后说使用HashMap,用QQ号作为key,然后每个value是一个链表存储着该用户所有的好友。然后面试官说这会不会出现Hash冲突,我傻乎乎的去想解决Hash冲突的方法,说进行再Hash,面试官大概是看不下去了,就说本身对如此庞大的数据进行Hash他就是不怎么赞同的,可不可以想一想别的方案。于是我还是照着错误的理解去想解决方案,说因为QQ号是存在大小关系的,所以可以用QQ号构建一颗二叉查找树,每个树节点中用链表存储该用户的好友。面试官又提示道,你用树那何不构建一个图呢,我瞬间就反应过来了,这考的是图论中的路径可达问题,但是对于如何快速在图中进行查找还是没有思路,面试官就说这是腾讯的创始人在二十年前想出来的一个策略,当然不是让你现在就达到那个水平,只是考察一下你解决问题的能力,线下再去看看好了。
  然后项目里面还用到了SVM,所以开始问SVM的问题,这方面自己研究的比较深入,也手推过,所以比较熟悉,这里推荐一下B站的一个视频,讲的相当到位: 。问了SVM的原理、为什么要将原问题转换为对偶问题,以及如何用SVM做多分类,这里我只记得为每个类训练一个分类器了,第二种当时怎么也没想起来,试探性的说用softmax激活函数,他笑了我哭了。然后又问了核函数的定义和作用,和LR的区别,以及增加数据量会对LR和SVM的边界造成什么影响。感觉SVM都被问全了,还好自己最后顶住了。
  然后开始问机器学习的基础问题,如何解决过拟合,在回答使用L1、L2正则化的时候又接着问这两个的区别,紧接着又问L1如何解决零点不可导的问题,我懵了。然后他开始想问随机森林、BGDT、XGBoost的区别,我赶紧说我就用过决策树和随机森林,面试官是真的宽容,说那你就讲讲随机森林吧,于是我讲了随机森林的原理、构建过程、决策策略。他又问,如果数据量很大,大到几个亿的时候,随机森林会出现什么问题,这个我又不知道了。然后又问了boosting和bagging的区别。
  然后是一道场景题,说有半年的用户行为数据,包括IP地址、访问操作等,其中99.99%是正常数据,只有0.001%是异常数据,如果你要预测异常行为的话要怎么处理。末了又提醒一句,就是说如何解决样本不平衡的情况,我开始还有点犯迷糊,听完这个立马就清醒了,把重采样(对小类上采样、对大类下采样)、人造数据(SMOTE算法)、改变分类算法(增加小类的权值、降低大类的权值从而使得分类器将重点集中在小类样本上)说了一遍。然后就OK了。
  接着问了sigmoid、relu激活函数的区别,relu的优势在哪,我一开始只说出了可以解决梯度消失、爆炸的问题,然后他提醒到在计算效率上呢,我赶紧说那肯定relu效率更快,因为只需要计算一个max函数就可以了,sigmoid还要进行e的指数运算。
  然后他说最近很热门的一个技术是attention,你能不能说说他的原理、应用场景,这个没有学明白,只能缴械投降。
  于是又给我上了一道场景题,说王者荣耀里有各种用户行为数据,英雄的名称、皮肤的价格等,如果让你为用户推荐要购买的皮肤你会怎么做。这又是一个自己的知识盲区,对推荐算法实在陌生,所以只能明知道他问的是推荐算法,还是只能硬着头皮想别的办法。我说可以对所有用户进行聚类,然后将该用户进行分类,然后查看同类的人中哪些热门皮肤是该用户没有的,就推荐这些皮肤给该用户。这确实是硬着头皮想出来的,只能说自己的求生欲很强,哈哈。面试官对这个方案表示不蛮满意,我就坦诚相待了,说我知道这考察的是推荐算法,但自己确实不太熟悉。然后就结束了技术聊天,到了我的反问环节。
  我说如果能够有幸进入腾讯实习的话,能够接触到一些什么样的项目,什么级别的,什么领域的。然后他说了很多,对部门的分工、介绍、以及他自己负责的内容,得知这边的业务主要是做推荐。最后我表达了对腾讯的向往之情和对他的感谢,结束了这场旷日持久战。
  这里面有七个问题是自己没回答上或回答的比较模糊的,自己一定会好好总结继续努力,然后对于大家的建议是好好学基础、好好总结项目,最后希望自己能够迎来腾讯的二面。

转载地址:http://swdhf.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】66-Plus One
查看>>
【LEETCODE】26-Remove Duplicates from Sorted Array
查看>>
【LEETCODE】118-Pascal's Triangle
查看>>
【LEETCODE】119-Pascal's Triangle II
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>
用深度神经网络处理NER命名实体识别问题
查看>>
用 RNN 训练语言模型生成文本
查看>>
RNN与机器翻译
查看>>
用 Recursive Neural Networks 得到分析树
查看>>
RNN的高级应用
查看>>
TensorFlow-7-TensorBoard Embedding可视化
查看>>
轻松看懂机器学习十大常用算法
查看>>
一个框架解决几乎所有机器学习问题
查看>>
特征工程怎么做
查看>>
机器学习算法应用中常用技巧-1
查看>>
决策树的python实现
查看>>
了解 Sklearn 的数据集
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>