2022.03.17 周四晚 9.00 - 10.00+

    自我介绍

    问简历上的住小帮推荐算法实习项目(自己介绍,中间会提问):

    1. 打不平指的是?
    • 按基线模型原样重训 AUC 低很多
    1. 是什么原因呢?
    • 并发的影响、等
    1. 模型是在线训练的吗,基线模型跑了多久了?
    • 是和基线模型离线训练的部分比较

    讲了下模型参数量大,分析结构重要性、特征选择

    1. 这个模型是 MMOE 吗?
    • 不是,讲了下区别
    1. 有几个不同的 task?
    • 5 个,但真正还是用在 feed 上,所以只关注 feed auc 的提升
    1. 画下大致的模型结构?
    2. NAS 和特征选择是公司里的工具吗?
    3. 特征选择后输入的特征是只减少还是有减有加?
      1. 有加有减
    4. 200 个特征选 100 个特征你会怎么做?
    • 给每个特征分配一个变量 w,经过 softmax 得到权重,根据权重大小(代表特征重要性)选择
    1. 还有其他的做法吗?
    2. 你这样只能选择特征,不能同时选择特征和特征交叉项
    • 确实我做的工作都是对特征、特征交叉项分开选择的,本身模型结构也是分开的,deep nn tower 输入独立的特征,dfm tower 输入特征交叉项
    1. MTL 不同人物的 task weight?
    • 没印象了,之前没关注过,面试官反馈说这才是 MTL 的关键——task weight(grad norm,weight ascent?)
    1. DFM tower 的结构?
    2. FM N 个特征,每个特征 16 维,则 NN 的输入维度是多少?
    • 我们这里交叉项的对,是特定的,不是所有特征都进行交叉
    1. 所以工作主要是做特征和维度的搜索?
    2. 特征选择使用的是公司的工具?
    3. 你做的工作中有没有什么创新的地方
    4. 离线和线上指标不一致的情况,比如离线有效果、线上没效果,或者离线没效果、线上有效果,遇到这种情况你会怎么排查问题
    5. 你觉得,两种比较方法,方法一是你你用的实验模型和极限模型的离线 AUC 进行对比,方法二是两个模型都上线 AB 的时候,在线更新训练,用今天最后时刻的模型去预测明天的 AUC,哪个更准确?
    • 要优化的就是在线的指标,所以在线的比较可能更准确。但是离线是为了快速排除不可行的方法,不可能所有模型都上线 AB,一次 AB 也只能比较一组模型
    1. 介绍一下 AUC
    • 讲了下几何意义和概率意义
    1. 场景题:两份数据集 AUC 相等,但预测的打分不同,混合后 AUC 会怎么变化?
    • 如果混合后正序样本对比例不变,那么 AUC 就不变,如果变大了则 AUC 增大,否则下降
    1. 更具体的题目: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
    • 就是 正序对数量/正负样本对总数
    1. 介绍推荐相关的模型?(具体题目不记得了)
    • 讲了简历上类似 PLE 的 MTL 模型,讲了 MMOE 和 PLE 的缺点(就是简历上这个 MTL 模型优化的背景)
    1. 那参数量不会增加很多吗?
    • 只增加了 3% 的参数量,因为做了特征选择,并且分配较小的维度
    1. label 的取值?
    • 0、1
    1. 用的损失函数?
    • 交叉熵
    1. 写一下交叉熵损失函数的公式,或者从最大似然推导出来
    • 直接写了二分类的交叉熵公式 微信视频号&直播推荐算法一面凉经 - 图1
    1. 如果 label y 的取值是 -1 和 1,交叉熵公式会变成什么样?
    • 从最大似然推到的话,会更清晰,当时面试的时候大概知道要怎样,但还是懵住了没写出来
    1. 二分类为什么不用均方差损失函数?
    • 代价函数不是凸函数
    1. 激活函数用的是?
    • sigmoid
    1. 二分类用 sigmoid 和 softmax 哪个好?
    • 引导了下,让写下公式,
    • sigmoid:微信视频号&直播推荐算法一面凉经 - 图2,只用算一个指数
    • 二分类的 softmax:微信视频号&直播推荐算法一面凉经 - 图3,要算两个指数,所以 softmax 的计算复杂度更高
    1. L1 norm 为什么能导致稀疏解?
    • 面试官说如果是那个常见的图就不要说了
    • 说了下函数叠加法
    1. 简历上的 CVR 模型的转化是什么,下单吗?
    • 是的
    1. 你这个是从曝光到下单还是从点击到下单?
    • 从曝光到下单
    1. 转换存在延迟,即,正样本曝光到下单会间隔很久,这个 label 怎么确定?即 label match,这是 CVR 最重要的
    2. 蒸馏的损失函数?
    • 分为 soft loss 和 hard loss
    1. soft loss 和 hard loss 的权重有没有设置,还是都是 1?
    • soft loss 0.95,hard loss 0.05(也就是 soft loss 为主)
    1. 有没有试过别的权重?
    • 当时就试了几组,取了最好的

    算法题:

    1. 梯度下降法求微信视频号&直播推荐算法一面凉经 - 图4,详见见 69. x 的平方根 的牛顿迭代法
    • 忘了怎么做了,换了一道题
    1. 大数乘法 43. 字符串相乘
    • 做题速度还行,但没有考虑负数的情况

    反问:

    1. 你们做的是微信视频号/直播小红点推荐,那怎么判定用户是被小红点(一个头像 or 一句话/标题)吸引点击的,还是自己想刷视频了?
    • 面试官说这是无法判断的。只能判断用户是不是因为强迫症想消灭小红点才点进来的,如果是这种情况一般几秒钟就退出去了,就是无效点击。

    面试官建议:

    • MTL 最重要的是 task weight(grad norm,weight acsent?)
    • CVR 最重要的是 label match,正样本曝光到下单间隔好久
    • 了解一下上面相关的论文,再包装包装
    • 简历上有写的东西,一般面试官就会围绕着这些内容问,看你钻研的是否深。比如说 MTL,你不能只是用了下,与 MTL 相关的都要搞懂和思考,这其实也考察了你的学习和探索能力。