专栏首页机器学习与推荐算法知乎推荐算法工程师面经

知乎推荐算法工程师面经

前言

曾三次迈进知乎的大门,面试算法工程师岗位。特整理了一些相关问题供大家研究,并附上了一些大佬的建议供大家参考。更多关于算法工程师职位介绍以及面试准备等问题可以在微信公众号后台留言,我会及时的回复大家。

面试流程

1、自我介绍

balabala......

2、介绍下协同过滤

我大致介绍了下协同过滤的分类,以及每种分类的主要思想以及优缺点。其中提到了LFM,面试官又追问LFM用来解决什么问题,我从降维和回归两个角度来进行解释的。

3、介绍下SVD与MF的区别

我把SVD++的公式写下来并进行了解释,其主要是考虑了用户的隐式反馈信息。

后来面试官说问错了,其实是想问一下BiasSVD的思想,还好我写的公式包含BiasSVD的公式,主要是对于用户和项目更细粒度的建模,因为有的用户可能相对仁慈,所以评分普遍偏高;有的用户可能比较严厉,所以评分普遍偏低;同理对于项目也是如此,有的项目天上质量上乘,有的项目天上质量比较差。所以我们需要增加偏置项来捕获细粒度的影响。

4、问简历中发表的CCF-C类论文的细节

由于项目中涉及graph embedding的东西,所以介绍了下GE;

由于GE涉及到word2vec的东西,我又说了下word2vec。

因为word2vec分为了CBOW和Skip-gram模型,后来面试官又问两种模型的适用场景。

因为我只介绍了其中一个优化技术Negative Sampling,其中把概率公式写了出来,他又让我分享一下另一个优化技术Hierarchical Softmax,大致说了下,就是把多分类任务转化为了多个二分类任务,同时利用哈夫曼树来将词频高的词尽可能出现在里根节点近的地方。

5、了解最近MF与深度学习结合的东西吗

我说了下何向南老师的神经协同过滤,并谈了下利用深度学习技术做推荐的看法。

6、了解常见的机器学习算法吗,说一下LR

了解。我从线性回归入手过渡到逻辑回归,他们是对于特征的线性组合,并且假设数据是线性可分的,同时可以通过超平面将之分离,另外介绍了可以通过最大似然来推导出LR。思路跟我之前写过的这篇文章类似《由Logistic Regression所联想到的...》。

7、介绍一下常用的排序算法

O(n^2):冒泡,选择、插入

O(nlogn):快速排序、堆排序、归并排序

8、说一下快速排序的过程以及最好和最坏情况

大致说了一下分而治之的流程...

9、了解JVM么,介绍一下

不是很了解

10、了解协程么,介绍一下

不是很了解

11、说一下进程与线程的区别

进程可以由多个线程组成,另外线程间可以进行资源的共享,进程间不行。cpu调用的是线程。

12、咱做个简单的算法题吧,给定一个有序数组,然后再给个关键字,写一个函数返回其下标

我想到了二分查找来解决这个问题。

13、常用的数据结构了解哪些,hashmap以及如何解决冲突,红黑树以及平衡搜索树等

因为我本科以及研究生的技术栈偏.NET,所以用的java不是很多,所以不是很了解hashmap,对于冲突解决可以采用开放定址法等。平衡树了解一些,红黑树不是很了解了。

14、说一下推荐系统常用的召回策略...

15、介绍一下深度学习常用来缓解过拟合的手段(至少5个)...

16、推导逻辑回归的损失函数以及推导梯度更新公式...

17、利用队列来实现栈的功能...

18、比较e^2与2^e的大小...

19、给你一个数组,求一个k值,使得前k个数的方差 + 后面n-k个数的方差最小 ,时间复杂度可以到O(n),给定方差公式:D(X)=E(x^2)-[E(X)]^2...

更多面试题下次想起来了再补充哈...

精选留言

知乎用户zzy:算法工程师真正在公司工作,很多时间可能是花在普通的软件开发上,尤其大数据与后端的开发能力,这些要求掌握的语言一般有Java,go(专门有协程),Scala等等,会写接口,也要求对各种关系型或非关系型数据库进行操作,另外还有分布式计算,建议至少掌握hive,spark(尤其里面的mllib)的常见用法,有余力还有flink。以上这些东西没有算法理论那么难理解,但是得花很多时间去实践,才能较好地掌握。从你的描述看,面试官很可能需要你有这些能力。

知乎用户weicheng:对于偏研究的还是建议找类似于ai lab的研究岗,这种所谓的算法工程师岗位根本不涉及模型的研究,算法岗算法岗应该指的是算法研究岗,而不是什么工程岗,工程自有搞后端的帮忙实现。

知乎用户二东东:面试官提到了机器学习不只是离线训练模型 还要有部署能力 比如说说要熟悉 配置环境 Docker Microservice Kubernetes Cloud Servies(AWS, Azure, etc.) 但是这些经验新手比较难有。

知乎用户LucasX:尽管对于ML岗,刷题、CS基础(例如OS、语言底层细节)还是非常重要的,说实话知乎这个问的算是比较简单的了。现在越来越考硬coding功底了。

知乎用户杨帆:看到很多评论说偏 java,其实并没有偏向任何语言,只是想借语言聊聊数据结构和解决问题的思路,数据结构和算法是基础的基础。至于为什么问 jvm 和协程,其实这些都是很有意思的领域,只是想知道平时是不是学习只限于使用语言了,对于相关的东西也希望有学习兴趣,学习兴趣才是关键。

知乎用户刘译文:个人觉得,在模型部署方面,是一套很成熟的流程,算法工程师的核心竞争力仍然还是自己对算法的理解,对业务的理解。其他的一些知识,完全可以工作中进行补充学习。。知乎这个面试,要求的确实有点高啊。

写在最后

正如面试官所说,我们要求算法工程师不仅对于机器学习算法需要了如指掌,我们更需要将算法部署到真实环境中,因此不是简单的用python训练个模型就好了,还需要将之部署到服务器上,我们更加注重计算机基础相关的东西,同学你还得加强基础训练啊。希望大家在学好理论的同时,能够把编程基础打好,养成好的习惯,比如每天刷一道算法题,每天看一下相关的知识点等。不积跬步无以至千里。将来该公众号也会定期更新一些算法题来供大家一起学习交流。

后来站在面试官的角度想了想对于应届生来应聘算法工程师岗位,确实也就只能通过项目经历、实习经历、机器学习理论以及手撕算法来衡量一个应届生的能力,因为你没有实在的工作经验,人家也不会跟你聊偏业务的东西或者工业界独有的东西,所以准备好以上几个方面,相信你肯定可以收获若干个offer的。

北京的秋天,秋高气爽,云卷云舒。坐在学校教学楼旁边的长椅上,人来人往,自己安静的思考着未来的方向,好久没有这么静止了。正因为未来充满了不确定,我们才更加的对未来充满期待啊。

本文分享自微信公众号 - 机器学习与推荐算法(ML_RSer),作者:张小磊

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 美团机器学习算法岗实习四面面经(推荐系统方向)

    “ 本篇内容为师妹在美团面试时的相关记录,希望对目前学习推荐系统方向的朋友们一些方向指引,同时也希望对寻找推荐系统相关工作的朋友们一些借鉴意义。如有相关问题,请...

    张小磊
  • GBDT与XGBOOST串讲

    最近,一直被GBDT和XGBOOST烦恼,产生了如下的问题,由此产生了这篇文章。

    张小磊
  • 网络表示学习概述

    随着社交媒体的飞速发展,在线社交网络成为了人们赖以生存的第二世界。大规模社交网络用户的形成使得传统的网络表示方法遇到了瓶颈,由于随着深度学习技术的蓬勃发展以及受...

    张小磊
  • 从零基础到斩获BAT算法岗offer,围观复旦大佬的秋招之路

    原文链接:https://github.com/zslomo/2019-Autumn-recruitment-experience

    黄小斜
  • 算法为什么那么难?——算法学习秘籍

    (1)我们学习了那些经典的算法,在惊叹它们奇思妙想的同时,难免疑虑重重:这么刁,怎么想到的?对学生来说,这可能是最费解、也最让人窝火的地方。高手讲,学算法要学它...

    rainchxy
  • 2019年后,Java岗面试快速突击指南

    大家好。这篇文章给大家分享一下如何获得一个可以去参加面试的最小可行知识(Minimal Viable Knowledge)!我自己在就基本上靠文章中的策略在找...

    Java码农那些事
  • 阿里巴巴矢量图标库(iconfont)批量全选的方法

    浏览器打开调试面板,进入 console 调试面板(Google浏览器快捷键F12)或者在页面空白处,点击右键->审查元素(检查) 即可打开。

    kirin
  • 1行代码修改开机密码、1张图片让电脑死机

    程序员很忙,忙着敲代码debug,程序员有时候也很闲,闲下来的就是就开始自黑,自黑的段子越来越多还被编出了一首诗:

    C语言入门到精通
  • 一周极客热文:程序员必须知道的10大基础实用算法及其讲解

    程序员必须知道的10大基础实用算法及其讲解,包括: 快速排序算法; 堆排序算法(Heapsort):是指利用堆这种数据结构所设计的一种排序算法; 归并排序(Me...

    钱曙光
  • Python列表长度

    py3study

扫码关注云+社区

领取腾讯云代金券