2022年4月13日——字节(抖音推荐)暑期实习一面

        字节的面试体验整体还是不错的,面试官整个过程也比较 nice,整个过程以一种聊天的方式进行。刚开始有点紧张,过了几分钟就平复下来了。

  1. 自我介绍

        简单的自我介绍之后,面试官问了我为什么本科(地质)毕业之后要跨考计算机,聊了一下本科有没有学过编程(大一学过C语言和python版的数据结构,不过都学的一般)。

  1. 聊项目穿插基础知识考查

    项目一:面试官首先重点为了一个 NLP 相关的项目(这个项目时间都比较久远了,而且也做得比较简单,nlp 基础知识复习也没有很多,刚开始还有点害怕)

    • 项目的背景,什么样的一个任务(句子对匹配的一个任务)?

    • 采用了什么样模型?(做的比较简单,按照 BERT 句子对分类的方法,用 cls 向量做分类)

    • 一些提分的手段:问了对抗训练的做法,问了标签平滑的原理是什么,模型融合怎么做的,有多大的提分(整个任务因为数据比较干净,其实这些方法提升都很小)

    • BERT 的模型结构,重点问了 self-attention 是怎么计算的,其中的 q 向量是做啥的,为什么要这么做?可不可以不这么做?

    基础知识:

    • LSTM 的结构,几个门分别是干什么的?用的什么激活函数?LSTM 相比于传统的 RNN 有什么优势,为什么会有这样的优势?

    • 介绍一下熟悉的优化器,重点讲了 Adam 优化的公式和改进思路;

    项目二:微信大数据挑战赛(短视频推荐)

    • 树模型的特征工程思路,做了哪些特征工程?为什么要这么做?为什么这么做是有用的?特征选择怎么做的?

    • GBDT 的原理,为什么 GBDT 能去的很好的效果?XGBoost 的原理,相比于 GBDT 的改进在哪儿?这么改进的优势在哪儿?

    • 为什么使用 LightGBM?为什么 LightGBM比 XGBoost要快?比赛中是怎么处理大量的缺失值的?LightGBM 又是怎么处理缺失值的?

    • 介绍一下 DCN 模型,除了 CrossNet,还知道哪些特征交叉的模块,他们之间的对比,了解 DCNv2 嘛?对比过其他模块的效果嘛?

    • 知道哪些 graph embedding 方法,graph embedding 怎么做的?怎么建图?了解其他类型的 graph embedding 嘛(提示用户和物品的二部图,我说没有了解过)。

    • 多任务推荐相关的:介绍一下 MMoE,还了解其他的多任务推荐模型嘛?(答了 PLE 和 ESMM)PLE 和 MMoE 的区别是什么?

  2. 代码题

    • 数据结构基础怎么样?了解堆排序嘛?

      都给予了肯定的回答,然后就让我 C++ 写一个大根堆的实现 (不限制顺序存储或者链式存储) 。

      平时都用 priority_queue 用习惯了,还好以前给学生讲课讲过,还有点印象。

      #include<iostream>
      #include<vector>
      
      using namespace std;
      
      void heap(vector<int> &vec, int n) {
          // 以 i 为根的树
          for(int i = n / 2; i > 0; --i) {
              int t = i;
              // 一直向下调整
              while(t * 2 <= n) {
                  int l = t * 2, r = t * 2 + 1;
                  // 左右孩子选最大的
                  if(r <= n && vec[r] > vec[l])
                      l = r;
                  // 不需要调整
                  if(vec[t] >= vec[l])
                      break;
                  // 向下调整
                  else {
                      int tmp = vec[l];
                      vec[l] = vec[t];
                      vec[t] = tmp;
                      t = l;
                  }
              }
          }
      }
      
      int main() {
          int n;
          cin >> n;
          vector<int> vec(n + 1, 0);
          for(int i = 0; i < n; ++i) {
              cin >> vec[i + 1];
          }
          heap(vec, n);
          for(int i = 1; i <= n; ++i)
              cout << vec[i] << endl;
          std::cout << "hello world" << std::endl;
          return 0;
      }
      
  3. 有什么想要了解的?

        问了主要业务和实习生培养方案,需要哪些工业界的技术(强调了大数据相关工具和深度学习框架)。

        这些知识点基本上都熟悉,但是答的时候,语言组织不是很好,有一种意会得好,但是回答得不够好的感觉。
        祝愿我们大家都一切顺利,早点找到满意的实习。
#字节跳动实习##春招##实习##面经##字节跳动##面试流程#
全部评论
1 回复 分享
发布于 2022-04-14 16:17
老哥,我也参加了微信比赛,你排名怎么样
点赞 回复 分享
发布于 2022-04-15 22:06
大佬是投的抖音推荐的哪个具体部门哇
点赞 回复 分享
发布于 2022-04-16 13:36

相关推荐

8 24 评论
分享
牛客网
牛客企业服务