ai大数据算法工程师怎么样 (大数据和ai面试会遇到什么问题)

ai面试线上面试的知识图谱,ai大数据算法工程师怎么样

这篇文章分享了一位程序员的面经,他曾先后在易贷网、百度金融、蚂蚁金服等公司面试AI算法类的开发岗。众所周知,AI是目前最火的一项技术,它代表着未来技术的主流发展趋势,如果你也对这一领域感兴趣,那么他的面经,你不妨一看。

他是本科毕业,通过深度学习集训营,掌握了深度学习,拿到了高薪offer。在AI技术迅猛发展的现在,有太多程序员在谋求转型AI领域,这个程序员无疑是一个缩影。

话不多说,面经开始~

首先,简历是你能被邀请去一个公司进行面试的敲门砖,一般技术岗的简历要突出特色与重点,忌讳繁杂与花哨,一般可以将简历分为基本信息、个人技能、工作经历、项目经验四个大的方面,这四项也是面试官最感兴趣的。

然后再对大项进行详细的划分,例如:个人技能和项目经验这两个肯定就能再分出来很多小项,小项在写的时候也要有完整的结构和严密的逻辑。一方面是让面试官在你的技能与经验迅速找到兴趣点,另一方面是让自己对自己有一个清晰的认识,这样面试的时候讲起来才能更有条理。

插播:如果对AI感兴趣,想学人工智能(机器学习),数据分析,数据爬虫,欢迎加入python学习交流qq群250933691,分享我精心准备的Python学习资料,0基础到进阶!希望你们在学习Python道路上少走弯路!加油!

ai面试线上面试的知识图谱,ai大数据算法工程师怎么样

其次,就说一说我面试的部分公司和面试中经常遇到的问题。问到的问题我会清晰的列出来,问题的回答方式和我的答案也会写在下面,括号内的可能只说出相关知识点,部分详细的答案还需要各位看官自行去百度。

1

公司:易贷网,岗位:算法工程师

行业方向:互联网金融

一面技术:

(1)介绍自己的项目和主要工作

基本上是面试时的第一项,后面这一项就不写了

(2)bagging和boosting的区别

这个具体化其实就是RF和GBDT的区别:

a.样本选择方式;

b.样例权重;

c.预测函数;

d.并行计算

(3)语料库怎么构建词向量

这个问题就是骗自然语言处理方向的问题了,因为这是我在第一次写简历的一个败笔,写了一个自然语言处理的项目。但是也是硬着头皮说用到了word2vect进行构建词向量的…

(4)TF-IDF的计算方法,含义,应用场景

含义:词频-逆向文件频率,是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度

计算方式:TF 词在文件中出现频率;IDF:总文件数目除以包含该词语之文件的数目

应用场景:其实就是自然语言处理中看一个词的重要性,然后对于文本分类这样的项目能够起到作用。

(5)word2vect的原理,两种模型形式,霍夫曼树?

word2vect其实就是一个输入层,隐藏层和输出层这样的三层神经网络结构,一般分为CBOW和Skip-Gram两种形式,霍夫曼树是在训练CBOW和Skip-Gram优化的数据结构。

二面直接上老大:

问我有没有自然语言处理的实际落地项目,他们现在急招的是自然语言处理的岗位,算法工程师不急。听到这很忧伤,自然语言处理我没做重点复习啊,只能硬着说做过一个短文本分类小项目,然后做下介绍,闲扯了10分钟,感觉已经没戏了,所以有想面自然语言处理方向的同学一定要好好复习。

2

公司:永辉云创,岗位:机器学习算法工程师

行业方向:机器学习

一面技术:

(1)写一个快排,说一下快排主要快在哪?

这个可以百度一下,原理,计算方法,代码应用尽有,主要快在它的思想是分而治之的思想,其实东西都是这个思想,例如分布式、hadoop等

(2)手推SVM,什么是核函数,为什么要用核函数,SVM核函数怎么选择?

手推公式我这里就不写了,认准切入点是我们要找到一条直线正好把正负样本分割在两端,而且让它们离直线越远越好,之后进行了一系列的计算。

核函数是为了解决样本不是线性可分的问题提出来的,主要的核函数有线性核,高斯核,Sigmoid核,核函数选择主要从训练集样本量,特征量上进行考虑。总之SVM的东西还是很多的,推导过程中还有拉格朗日乘子法、SMO算法、软间隔、硬间隔等问题。

(3) SVM和LR的异同点?

(4)连续值特征做离散化有什么好处?

(5)特征工程中对时序型特征怎么处理

时序特征其实是在预测上常用的一个特征,简单的来说我们可以根据特征中的时间特性来划分不同的时间区段(比如,现在马上到双十一了,在时间特征上我们可以剥离出双11,双12,周末,工作日等),这样会让特征有时序型(其实就是特征工程中对时间类别特征的处理),另外还有成熟的时序特诊处理方法(这个需要自行去搜一下paper),paper较长,这里就不赘述了。

(6)推荐系统的算法了解多少?简单介绍一下协同过滤,怎么计算商品之间的相似度?

其实我了解的真不多,所以我就简单说知道协同过滤(基于物品和基于用户),其实就是一个人以类聚,物以群分的过程,然后说一下距离计算的方法:欧氏距离、Jaccard相似度、Pearson相似度、余弦相似度,最终形成一个打分的矩阵,然后根据得分进行推荐。

(7)讲一下隐语义模型

思想是通过隐含特联系用户兴趣和物品,找出潜在的主题和分类,基于用户的行为对item进行自动聚类划分到不同类别/主题。知道这不是自己的强项,就跟面试官说只是了解,没有实际用过,但是我会回去好好研究研究,衣服信誓旦旦的样子。

(8)说说hadoop的原理

这又是大数据了,上面已经提到过了,大数据这块的东西大家还是好好看一下,因为现在搞算法,搞机器学习、深度学习都是在大数据的背景下的,所以这以后是一个基本的技能,面试官问的也比较多。

(9)简历中的销售量预测的项目的评价指标召回率和ACC怎么协调

这个问题就看实际业务场景是更偏重于哪一方面了,我的回答(不一定对)是我们是先以准确率为准进行模型调优,达到我们可接受的数值时,然后往上调召回率,最终使两个指标都稳定。

二面人事:人事没问什么特殊的问题,基本都是一个讨论,然后问一下工资,告知准备入职手续和材料。

结果:永辉云创是永辉超市注资成立的,初创阶段,业务方向也是依托于用户超市数据搞大数据处理和探索人工智能其它方面。顺利拿到offer,20K/月

3

公司:百度金融,岗位:算法工程师

行业方向:互联网金融

(1)简单介绍自己,主要负责哪部分工作?

这个就不说了,大家对这自己的简历都练几遍。尽量多说一点,这样面试官就少问一点。

(2)项目中用到的数据的量有多少?特征有多少维,都用作训练吗?

这个问题是很多面试官都喜欢问的,要根据自己写的项目实际情况进行阐述,数据量较大的情况一般是不能全部用作训练的,要不然那模型得跑多长时间啊,还有就是特征维度,一般几十到几千维都有,用作训练的其实也就几十维到百维这样,特征工程那块肯定要看一下哪些特征是有用的,进行特征选择,如果全用会给训练带来大量的工作反而起到副作用。

(3)对大数据了解多少?hadoop的原理?

大数据处理其实上面已经提到过,用到的工具有spark、hadoop,然后hadoop的原理就是分而治之,map-reduce都干什么,建议写两个这样的程序你就能明白它是怎么工作的,这个很主要,因为工作中就是这么用的。

(4)特征怎么进行组合的,对模型训练有什么指导意义?

特征组合一般都是拿差异性、关联性较大的特征进行组合,这样不会损失特征的作用,还可以拓展出未知的特征,例如将 longitude 与 latitude 组合,产生的组合特征则代表一个明确的城市街区。这样能产生比单独考虑单个特征更强烈的位置信息的信号,所以特征组合就是在衍生我们不能直接接触的特征,然后对模型训练有积极影响。

(5)在模型训练过程中都用了什么算法?

LR,RF,GBDT…,然后一一解释每个算法的特色、原理、中间再加点比较(因为都是分类算法)

(6)混淆矩阵,ROC、AUC、召回率、KS、Gini、IV

混淆矩阵:

这个是后面计算ROC,AUC,召回率,准确率的基础,所以还是要把这个表格记住:

TP:正确肯定——实际是正例,识别为正例

FN:错误否定(漏报)——实际是正例,却识别成了负例

FP:错误肯定(误报)——实际是负例,却识别成了正例

TN:正确否定——实际是负例,识别为负例

• AccuracyRate(准确率): (TP+TN)/(TP+TN+FN+FP)

• ErrorRate(误分率): (FN+FP)/(TP+TN+FN+FP)

• Recall(召回率,查全率,击中概率): TP/(TP+FN), 在所有GroundTruth为正样本中有多少被识别为正样本了;

• Precision(查准率):TP/(TP+FP),在所有识别成正样本中有多少是真正的正样本;

• TPR(TruePositive Rate): TP/(TP+FN),实际就是Recall

• FAR(FalseAcceptance Rate)或FPR(False Positive Rate):FP/(FP+TN), 错误接收率,误报率,在所有负样本中有多少被识别为正样本了;

• FRR(FalseRejection Rate): FN/(TP+FN),错误拒绝率,拒真率,在所有GroundTruth为正样本中有多少被识别为负样本了,它等于1-Recall

ROC曲线就是以假阳性概率(False positive rate)为横轴,真阳性(True positive rate)为纵轴所组成的坐标图

上面大家可能学习过程中都能接触到,但是KS、Gini、IV是互金行业风控模型中常用的指标,一被问到我就懵逼了,完全不知道是啥啊,只能支支吾吾说没用过这些指标。

结果:可能大公司要求就是严格,亦或是一个问题就能看出来你在这个行业待了多长时间,所以:一面,卒。

4

公司:某金融集团,岗位:算法工程师

行业方向:互联网金融

一面技术:

(1)简单介绍一下自己

千篇一律,当练口才了。

(2)手写快速排序算法,讲原理,最好、最坏时间复杂度,空间复杂度

这个上面也提到了,主要看对算法的理解程度,所以面试中可以不去看那些数据结构,但是常用的算法一定要能默写出来,而且知道为什么快。

(3)简历中写的申请评分卡是怎么做的?

基于Logistic回归的申请评分卡模型开发(主要讲了流程):

①数据准备:收集并整合在库客户的数据,定义目标变量,排除特定样本。

②探索性数据分析:评估每个变量的值分布情况,处理异常值和缺失值。

③数据预处理:变量筛选,变量分箱,WOE转换、样本抽样。

④模型开发:逻辑回归拟合模型。

⑤模型评估:常见几种评估方法,ROC、KS等。

⑥生成评分卡

(4)做一个风控模型一般流程是什么样的

其实这个问题就是把上面的问题又说了一遍,但是我回来在网上查了一下大概是这个样子的:业务定义(确定义务才能确定其他的)->风险定义(其实就是定义好用户和坏用户,或者说是正负样本)->风险化解(这块就是用算法训练各种评分卡)->风险策略(针对作弊行为或坏账进行的后期行为)

(5)手推LR,并对每一步进行解释:引入sigmoid,逻辑回归的公式,极大似然,求解参数时的梯度下降算法

这个没什么可讲的,就是去手推吧,推几遍这些都记住了,包括哪一步该干什么。

(6)LR和SVM有什么异同点,怎么理解SVM的核函数

异同点和核函数都在上面说过了,这块回顾一下吧(其实整个这个面经看下来可以看出来,面试官们常问的问题也就这些,只是会从它们的业务中带出问题来)。

(7)项目中样本量是多少?正负样本比例如何?怎么解决正负样本不均衡的问题?

样本量自己说了几十万,正负样本10:1(肯定有人问,为什么说10:1,因为在互金行业的正负样本比是十分不平衡的,每有一个负样本就说明至少出现一笔坏账,在几百万数据的情况下,有1W坏账这个公司就别活了,当然我说这个比例也不是很准确的,但是我解释取样本的时候做了采样)。样本不均衡解决方法:负例采样,smote算法。然后讲了smote算法怎么做。

(8)特征工程做了哪些工作?为什么?

这个当时就把自己实际用的特征工程方法说了:对null值、异常值文本型、时间型、类别型,组合,统计缺失率等通通说了一遍,然后进行特征选择。这么做当然是为了模型能快速训练出效果,使数据收敛,提升评估指标等等啊,这么做肯定说产生好的影响。

(9)项目中使用模型训练的评估指标是什么?AUC多少?KS值多少,KS值是怎么计算的

吃了百度金融的亏,这回我可答上来了,上面那个连接里面的每个概念、计算方法我都扣了好几遍。AUC:0.73(不能太高也不能太低,有零有整,很真实),KS:0.28(一般>0.2便说明模型有很好的区分能力)

这个问题其实也是一个不小的坑,因为你说的太假一下子就能看出来,面试官都是在实际工作中摸爬滚打出来的,你说AUC0.9那他得仰视你。

二面技术+业务:

(1)在工作中都会用哪些特征来进行模型的训练,哪些数据比较有效

这个主要是跟用户个人和信用方面息息相关的:例如个人基本信息(年龄、地址、学历、工作…)、设备属性(手机品牌啊,运营商…)、业务行为(借贷行为,还款,消费,旅游…),有效的肯定是跟业务关联多的。因为从这些特征中可以直观的判断这个人的借款需求和还款能力。

(2)对风控模型的理解,完成一个风控系统都需要做哪些工作

①尽可能全面搜集客户信息

②根据业务进行模型训练,然后对用户进行评分,完成授信

③后期监控,防止产生坏账和作弊行为

(3)给一个场景:有50W贷中数据和50W贷后数据,特征维度有300维,其中还包含了空值,怎么用这些数据做一个申请评分卡?

讲思想:用贷后数据进行数据分析,做数据处理(空值、异常值)、特征工程,然后计算特征的IV值和特征选择方法筛选特征,再把处理完的特征放到LR中进行训练(训练集,验证集按照7:3划分),对模型调优,达到一定指标。贷中数据也别闲着,放到模型里进行预测,放到库中,待时间线临近来验证模型实际应用中的效果。吧啦吧啦,说的口干舌燥,

(4)之前做的项目风险是怎么定义的?

这个不同公司有不同的定义,银行可能定义M1期以后是坏用户,而P2P比较脆弱,承担风险能力弱,所以M0期可能就定义为坏用户。

(5)有哪些手段防止用户的反欺诈行为?

这个问题回答的时候尽量从业务的场景去分析,第一,尽可能全面的收集用户的资料,用户资料越全后期用户的行为越可控;第二,授信前要有严格的授信策略(例如申请评分、贷中行为评分、贷后行为评分);第三,后对贷后用户进行监控和跟踪,采取电话回访或者其他方式确定用户真实存在。第四,就是不断完善自己的风控系统。

(6)给我找了一批数据,然后发给我,让我回去用这些数据训练一个预测好坏用户的模型。

这个就是实际动手操作了,并不难,回来对数据进行简单的处理,做点特征工程,然后用LR和RF分别训练了一个模型,然后做一下比较,用AUC和ACC评估指标说一下效果等等。

三面人事:

人事这关就是问你为什么辞职啊,上家公司待遇啊,对自己的定位啊,对整个行业的了解啊什么的,跟人事聊天就是让她感觉你很积极向上,离职原因不要贬低自己原来的公司,可以说自己想拓展一些技能啊,进行更多的挑战啊什么的。

人事问还有什么问题的时候也尽量问一些关于公司的文化啊,人才培养啊,进阶过程什么的,不要上来就问工资,这个问题等人事主动问你比较好。

结果:拿到offer,顺利入职

总结:BB这么多,都是我一家公司一家公司面过来的,还有几家公司跟我想从事的方向不一致,问题也都跟这些差不多就没多赘述,问题都是真实记录的,所以有要找互联网金融方面工作的朋友可以参考参考,有些问题我说的不对的也希望指正(改不改看我心情),我也学习学习。

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系。

ai面试线上面试的知识图谱,ai大数据算法工程师怎么样