百度自然语言处理部(生物计算)技术面

百度自然语言处理部技术面

一共55mins,百度面试需要先下载他们的如流APP,最好是提前15min测试一下。

背景:面试自然语言处理部的生物计算,所以中间会被问到一些生物学知识。

面试官没开摄像头,听声音应该是三十岁左右,比较温和。

自我介绍

一上来就是自我介绍,主要是介绍了一下自己的基础背景和做过的项目。然后开始就项目进行问一些问题。

项目相关

  1. 项目A用的数据features有哪些?维度是多少?训练集有多大?

  2. 项目B中暑期学校时间有多长?单片机的线路怎么设计的?实验数据用什么语言处理的?

    暑期学校时间大概半个多月,单片机是买的板子,自己设计了一个电路,联了一些元件。程序是用C++写的,实验数据用R处理的(主要是做了一些标准化和比对)

  3. 项目C使用的降维方法是什么?聚类算法用的哪个?怎么鉴定细胞类型?论文最终发表在哪里?

    降维方法主要先是用t-SNE算法,后来因为数据集比较大换成了UMPA(然后这里就被怼了,面试官觉得几万个cells用t-SNE完全可以的,我解释一下主要是因为维度比较高,并表示两者其实差异不大)做了非线性降维处理,进行了可视化,然后用PCA筛选了高可变基因做后续分析。聚类算法用的是Louvain方法(给后面埋雷了),鉴定细胞类型主要是找了一个数据库,做了交叉验证。因为毕设换导师论文没发。

算法相关

这里直接第一个问题就是项目中自己给自己埋的大雷

  1. 解释一下Louvin算法?

    这里真的离了大谱,因为当时做项目的时候这都是默认的protocol,完全没有仔细去理解那个算法的过程,然后就很尴尬的表示自己对于细节不太了解。

  2. 分别解释一下谱聚类,K-Means,EM算法

    以上都是机器学习中比较常见的算法,但是我个人感觉回答得比较好的只有K-means。。。。。后面又让我简单说了下自己还会哪些机器学习的算法(主要就是决策树,CNN,RNN)

  3. 然后就是直接开编辑器写代码了

    首先是写一个递归的斐波那契数列,然后分析时间复杂度,然后把这个改成动态规划。(还好不是很难)

组学相关

百度NLP生物计算那边主要接触的数据都是组学数据,所以需要对生物学背景知识有一点了解

  1. 问我们计算基因组学那门课都学了些什么?

  2. 解释一下ChIP-Seq、ATAC-Seq?

    ChIP-Seq还好,但非常尴尬的是我把ATAC-Seq和MNase-Seq记混了,表示ATAC-Seq测出来的是染色质关闭区域(这里也被面试官纠正了,非常尴尬)。然后自己还提到了**Cut&Tag技术(主动作死)**又被面试官纠正了一次。

反问环节

反问环节我真的是作大死,我也不知道当时自己脑子为啥抽风了(可能是最近都没睡好)一上来提问就把面试官干懵了。

  1. 问面试官,你们那边工作压力如何?是不是996?

    面试完给软院同学交流,对方表示「How dare U??」确实,互联网公司都不应该问这种比较忌讳的问题,还好的是面试官虽然懵了,但还是回答了,他们团队不996,然后工作环境都还好。

  2. 我接着问了下在他们那边能够学到什么?

    面试官表示他们那边自由度比较高,每个实习生会有一个mentor带着,然后给予实践上的指导。

    最后就是问了一下入职时间,以及这个项目可以选择base上海或者base深圳,然后问了下两个地方团队的差异。