你好 百度——你好 NLP

昨天在四号线上手机上网时发现百度的状态已经变成了“三面已通过”,在感叹百度做决定的效率之高之余,心里的一块大石头也落地了,毕竟这是第一个实习offer(虽然offer还没到手--),而我打主意去的公司也就剩下百度的和有道了,关于公司的选择一会儿在三面的时候我会提到,所以还是有一定压力的。好在从笔试到三面一路下来,除了时间上跨度比较远——大概横跨了快一个月,其他方面还是比较顺利的,甚至可以说是幸运的。

7号笔试的时候是在清华管院,我大概扫了下名单,发现最差的学校也是北京理工大学,果然百度的要求还是挺高的。然后看了下自然语言处理方向的人数,总共大概才60人,不知道其他考场还有没有,但是相对于其他方向肯定算是比较少的,最后录取的人数应该也蛮少的,心里难免有点担心,不过自己确实对这个方向比较感兴趣,这学期也做了很多这方面的学习,即使最后真的去不成,好歹也可以了解下自己目前的水平和需要改进的地方。笔试的题目没什么好说的,比腾讯的难一些,全是大题:第一部分是C的语法、计算机网络和设计模式,除了设计模式比较熟悉外,前两个都不太确定了,按照印象写的,回去却发现网络那个居然写对了,确实运气不错;第二部分是两个设计题,一个给出算法思想,一个给出准确代码,也不算太难;第三部分有点难度,涉及到了海量数据的存储和查询的系统的设计,要考虑很多因素,这个我考虑了很久,最后想的也不是很清楚,只是尽量的把自己觉得合理的一些策略或者机制写了下,但是距离一个比较完善的系统还很遥远,所以考完之后觉得不是那么理想,也考虑过笔试都通不过的可能,不过觉得前面还做得不错,而且一般来说笔试不会涮很多人,所以对进一面还是比较有信心的。

从笔试到一面这段时间是最难熬的一段时间,虽然对自己很有信心,但是眼看周围的人都通知了,而自己却完全没消息,难免会有一些动摇和沮丧,好在我知道的其他自然语言处理方向的人也都没有通知(不过后来发现北邮已经有一些同学获得了通知),略感欣慰。17号,一面的通知终于来了,这时候距离笔试已经10天了,因为第二天有考试,所以定在了19号——星期四,从一面开始的三场面试就比较有规律的,一星期一场,都是周四下午。
         19
号一面的面试官是一个很阳光的帅哥,大概只比我大三到五岁,整个面试的风格都很nice。面试开始的时候问了很多关于我们学院的情况,应该是为了让我放松情绪吧,然后让我介绍下自己。自我介绍我准备的还是比较充分的,先提了下本科的一些基本情况,核心课程什么的,然后重点突出了这学期的信息检索和数据挖掘课程,并说明自己对相关领域有很强的兴趣,在课下也做了一些工作,当我提到我最近在翻译隐马尔科夫模型的一些国外的入门介绍的时候,帅哥面试官也表现了很强的兴趣,首先问了一句“你知道隐马尔科夫模型?”,可能更多的是确定刚才没听错,我只好说自己目前是入门水平,尽量回答他的问题吧,这个绝对不是谦虚,确实是因为是刚开始接触。然后他就问了如果用隐马尔科夫模型来进行词性标注,即如何知道“百度大厦”这个百度是名词还是动词,这里显然是名词,但是在“百度一下”中百度就是一个动词,然后我就结合刚学习的隐马尔科夫模型,把百度这个词作为一个可观察的状态,百度的词性作为一个隐藏的状态,和他讲了在这个应用下转移矩阵和混淆矩阵以及马尔科夫假设等,虽然说到最后我都觉得词性标注可能用隐马尔科夫不是很合适,尤其是混淆的概念不是很合适,但是基本上还是把隐马尔科夫模型说的比较清楚了。他也比较满意,然后问了下一个变形,即把马尔科夫假设进行了扩展,然后让我考虑,我说了很多,思路也不是很清楚,最后他提示我讲的可能太深了,他需要的只是一个条件概率公式,我果断写了下,他点点头,然后看了下时间,发现已经过了四十分钟,于是决定再给我出两个问题,一个是海量数据处理,这个我之前准备的也很充分,很快的就给出了一个解答,他想了想就说了两个字“可行”。第二个是两个树的结构的比较,我先给出了一个递归的朴素的解法,然后提出了从树的结构信息方面进行优化的思路,他觉得还行,然后又把问题引入了怎么比较两个很长的字符串是否相同的问题上,我一看,果断说了哈希。然后他说你这里说的应该是全文哈希吧,我一听,自然说,如果数据比较大并且允许一些误差,可以使用采样哈希,n-gram等等,然后他笑着说“我发现你的思维跳跃性很强啊,我一否定一个思路,你就能立马给出一个完全不同的想法”,我不好意思的说“可能我的想法比较多,但是思维不是很连贯”,他大笑道“没事,你懂我懂就行了”,然后我知道一面基本上可以确定过了,后面的就是一些不是很重要的问题啦,实习时间啊什么的。

一面当天晚上就出结果了,不出意外的通过了,这对自己的自信心的提升也有很大的帮助,至少感觉不是那么遥远了。二面定在了26号,刚好距离一面一个星期。二面的面试官看上去就比较犀利,上来就直接出了几个自然语言处理方面的问题。第一个是多音字注音的问题,这个刚好和我之前在信息检索课上面听到的多意字词意消歧的思路是一模一样的,于是我就给出了一个分类的机器学习的方法,分类的特征主要是词的上下文,也就是窗口内的其他词,这个方法的思路应该是没问题的,最后他让我给出一个比较好的窗口大小,我给出了正负2的范围,稍微解释下,就过了。第二个问题是让我介绍下我在简历中说的分类,聚类和频繁模式挖掘的项目,这个自然是我的长项,因为项目确实是很认真的做了,而且之前刚好数据挖掘考试,也把整个思路又重新理顺了一遍,所以这时候思路就非常清晰了,包括朴素贝叶斯的公式的意义、频繁模式中支持度和置信度的统计方法、关联模式的确定。第三个问题和刚才的频繁模式有点关系,要求在海量的query中找到某些经常出现的模式,也就是找到某些经常同时出现在一个query中的term,这个和刚才的频繁模式有点像,但是先要做一步频繁term的排序,取top k的频繁词,然后再按照刚才的思路做,海量数据找top k的思路我也有准备,所以答得也还算顺利。最后一个问题有点波折,是问怎么求两个query的相似度,我开始的思路局限在了VSM模型上,提出了很多改善的方法,但是都被他一一否定,最后他提示了一句“求query的相似度不一定非要用query本身啊”,我恍然大悟,想到了之前在Croft的书上看到的搜索结果的反馈机制,于是遍给出了利用query结果文档来计算相似度的思路,他直接说没什么问题了,以后会有人联系我,然后我回到寝室一看,状态已经改了,效率比上次还高。

三面是在2号,这次是自然语言处理部门的经理,看上去也很年轻,当我介绍到自己是保送的时候,他立马说了句你应该很强吧,我当时脑袋上就有面条了==。后面的话他主要是问了我一些对自然语言处理领域的了解,为什么选择百度这个公司等等,这些问题自然不在话下。我觉得有点意外的是他问我投了几个公司,我说三个,腾讯投的技术研究,今年就招了一个悲剧了,还一个网易没通知,然后我又附带的说了下没打算投国外的公司,因为还是想做一些创造性的工作,在外企可能很难接触到核心的东西,永远是流水线的一颗螺丝钉,他对我想做创造性的工作的想法貌似很满意,然后问我具体想做自然语言处理的哪块,我自然说是搜索引擎和自然语言处理相结合的领域,毕竟这个学期的做的一些东西,看的一些论文也都是和这个相关的。然后又问了我的职业规划,我说三年之内注重积累吧,三年之后希望能在团队中起到比较关键的一个作用,然后就扯到了北京的压力上去了,这个当然也很好回答。最后,他说没问题了,我一看表才二十多分钟,就问了一下自己进去之后可能会做的工作,然后又聊了会。在四号线上快到的时候,我突然想起来可以手机上网查下状态,然后就查了下,发现已经改了,确实是一次比一次效率高,然后果断分享了这个好消息。

总结了这持续了一个月的面试经历,最重要的应该还是兴趣吧,确实是对这方面感兴趣,所以才敢于尝试,想知道自己目前是个什么水平,还需要做哪些工作;因为感兴趣,所以才会去坚持旁听信息检索的课,正是这个课给我打好了这个领域相关的基础;因为感兴趣,所以才会自己课下买一些英文的原版书、看一些国外的论文,去了解这个领域最新的一些进展,这些都在我回答问题的时候给了我很多的思考角度的帮助。当然除了兴趣,还要有充分准备,尤其是一些常见的面试题,比如说海量数据的处理啊,就是高命中的题型,另外自己在做项目的时候,一定要认真,因为面试官会对你简历上写的项目深度挖掘,如果你在某个项目中只是打打酱油,最好不要写上。

最后想说一句,这只是一个新的开始,我十分期待在百度的实习,因为我就像一个海绵,需要汲取各种知识,在自然语言处理这个领域,我还刚刚上路。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页