阿里云面试&&笔试回忆
笔试部分:
提交完简历后要求做一个60分钟的人才测评,测评挺奇葩的,全是选择题,每道题60s,大致是阅读理解,图表题,人格测试,感觉这一部分较水,我做的也比较水,感觉像在测IQ
之后要求做一次笔试,测试时间大概是晚上七点到八点,当时收拾行李直接翘了半小时(雾),七点半左右才记起来。一共两道题,每题50分,期间录屏+摄像头+手机锁。第一题是放卡片题,大概是leetcode 1411.给N*3网格涂色,不过题目变了变,大差不差。第二题是leetcode.1396设计地铁系统,两道题都是medium,我也都没有写出来😂😂😂,之后就是跟着阿里的招聘系统等通知了。
面试部分:
面试一开始约到周六,但是好像没有沟通好,这周周四才打过来。开始先介绍了下阿里云的业务,主要面向健康码啥的,然后要求介绍下自己的work,当时没啥准备,有点紧张,可能是看我比较菜简历没啥问的,直接开始问模型细节
模型细节描述:
- 从transformer框架开始,首先要求说一说大致的模型描述,我回答的是transformer框架是一个encoder-decoder模型
- 句子输入embedding之外还有其他东西吗,这里自己顿了下,想了想答的是positional encoding。不然会抛弃序列关系成为一个词袋模型
- 然后问了个embedding矩阵维度在模型中的变化,这里我有点记不太清了,在面试官的导引下才回答出来
- 然后问了下Q,K,V的作用,怎么得到的,(参数矩阵W^Q,W^K,W^V),这里又问了下Q,K,V的参数矩阵的维度
- 问了下attention机制,attention函数中的根号dk是干嘛的(回答的score归一化),然后问了下除了self-attention之外还有其他的attention机制吗,这个真有点回答不上来,只记得邱锡鹏的书上说过这个,好像是和softmax相关的,最后面试官给我大致讲了下scale dot production attention和multi head attention(这个知道但是没有想过这个和self attention的关系。。。),然后问了下多头注意力机制是如何把多个注意力连接的,这里也是问的矩阵相关的。
- 问完transformer(可能是我太菜了问不出啥)然后让我分析了下word2vec,我就从Bengio的2003的那篇著名的论文开始分析起,讲了one hot vector到embedding,如何由稀疏性矩阵到稠密矩阵,以及解释了下嵌入的含义,可能是我讲的有点冗余,面试官直接打断问我embddding的方法有哪些,我答的是CBOW和skip gram,然后中间让我具体讲一讲怎么做的,当时这里我卡了下,只说了个大概,可能是面试官自己也觉得刁钻了,后面转换问题问我embedding有啥优化方法,这里刚好是前几天看到过,回答的是负采样和分层softmax,然后问了我怎么分层softmax,这里其实就是类二叉树搜索,比较简单。
- 然后还问了下lstm是否有存在的必要,GRU和lstm的区别,这些也是常见的模型,回答的还比较顺利。顺着这个问了下梯度消失和梯度爆炸,实际上就是链式法则的缺陷?然后问了下RNN减轻梯度爆炸的措施有哪些,这里感觉回答的还行,应该是自己进入状态了。还问了下归一化的意义,我这个直接告诉面试官我记得andrew有一个特别漂亮的说明,但是我有点记不清了,面试官表示理解(你就是菜)
- 最后是我问他问题的环节,主要问了下会做什么业务,这些就没必要分享了。
总之,面试有点硬核,被追着问了一个多小时,总体感觉自己有点差强人意,面试官也在最后给我约了下周的coding面试的日程。祝leetcode找实习的各位offer多多!