一个机器学习渣渣的首面 - 链家网(已跪)
秋招第一次面试,一面挂了也在意料之中,吸取教训,继续努力。记录一下也是为了警醒自己差得远,还得狠狠努力。
首先介绍了自己研究生期间的学业情况。
接着,面试管开始从项目问起,我简历上两个项目,一个问答系统,一个数据挖掘+推荐系统。这两个项目自己给自己挖了不少坑。
感觉面试官项目经验很丰富,技术很扎实,喜欢顺着项目一步一步往深问。
对于第一个项目,首先问了项目团队的情况,又问了我负责的部分。我回答主要是负责Query分词、同义词替换、词向量构建、Query Top K匹配这一小块。面试官从分词开始,问了包括
1)分词工具(我回答结巴),为什么要用这个(我的原因是python的话结巴上手快),采用精确模式、全模式还是搜索引擎模式(我采取的精确模式,面试官提示我不合适)
2)同义词替换的方式,词库如何建立,底层存储工具,具体技术细节
3)词向量的构建方式(这里我用的是TF-IDF);
4)词向量维数(这里感觉答得就有点问题,我凭记忆大概是2000维左右,面试官明显不是很满意),词向量距离(我用的是余弦,其实这些都很基础,也没高大上的技术),为什么要用余弦距离,有什么依据吗
这里还插了两个问题,知不知道维度诅咒(这个我真没听过,回答是不是维数爆炸,面试官不满意)
既然知道维度爆炸,那么你认为维度在多少时会出现明显的问题(这个问题连着前一个一起跪了)
5)Top K的K取几(我取的是5),为什么取5(这说实话我就是凭感觉取的,面试官明显不满意)
6)模型评价标准(我答的是准确率,如果Top5命中,采取加权的方式处理来计算准确率,面试馆直接打断我,说业界的方式是怎样的,我的这套标准有些自己YY的意思。这个确实,当时做的时候没认真地考虑各个细节)
7)模型训练集、测试集各多少,具体怎么测试,人工还是自动,怎么知道选出的Top K是合适的
第一个项目问完,感觉面试官应该已经觉得我有些水了。。。
对于第二个项目,问了包括
1)简要介绍推荐系统(我的是一个菜品推荐系统)
2)item集合多大(几百),用户多少个(3000),数据量(2000W)
3)具体技术谈一下(主要是协同过滤)
4)你的协同过滤是以用户角度还是商品角度(商品角度,因为用户相似度普遍比较低,不像社交网络)
5)协同过滤的评分矩阵具体怎么实现,评分怎么评(根据以往点菜记录,取频数,加权),加权方式(按时间权重依次递减,进行加权,面试官不满意,感觉可能加权的方式不合适)
6)你用到了xgboost,谈一下它的原理吧(扯了一下)
下面***就来了
7)为什么弱分类器组合可以提高分类能力(其实自己也知道,但现场面心态还是不一样,按照函数空间的方向答了一下。其实应该是讲偏差-方差更合适)
8)如果你的xgboost表现不好,过拟合了,怎么办,要调整哪些参数(这就是我自己给自己挖的坑,xgboost只是简单用了下,深层次并没有掌握。我回答可以考虑减小树的深度,瞬间面试官的笑容消失。。。)
9)xgboost的公式了解一些吧,它迭代一次具体有那些步骤(已崩)
10)一般来说过拟合有哪些解决办法(这个问题其实很基础了,但是一来平时疏于整理,二来心态有点崩,根本答得不好,面试官十分非常不满意,这么基础的问题也没答上来)
差不多就是这些问题了,面试我的这位面试官对工程项目这一块很有兴趣,而且但凡我做过的东西,都问得相当细致,包括具体的步骤,遇到的问题。
总结一下,几个问题
1)基础不扎实,好像都会点,但是不够细致,一定要保证张口就来,面对面试官可以把基本的问题流畅地说出来
2)简历里的项目自己没有理清楚,导致面试官问得时候容易卡住
3)简历有点华而不实,写得太多,真正十分了解得少
4)感觉自己准备的方向有问题,什么都想涉猎一点,导致核心的那一部分反而落下了些
5)思路不清楚,应该提前练习一段时间,保证面对面试官的时候思路清晰
6)多面试,不能放弃任何一次面试的机会,不实战不知道自己哪有问题