快手暑期实习 广告算法实习生 1,2面面经 已OC
lz主要做RL方向,3月20日投简历,21日约面试
3月24日 一面 70min
一面主要问简历和做题
自我介绍;
做题:最接近的三数之和(lc.16):做过类似的题,但第一时间没反应过来是排序+双指针,往递归和回溯的错误思路想了很久,想了一个O(N^2)的暴力解法还卡了很久没写出来,在面试官老师提示先排序后才想到用双指针写了出来;
介绍最熟悉的项目;
项目中MLP网络模型的输入输出是什么;
损失函数和优化方式:多分类交叉熵损失和Adam优化;
讲讲Adam优化的优化方式:加入了惯性梯度和历时梯度平方和;
连续网络输入做了什么处理:只做了归一化;
网络输出的准确率怎么衡量:通过对比和真实标签的预测准确率;
DQN是On-policy还是off-plicy?有什么区别:off-policy,然后以Q-Learning和Sarsa算法举例讲了下off-policy和on-policy的区别;
value based和policy based算法的区别:还是通过算法举例讲了下两者区别,其中value based采样效率高但是有偏差,policy based收敛性好但是方差大;
反问:面试中可以改进的问题:做题经验太少,反应慢,还得多刷,讲项目要先讲解决的问题和亮点,然后综合讲清楚所用的模块输入输出,目标函数,并且以更通用的语言来讲
快手最吸引你的地方:迭代速度更快,成长速度更快
总结:面试官老师人还是很nice很有耐心,面试的算法题难度中等偏上,问的问题从项目上来讲很细节,但基本都是基础题,多复习都能涵盖
3月30日 二面 60min
二面分为三个部分:介绍项目,技术问题,算法题
面试官老师上来先介绍了自己的部分主要负责流量竞价分配;
项目部分:
介绍项目,要求从背景、问题、解决方法以及可能的优化分别进行介绍;
项目中用到mlp网络,介绍一下网络前向的计算过程:说了输入特征数据形式、神经元节点计算原理和激活函数;
输入特征怎么处理的:归一化到[-1,1];
归一化[-1,1]和归一化到[0,1]对后面的网络计算有什么影响吗:没答上具体影响,说是直觉处理;
将输入特征做求平均、求平方、开方以及池化处理后再输入网络有什么不同的影响:只说了池化能对特征下采样降低维度,另外的处理没用过没答上来(我太菜了QAQ);
最后用了什么loss函数:交叉熵;
手写一下交叉熵公式;
为什么用交叉熵不用均方误差:从数学推导上解释了一下分类任务中用交叉熵的优势
介绍下项目中用到的MAPPO算法:说了下PPO的AC结构训练原理和CTDE结构的优势
技术部分:
给一个字典,按照val值降序排序怎么操作,说思路:转换成队列排序后再转回来(其实可以直接调函数没答上)
用pytorch实现一下mlp网络结构,包括损失函数:比较简单直接写出来了
算法题:
买卖股票的最佳时机(lc.122):运气比较好出了道做过的原题,用dp做出来了,if else判断有点小问题
反问:面试中的问题:项目实现经验有点少,可以多做点github项目练手
老师怎么看待最近互联网下行:大环境肯定受影响,但公司的业务逻辑和人才引进策略不会变,个人的核心竞争力不受影响
快手最吸引你的地方:组内比较务实
总结:面试官老师人依然很nice,语气温和很有耐心,二面问的项目细节比一面多了很多,也多了写公式和写网络结构等上手操作,不过都是基于项目可能用到的最基础的问题,没答上主要还是自己平时积累不够,继续努力吧
===============================================================
4月2日更新
中午收到hr电话,发口头offer了,快手外循环算法部门,祝大家都能拿到理想的offer!
#快手暑期实习##春招##实习##面经##面试流程##Python##机器学习##算法工程师#