面试经验|字节跳动丨算法工程师丨面经
2367
2021.07.31
发布于 未知归属地

【一面】 (40min)
1.自我介绍(面试官确认了下个人研究方向)
2.项目,Graph Embedding怎么做的(讲了论文的内容)
3.召回和排序的区别(特征使用数量、效率、模型复杂度等角度阐述)
4.DeepFM与FM
5.知识图谱学习得到的Graph Embedding是用于召回还是排序(召回)(1.有噪声;2.因为对于传统观点的召回来说,精准并不是最重要的目标,找出和用户兴趣有一定程度相关性但是又具备泛化性能的物品是召回侧的重点,所以可能知识图谱的模式更适合将知识图谱放在召回侧。)
6.讲一下项目中用到的强化学习。(A2C,讲了原理,实现细节)
7.算法题:
快排代码(讲了下如何使得最坏情况也能O(nlogn)
n * m 矩阵给定左上角和右下角求面积(O(1))【CV中经常用到】。
8.概率:A、B是两个服从0-1均匀分布的随机变量。求E[max(A,B)]。
9.反问:部门业务方向做哪些,有没有结合图谱(个人想做这方向)
【二面】 (50min)
1.自我介绍
2.协同过滤的演化(共现矩阵(itemCF, userCF) →MF(泛化)→NCF(高阶交互;非线性)→Graph Embedding (图结构)
3.MF如何泛化(特征提取,从SVD为例讲了一下,感觉一般满意;同时类比了深度学习中过拟合和泛化的情况,感觉还行)
4.两篇论文
5.算法题:
题1:lc 1420. 生成数组;想到dp没写出递推公式,卒
题2:
最长上升子序列;写了贪心+二分(O(nlogn))
相关知识点: 动态规划二分
相关知识点: 动态规划二分

【三面】 (37min)
1.自我介绍
2.论文细节及项目
3.项目中的特征工程用到了哪些
4.deepFM相关:
的模型结构是怎么样的(Wide & Deep -> DeepFM角度讲)
权重参数共享吗、如何预训练?
输入的embedding包括哪些?分别怎么处理?
5.FM和FFM(参数量,特征交互)
6.word2vec具体怎么做的(skip-gram,CBOW,学习目标是权重参数矩阵;loss是交叉熵,负采样、层级softmax)
7.你印象最深的近几年的一些推荐方面的成果。聊了CF方面的新成果。
8.其他的推荐模型了解吗?(双塔,CTR方面讲了DIN)
9.过拟合怎么处理。(5种)
10.比较一下GCN和GAT。(从复杂度、效果上等作了比较,感觉答的一般)
11.比较一下传统的Embedding方法和Graph Embedding。(真实数据也是图结构,冷启动,交互更丰富)
12.交叉熵损失函数
13.算法题:给定一个arr,和最小间隔k,找出满足最小间隔k的a,b两个数使得a+b值最大。(我的解法,存储每个点的leftmax和rightmax,然后一轮循环求最大;感觉空间复杂度还可以优化)
14.无反问*2
面试结束后不久通知HR面

【HR面】 (15min)
1.自我介绍
2.兴趣爱好
3.介绍一下学习过程中对你影响最大的一件事
4.对未来的规划
5.考虑转正吗
6.有什么长期坚持的事情?
7.有无其它offer?

评论 (1)