热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

AI面试锦囊|字节算法工程师(搜索广告方向)三面分享

©原创作者 |三金写在前面目前短视频行业越来越火爆,推荐算法、广告算法引擎已经成为了各个大厂的核心业务系统。在此背景下,字节跳动的搜索团队就主要负责抖音、今日头条、西瓜视频等

©原创作者 | 三金


写在前面

目前短视频行业越来越火爆,推荐算法、广告算法引擎已经成为了各个大厂的核心业务系统。在此背景下,字节跳动的搜索团队就主要负责抖音、今日头条、西瓜视频等产品的搜索算法创新和架构研发工作。今天小编给大家介绍便是搜索团队的算法工程师岗位。


01 岗位介绍

岗位名称:

算法工程师(搜索广告方向)

工资待遇:

35K-65K

岗位要求:

1)出色的发现、分析、建模、解决问题的能力;良好的团队合作意识和沟通能力;关注用户体验;

2)扎实的代码能力、数据结构和基础算法功底,熟悉Linux开发环境,熟练使用C++和Python语言;

3)熟悉至少一种主流深度学习编程框架(TensorFlow/PyTorch/MXNet),熟悉常用的深度学习算法 ;

工作地点:

上海/北京

从上述岗位介绍可以发现,算法工程师(搜索广告方向)薪酬较高,且可选工作地点为国内最发达的两座城市。对于岗位要求而言,其要求较为模糊,例如要求“熟悉常用的深度学习算法”,而并没有写明要求熟悉与该岗位相关的推荐算法等。值得注意的是该岗位没有学历背景要求,意味着本科生也可以进行投递。


02 面经干货

面经来源:小红书(ID:茶语西瓜客)

A、一面

1. 编程题:关于二分查找。

AI面试指南参考答案:

编程题建议着重刷Leetcode HOT 100题库以及《剑指Offer》。

2. 编程题:完成一个函数,输入A、 B两个等长的0-1序列,返回max(j-i)使得sum(A[i:j]) == sum(B[i:j])

AI面试指南参考答案:

编程题建议着重刷Leetcode HOT 100题库以及《剑指Offer》。

3. 讲一讲简历上的项目。

AI面试指南参考答案:

首先要一句话介绍背景,然后介绍项目是怎么做的,最后介绍效果如何。此外还注意项目的创新点、衡量指标、你的贡献等。

4.如何判断模型是否出现了过拟合,如何判断线上效果不好是过拟合导致的还是数据分布不一致导致的。

AI面试指南参考答案:

1)过拟合即模型训练和验证数据集上都表现得很好,但是在测试数据集上却表现得很差。

2)进行数据重采样,例如上采样,若效果仍不好,则说明是过拟合导致的,反之则是数据分布不一致。

5.如何抑制过拟合?

AI面试指南参考答案:

1)从数据入手进行数据增强,从而学习到更多的特征,减少噪声的影响;

2)降低模型的复杂度,例如使用dropout、Eearly Stopping、剪枝等方法;

3)使用正则化方法,例如L1正则化、L2正则化;

4)使用集成方法,例如Bagging方法。

6.L1、L2哪一个使权重产生稀疏化?

AI面试指南参考答案:

L1使权重产生稀疏化。从导数角度来看,L1正则求导后,损失函数在0处是极小值,所以优化的时候会更容易得到权重等于0,而L2正则求导后,极小值不在0处。

B、二面

1. 编程题:不用二分、不用牛顿迭代,求解开根号问题?

AI面试指南参考答案:

使用梯度下降方法,其迭代公式如下所示,其中x为初始值,lr为学习率:

 

2.旋转不降数组,找到第一个不大于target值的数字的下标。

AI面试指南参考答案:

思路:二分查找法

3.文本匹配如何改进效果,从哪里入手?

AI面试指南参考答案:

选择合适的模型,例如BERT。利用BERT模型对文本进行向量化表示, 解决Word2Vec一词多义的问题, 使用Transformer编码器对文本进行特征提取, 获取文本内部信息, 并考虑两个文本之间的多层次交互信息, 最后由拼接向量推理计算出两个文本之间的语义匹配度。

4.文本分类如何进一步改进模型?

AI面试指南参考答案:

不同的文本分类场景使用不同的模型,目前BERT是文本分类任务最常用的模型。对于BERT的改进可以从以下几个方面进行:

1)从预训练模型进行改进,即采用不同的预训练模型,例如ALBERT、RoBERT等,一方面可以加快模型训练速度,使其收敛更快,另一方面通常可以使模型达到更好的效果;

2)改进[Mask]策略,从而使结果更加精准。例如,原始的BERT使用的是subword维度,改进后的BERT WWM(Google)是按照whole word维度进行mask,能够进一步学习词之间的关系。

3)在保持BERT模型分类性能的同时,进行模型压缩,从而减少推断时间以及内存开销。例如通过知识蒸馏的方法训练小模型。

5. WGAN的推土机损失

AI面试指南参考答案:

WGAN使用的是推土机距离(wasserstein_loss),即目标值与预测值乘积的均值。

 

C、三面

1.项目介绍,有哪些难点,怎么解决的?

AI面试指南参考答案:

考察项目的熟悉度。

2.使用Int8量化时,如何防止数值溢出?

AI面试指南参考答案:

1)在计算卷积的时候,使用Int32作为中间值。因为Int8进行乘加操作后结果不会超出Int32范围。

2)通过线性映射的方法,即在带偏置的层中,先将Int8转为Float32计算出结果,再转为Int8。

3.ALBERT相对于BERT有哪些优点与改进。

AI面试指南参考答案:

ALBERT是轻量级BERT,ALBERT采用了一种因式分解的方法从而大幅度减少了BERT的模型参数,解决了参数过多超出内存导致无法将网络加深、加宽的问题。

4.优化BERT本身结构进而实现加速的模型。

AI面试指南参考答案:

1)DistilBERT:在BERT的基础上用知识蒸馏技术训练出来的小型化BERT。

2)ALBERT :轻量级BERT,采用了一种因式分解的方法,从而大幅度减少了BERT的模型参数;

3)TINYBERT:在DistilBERT的基础上做了改进——针对Transformer结构的知识蒸馏以及针对pre-training和fine-tuning两阶段的知识蒸馏。

5. BERT模型蒸馏是如何做的?

AI面试指南参考答案:

1)精调阶段蒸馏。例如在Distilled BiLSTM中,教师模型采用精调过的BERT-large,学生模型采用BiLSTM+ReLU进行蒸馏,蒸馏的目标是hard labe的交叉熵和logits之间的MSE。

2)蒸馏隐层知识。例如BERT-PKD是从教师模型的中间层提取知识,从而避免了蒸馏最后一层导致过拟合的风险。

3)预训练阶段进行蒸馏。例如DistillBERT是在预训练阶段进行知识蒸馏,新增加了一个损失函数——cosine embedding loss。

4)蒸馏注意力矩阵。例如MiniLM只蒸馏最后一层,并且只蒸馏教师、学生两个矩阵的KL散度。

6.判重项目,非Bert模型与Bert模型是如何结合的,bagging吗?

AI面试指南参考答案:

两种模型一般是如何结合的?

可以通过模型融合的方法,例如

1)简单的加权融合;

2)通过集成学习的方法。

7.模型集成有哪些手段,各自的优缺点是什么,有哪些应用的场景。

AI面试指南参考答案:

1)Boosting方法:训练基分类器使用串行的方式,即分而治之,大部分情况下,经过 boosting 得到的结果偏差(bias)更小,缺点是数据不平衡导致分类精度下降,训练比较耗时。例如Adaboost 和 Gradient boosting。

2)Bagging方法:训练基分类器使用并行的方式,即集体投票决策,大部分情况下,经过 bagging 得到的结果方差(variance)更小,缺点数据样本量小的时候性能表现较差,而且有时未必能保证基分类器之间相对独立,例如随机森林。

8.时间序列模型有哪些?

AI面试指南参考答案:

1)使用RNN来做CTR预估的模型。其中RNN适用于有序列(时序)关系的数据,CTR预估重点用于学习组合特征。

2)DeepFM模型。该模型兼顾了低阶和高阶特征,可以处理搜索广告中与时间序列相关的数据。

9.场景题:抖音场景下,措建一个搜索广告系统,如何平衡一个广告的商业价值和用户体验呢?

AI面试指南参考答案:

主要从两个方面考虑:1、让用户不用思考;2)不能引发用户的防备。

例如打开APP之前的广告展示,时间不能太长,广告内容可以与用户经常搜索的内容相关。

10.如何优化广告搜索场景中的“相关性”?

AI面试指南参考答案:

通过用户行为、用户信息、时空信息、用户的输入、视频文字理解等海量特征来找出符合用户需求的结果。

11.代码题:正则表达式匹配

AI面试指南参考答案:

1)思路一:回溯法,搜索全部场景匹配。

2)思路二:动态规划。

相似例题参考:https://blog.csdn.net/kayle1995/article/details/106487236


03 结语

看完上面的面经,你觉得难度系数几颗星呢?小编提醒,在这份面经干货中,三次面试都有问到编程题,由此可见刷题的重要性!建议大家着重刷Leetcode HOT 100题库以及《剑指Offer》。

此外,大家对自己简历上的项目一定要十分熟悉,面试官可能会根据项目进行深入提问,特别是技术路线、衡量指标等细节。

最后,希望屏幕前的你能够成功上岸!

 

私信我领取目标检测与R-CNN/数据分析的应用/电商数据分析/数据分析在医疗领域的应用/NLP学员项目展示/中文NLP的介绍与实际应用/NLP系列直播课/NLP前沿模型训练营等干货学习资源。



推荐阅读
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 使用Matlab创建动态GIF动画
    动态GIF图可以有效增强数据表达的直观性和吸引力。本文将详细介绍如何利用Matlab软件生成动态GIF图,涵盖基本代码实现与高级应用技巧。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 知识图谱与图神经网络在金融科技中的应用探讨
    本文详细介绍了融慧金科AI Lab负责人张凯博士在2020爱分析·中国人工智能高峰论坛上的演讲,探讨了知识图谱与图神经网络模型如何在金融科技领域发挥重要作用。 ... [详细]
  • 本文介绍了在达梦数据库(DM7)中通过两种方法实现两表之间的联接更新操作,包括使用子查询的更新语句和MERGE语句的具体应用。 ... [详细]
  • 本项目基于网络上找到的一个启动动画包,针对Sony手机上的Miku启动动画进行了个性化调整,并重新打包以适应CM(CyanogenMod)系统。此版本旨在为CM用户提供更加个性化的启动体验。 ... [详细]
  • 本文深入探讨了Linux内核中进程地址空间的设计与实现,包括虚拟地址空间的概念、内存描述符`mm_struct`的作用、内核线程与用户进程的区别、进程地址空间的分配方法、虚拟内存区域(VMA)的结构以及地址空间与页表之间的映射机制。 ... [详细]
  • 漫画平台发布弹幕指南
    许多用户询问如何在漫画平台上发表弹幕。本文将详细介绍如何在漫画台发布弹幕,帮助用户更好地参与互动,提升阅读体验。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 本文详细介绍了如何在最新版本的Xcode中重命名iOS项目,包括项目名称、应用名称及相关的文件夹和配置文件。通过本文,开发者可以轻松完成项目的重命名工作。 ... [详细]
  • 本文介绍了记事本的基本保存方法以及通过辅助软件实现自动保存的技术,帮助用户更好地管理和保护重要数据。 ... [详细]
  • Fiddler 安装与配置指南
    本文详细介绍了Fiddler的安装步骤及配置方法,旨在帮助用户顺利抓取用户Token。文章还涵盖了一些常见问题的解决方案,以确保安装过程顺利。 ... [详细]
  • 在使用Flex 4.6部署ArcGIS Viewer for Flex 3.7时遇到的问题及解决方案,包括如何正确导入和配置必要的库文件。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 在日常生活中,支付宝已成为不可或缺的支付工具之一。本文将详细介绍如何通过支付宝实现免费提现,帮助用户更好地管理个人财务,避免不必要的手续费支出。 ... [详细]
author-avatar
手机用户2502933677
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有