go: net/http实践

如何设计短链系统

  返回  

记2021-07-20日推荐算法岗面试经历

2021/7/21 0:05:49 浏览:

2021-07-20周二下午5:11-6:02进行了一场远程电话面试,面试的是推荐算法岗,公司也是北京的一家互联网大厂,名字就不透露了。

整个面试时长51min,分为两部分,第一部分大约35-40min,主要是问项目经历和项目中使用的技术,另一部分大约10-15min,出了两道题目让说下思路。因为我有刷leetcode题目,所以给出的答案比较快,并没有占用太多的时间。最后大约5min左右是向面试官提自己想要了解的问题。

这里根据面试后的记忆,整理记录下面试问题,以及我面试后翻阅查看相应模块的知识点后觉得面试官相应听到的答案是什么。查漏补缺,总结这次面试的成功经验,补上这次面试做得不好的地方,希望下次的面试可以做到更好。也祝自己早日拿到心仪的offer!

以下主要采用问、答、解析的方式来写,尽量的还原面试的过程。当然最主要的还是要解析下面试官问题的弦外之音,即他想要考察你的点。

问题1:  简单做下自我介绍。

答:  .... 简单说下自己的工作经历,岗位,主要工作方向,使用的技术、会的技能之类的。....

问题2:  说一个当前工作中的项目,你做了哪些工作?

答:   ....简单说了下CVR模型预估的工作。.....

对于社招,项目经历面试是很重要的一个环节,面试官就要在这个环节中问一些深入的、细致的、细枝末节的问题,这是区分你到底是真做过、还是假做过一个项目的有效方法。所以,不可避免的,面试官就这个项目工作展开了一系列的细节追问。

问题3-N:这个CVR模型预估项目的背景是什么?使用场景是什么?

使用的模型是什么?样本量、训练数据量级多大?

使用了什么特征?最后使用的特征有多少个?你是怎么确定用哪些特征的?

分类型、连续型特征的处理方法有哪些?连续型的特征除了分桶处理,还有什么处理方法?为什么要用时序型的特征?

为什么用LSTM模型?怎么确定哪些特征在LSTM中有好的效果,哪些没有的?

用到的分类型、连续型、时序型特征是怎么喂到深度学习模型的?喂到LSTM模型的特征是什么样子,你知道吗?

LSTM模型优化你都做了什么(我当时没听懂这个问题,现在也回想不起来到底那个问题是关于模型的哪个方面,所以这里大概写优化吧)?

模型上线了吗?模型对效果的提升是多少?

解析:就这个CVR模型预估项目,面试官问了很多令人发指的细节的问题,而这些问题不仅仅能反映出你到底有没有亲手做过这个项目,对这个项目的熟悉程度,更是在问你对问题背后知识点的理解和掌握。哪怕一些知识点你在这个项目中并没有用,但你也要回答出来那些你没用上,但属于这个知识点范围的知识,这就体现你对技术知识掌握的熟练程度、全面性和系统性。

我们来解析下面试官这一系列的问题到底在问你什么。

首先,问你项目背景、模型的应用场景,就是看你对项目整体的把握和理解,工作中建模的第一步就是理解业务背景,划定业务问题,将问题转化和抽象为模型问题。即这是个什么限定条件下的问题,在这样的限定条件下,用什么模型来解决问题,达到什么样的目标或目的。

其次,问你样本量、训练数据量级,使用什么特征,是在问你对业务数据的了解和掌握。特征是建模的灵魂和核心,亦是整个工作的基础。这里的问题就比较偏向特征工程了。

问题主要涉及的是特征工程中的,特征处理(分类型、连续型特征的处理方法)、特征编码(连续型特征的编码,除了直接使用外,还可以bin分组处理等,参考博文 特征工程|连续特征的常见处理方式(含实例))、特征构造与特征选择(基于统计的相关性分析、假设检验、基于模型的选择等)等。请将你知道的关于特征工程的所有知识毫不吝惜地说出来给面试官听!~

再次,问到LSTM模型,这是我用到的其中一个模型。项目中的baseline用的是LR、DT模型。这是问你对模型的熟练掌握程度。

LSTM模型的时间步是多少,循环核用了几个,模型是用Sequential还是class搭建的,怎么调参优化的,关于遗忘门、输入门、输出门。LSTM模型除了喂入了时序型特征,还用了什么特征?其他特征和时序型特征在喂入LSTM模型时有什么区别,是怎么使用的?特征喂入到LSTM模型的样子是什么?

这里请将你对模型的全部理解和认识毫不保留的说出来,全看掌握程度了。

最后,问模型是否上线和达到的效果。这里其实是看项目的落地情况了。可以展开说的比如上线和部署,效果验证(如果有AB测试的话,最好说下AB测试怎么做的,模型效果如何),再然后也可以说下模型带来的收益等实践应用数据。

问题N+1: 说一个做过的广告相关的项目。

答:说了使用CF模型做广告人群定向的项目。

解析:毕竟面试的是推荐算法岗,不可能不问广告推荐相关的。这个项目中的面试官问的细节问题就不展开了,跟上面的很像,就是怼细节,怼你是不是真的了解和做过。

问题N+2: 说一个你做过的觉得有价值的工作,挖掘出了什么价值点,达到了好的收益点。

答: 说了一个使用MF模型在游戏APP拉活项目中经历。

解析:问你在工作中的创新点 和个人价值、驱动力等。除此外,面试官还关注的是你的学习能力、发现问题的能力、以及工作中的推进工作的执行能力。

以上,差不多就完成了项目经历面试。

接下来是两道笔试题目。

第一道笔试题,难度简单,知识点是数组。

题目:给一个数组,数组中每个值代表当天的气温。让你生成另一个数组,数组中的每个值表示下一次遇到比当天更高的气温时,时隔几天。

 答:我给的思路是写了两个循环来查找。外层循环遍历数组所有位置元素,里层循环遍历当前位置之后的元素,比较当前位置元素和之后的元素值,直到发现比它大的值。这个的时间复杂度是O(n^2)的。

面试官问我有没有更简单的解法,我当时没怎么想到,提出了另外的解法,但时间复杂度上差不多。他提示了我从后往前遍历,但没get到点。hehe~~

第二道笔试题,难度中等,知识点是二叉树、深度搜索优先/广度搜索优先、递归、动态规划。

题目:给一个二叉树,节点上的值是整数(可正可负)。找出这个二叉树中最大的一条路径。路径上的节点的值相加就是这条路径的值。(这道题有点像 leetcode 120. 三角形最小路径和)

答: 我当时理解所有路径都是从根节点出发的,所以给出了动态规划的解法。

解析:其实后来面试官解释说,路径不一定都是从根节点出发的,也可以从任意一个子节点出发。这样就增大了可行解的搜索区域,增加了问题的难度,所以他解释后的这个问题我并没有给出好的答案。

笔试之后,面试官问我有什么问题问他,我就问了下面试的团队的日常工作职责、团队氛围、团队组成、日常工作使用的技术技能等跟新工作环境有关的问题。毕竟我换一份工作不容易,还是希望新东家是一个稳定的、可持续发展的、值得投入的。谁也不想入职一段时间后发现新工作不是自己期望的,干了不到半年就想着换工作。

好了,以上就是今天算法岗面试的一个大概记录了。

希望自己好好总结面试经验,好好总结和积累技术技能,早日找到如意的新工作!

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号