试着答了下 2022年字节教育提前批算法面经_笔经面经_牛客网 (nowcoder.com)
有啥不妥的地方一起交流一下呀~
1. node2vec的dfs和bfs分别的作用是什么,哪一个是保留结构信息,哪一个保留同质信息
node2vec通过调整游走权重的方法使graph embedding结果权衡“同质性”和“结构性”。
进出概率越大,倾向于DFS,距离相近的embedding尽量相似,越注重同质性,注重同品类、同属性或经常被一同购买的商品。
返回概率越大,倾向于BFS,结构上相似的节点embedding尽量相似,越注重结构性,注重各品类爆款、各品类最佳凑单商品等拥有类似趋势或结构性属性的商品。
2. bert的结构是什么,position embedding中为什么要采用加和,而不是三个embedding concat后再做变换,这两者区别是什么。
bert的结构就是token emb + pos emb + segment emb + 12层(base)transformer encoder + 所有位置得到的隐状态做sequence output + [CLS]位继续做fc+tanh的pooler output
为什么加和,这个问题被热烈讨论过
https://www.zhihu.com/question/374835153/answer/1078523590 的答案比较好理解
w(x, p) = w_x x + w_p p , concat起来再embedding和embedding之后之间相加是等效的。
说个题外话,这个加和问题我在社招的时候也被问到过,算是一个热门考点了。
3. bert是怎么预训练的,Albert对bert做了什么改进。
MLM + NSP
Albert: NSP 换成了更难得SOP,同时对embedding引入了矩阵分解,以及对其他层引入了参数共享策略,能够大大减少参数量
4. 如何对新用户做冷启动,给新用户推什么样的内容
推热门的,或者基于用户注册信息做推荐,或者汤普森采样等算法。
5. 为什么推荐领域里喜欢用AUC这个指标。
AUC只关注模型预测得分的相对大小,非常适合排序业务,例如0.7的AUC,其含义可以大概理解为:给定一个正样本和一个负样本,在70%的情况下,模型对正样本的打分高于对负样本的打分。可以看出在这个解释下,我们关心的只有正负样本之间的分数高低,而具体的分值则无关紧要。
详细的,推荐看:为什么搜索与推荐场景用AUC评价模型好坏? (qq.com)
6. XGBoost和其他二分类器的一些区别,各个分类器的优缺点是什么
这个问题一两句话肯定说不完的,说个大概就可以了
其它二分类有SVM、LR、朴素贝叶斯等
XGBoost是从GBDT发展过来的
GBDT可以理解为boosting+DT,在每一步都依次:
1. 计算损失函数的负梯度
2. 用回归树拟合负梯度,得到叶子节点的划分方式
3. 计算出使损失损失函数最小的叶子节点输出值,
xgboost对损失函数进行了二阶泰勒展开,同时使用了一二阶导数,更加准确,同时引入了正则项,防止过拟合
xgboost还对gbdt的二三步进行了合并,决策树分裂的时候不再使用均方误差而是贪心地最小化最终损失函数误差
xgboost还对工程效率进行了优化,使用多线程对不哦那个特征划分点的分裂做了并行,同时还用了内存存储、CPU缓存、分块压缩等方式优化了数据读写。
相对来说,SVM需要的数据量较少,但是速度慢、对缺失值敏感、难以保证精度效果(但是推导起来复杂,很适合拿来考试,手动狗头)
逻辑回顾可解释性强,可以online learning,可以加正则,可以并行,但想要有好的效果需要大规模数据以及巧妙的特征工程设计。
朴素贝叶斯分类效率稳定、参数很少、算法简单,但它的特征相互独立的假设实际应用中往往不成立,它的错误率也比较高。
7. 如果特征维度大且稀疏,用XGBoost和LR哪个好一点
LR更好,gbdt处理高维稀疏特征容易过拟合
8. Sigmoid函数的梯度消失和梯度饱和问题体现在哪里。
sigmoid函数存在曲线平缓的饱和区,这部分区域的梯度几乎为0,在计算机精度限制下很可能发生下溢
全部评论
(1) 回帖