2022.03.17 周四晚 9.00 - 10.00+
自我介绍
问简历上的住小帮推荐算法实习项目(自己介绍,中间会提问):
- 打不平指的是?
- 按基线模型原样重训 AUC 低很多
- 是什么原因呢?
- 并发的影响、等
- 模型是在线训练的吗,基线模型跑了多久了?
- 是和基线模型离线训练的部分比较
讲了下模型参数量大,分析结构重要性、特征选择
- 这个模型是 MMOE 吗?
- 不是,讲了下区别
- 有几个不同的 task?
- 5 个,但真正还是用在 feed 上,所以只关注 feed auc 的提升
- 画下大致的模型结构?
- NAS 和特征选择是公司里的工具吗?
- 特征选择后输入的特征是只减少还是有减有加?
- 有加有减
- 200 个特征选 100 个特征你会怎么做?
- 给每个特征分配一个变量 w,经过 softmax 得到权重,根据权重大小(代表特征重要性)选择
- 还有其他的做法吗?
- 你这样只能选择特征,不能同时选择特征和特征交叉项
- 确实我做的工作都是对特征、特征交叉项分开选择的,本身模型结构也是分开的,deep nn tower 输入独立的特征,dfm tower 输入特征交叉项
- MTL 不同人物的 task weight?
- 没印象了,之前没关注过,面试官反馈说这才是 MTL 的关键——task weight(grad norm,weight ascent?)
- DFM tower 的结构?
- FM N 个特征,每个特征 16 维,则 NN 的输入维度是多少?
- 我们这里交叉项的对,是特定的,不是所有特征都进行交叉
- 所以工作主要是做特征和维度的搜索?
- 特征选择使用的是公司的工具?
- 你做的工作中有没有什么创新的地方?
- 离线和线上指标不一致的情况,比如离线有效果、线上没效果,或者离线没效果、线上有效果,遇到这种情况你会怎么排查问题?
- 你觉得,两种比较方法,方法一是你你用的实验模型和极限模型的离线 AUC 进行对比,方法二是两个模型都上线 AB 的时候,在线更新训练,用今天最后时刻的模型去预测明天的 AUC,哪个更准确?
- 要优化的就是在线的指标,所以在线的比较可能更准确。但是离线是为了快速排除不可行的方法,不可能所有模型都上线 AB,一次 AB 也只能比较一组模型
- 介绍一下 AUC
- 讲了下几何意义和概率意义
- 场景题:两份数据集 AUC 相等,但预测的打分不同,混合后 AUC 会怎么变化?
- 如果混合后正序样本对比例不变,那么 AUC 就不变,如果变大了则 AUC 增大,否则下降
- 更具体的题目:A:正 1 条(pctr = 0.1),负 10 条(8 条 pctr 0.09,2 条 pctr 0.11);B:正 1 条(pctr 0.01),负 100 条(80 条 pctr 0,009,20 条 pctr 0,011);则数据集 A、B 以及混合后的 AUC?
- A、B 都是 0.8(A 是 8/10,B 是 80/100),混合后是 (8+100+80)/(2*110) = 188/220
- 就是 正序对数量/正负样本对总数
- 介绍推荐相关的模型?(具体题目不记得了)
- 讲了简历上类似 PLE 的 MTL 模型,讲了 MMOE 和 PLE 的缺点(就是简历上这个 MTL 模型优化的背景)
- 那参数量不会增加很多吗?
- 只增加了 3% 的参数量,因为做了特征选择,并且分配较小的维度
- label 的取值?
- 0、1
- 用的损失函数?
- 交叉熵
- 写一下交叉熵损失函数的公式,或者从最大似然推导出来
- 直接写了二分类的交叉熵公式
- 如果 label y 的取值是 -1 和 1,交叉熵公式会变成什么样?
- 从最大似然推到的话,会更清晰,当时面试的时候大概知道要怎样,但还是懵住了没写出来
- 二分类为什么不用均方差损失函数?
- 代价函数不是凸函数
- 激活函数用的是?
- sigmoid
- 二分类用 sigmoid 和 softmax 哪个好?
- 引导了下,让写下公式,
- sigmoid:
,只用算一个指数
- 二分类的 softmax:
,要算两个指数,所以 softmax 的计算复杂度更高
- L1 norm 为什么能导致稀疏解?
- 面试官说如果是那个常见的图就不要说了
- 说了下函数叠加法
- 简历上的 CVR 模型的转化是什么,下单吗?
- 是的
- 你这个是从曝光到下单还是从点击到下单?
- 从曝光到下单
- 转换存在延迟,即,正样本曝光到下单会间隔很久,这个 label 怎么确定?即 label match,这是 CVR 最重要的。
- 蒸馏的损失函数?
- 分为 soft loss 和 hard loss
- soft loss 和 hard loss 的权重有没有设置,还是都是 1?
- soft loss 0.95,hard loss 0.05(也就是 soft loss 为主)
- 有没有试过别的权重?
- 当时就试了几组,取了最好的
算法题:
- 梯度下降法求
,详见见 69. x 的平方根 的牛顿迭代法
- 忘了怎么做了,换了一道题
- 大数乘法 43. 字符串相乘
- 做题速度还行,但没有考虑负数的情况
反问:
- 你们做的是微信视频号/直播小红点推荐,那怎么判定用户是被小红点(一个头像 or 一句话/标题)吸引点击的,还是自己想刷视频了?
- 面试官说这是无法判断的。只能判断用户是不是因为强迫症想消灭小红点才点进来的,如果是这种情况一般几秒钟就退出去了,就是无效点击。
面试官建议:
- MTL 最重要的是 task weight(grad norm,weight acsent?)
- CVR 最重要的是 label match,正样本曝光到下单间隔好久
- 了解一下上面相关的论文,再包装包装
- 简历上有写的东西,一般面试官就会围绕着这些内容问,看你钻研的是否深。比如说 MTL,你不能只是用了下,与 MTL 相关的都要搞懂和思考,这其实也考察了你的学习和探索能力。
