一些推荐算法的面试题
1)youtubenet里面如何加item特征,以及youtube和dssm相比有啥优缺点?
答:论文没有加,但可以人工加,youtubenet最后一层softmax层就是物品的embedding,所以在初始化的时候用sideinformation的embedding合并后跟最后一层做预测。
双塔分为user item塔,youtubenet其实只有user塔,上层的item塔是softmax出来的,加入其它的sideinformation不好加,不过也能加。
2)i2i实时性更强,因为可以直接在线上拿用户的最近点击来做,所以实时性更强。关于u2i,以lfm来说,一般物品矩阵是天更,用户矩阵会按小时更,所以u2i相比i2i这种,也是有一定的滞后性,出发点不一样。i2i最开始是基于物品的相似,这种是以用户点击行为为相似,但是容易推荐热门商品,所以需要做一个指数衰减,像word2vec这种,它是一种共线关系的捕捉,类似购物篮的那种。且i2i推荐也得分场景,比如做相似推荐,那么就是基于属性做相似,如果是用户历史点击推荐,那就是序列相似。
3)针对视频做召回,是针对完播率以及是否播放建模,比如使用pinsage图采样算法生成embedding,针对该模型训练时准备两份数据(user特征一份,item特征一份),建图训练完毕之后就会得到每个item的embedding,然后通过faiss在线上做相似推荐。
4)场景:在做youtebenet时,统计7天的数据,播放序列有一个最长窗口为5的vid截断,然后下一个vid就是label,高频负采样的时候统计的是7天所有的vid频次做编码,面试官问:如果label vid是第4天上报的,如果用全局vid频次做付采样,那是否会出现数据穿越问题?
答:如果是做召回,使用全局数据召回的就是全部底池的负采样,就不存在穿越问题。但如果是排序的话,就得做第4天那些曝光未点击的物品为负采样。w2v不是考虑的序列性,而是考虑的共线性,所以w2v不存在穿越问题。youtubenet摒弃了时序性,但是在排序的时候需要注意,在召回中因为最终采样优化的是softmax,所以跟穿越没啥关系。
5)某大厂一面:youtubenet项目,数据怎么来的,怎么训练,线上服务怎么配,如果说做的i2i,问为啥不做u2i,做u2i如何做?召回的指标是什么?你做的几路召回效果怎么样,为什么好?讲讲你做的精排流程,模型使用的什么指标(auc以及改进版gauc)?线上线下指标相差较大原因是什么?
6)n2v、w2v、deepwalk区别?冷启动怎么办?(eges)讲讲原理?w2v损失函数是什么?交叉熵如何写?为什么mse不能用于分类?w2v对softmax改进是什么?详细讲讲负采样?了解attention吗?讲讲它的原理?
7)算法:推的构成,判断链表有环。
8)用机器学习模型做项目,如何选择模型?
答:lr fm gbdt wide&deep deepfm din依次迭代最简单的。然后做特征工程,就是怎么做字段。
1.梯度下降总体过程
2.梯度下降基于求导,损失函数并非处处可导,有什么方法解决这个问题
3.神经网络有了解吗
4.神经网络激活函数的作用
5.一个三层神经网络没有激活函数,这个模型的拟合能力在什么水平
6.解释一下deepfm的运作流程和原理
7.w2v的单词是顺序相关的,我们要把它用于推荐数据上做了哪些处理:这个我答构建用户点击行为序列没答到他要的点子上
8.召回评估效果指标
9.解释一下auc的含义
10.1亿数据取topN有什么高效的办法
1.讲过。2.次梯度解决。损失函数如果是l1正则就不可导 次梯度可以解决。3.讲过不多说。4.sigmod relu(会导致批量神经元死亡)prelu(解决神经元死亡)dice (din的激活函数 )tach 5.拟合能力是多维特征交叉的线性模型。6.讲过。7.用在特征上,tfidf 关键词抽取 实体词抽取 embedding 抽取。思想可以用在i2i实现购物篮相似。8.9 说过。10. topn这个分块 可以解决。就是归并排序。类似combiner的思路
机器学习必掌握
逻辑回归,决策树和随机森林,朴素贝叶斯,svm,xgboost
数据挖掘面试题:
1.工作中用的语言是python还是Java
2.平常会用到哪些大数据技术栈
3.数仓用到哪些框架
4.推荐算法选的什么算法
5.w2v 问了一串项目中怎么做的
6.讲一下FM
7.说一下对gbdt的理解
8.介绍一下gbdt算法
9.lr的损失函数
10.说一下交叉熵
11.你们公司推荐算法迭代的过程
12.评估指标
13.有接触推荐算法以外的东西吗
14.讲一下kmeans
15.用户画像的目的是什么
16.问了一些技术栈用过没有
1.讲一下你们项目
2.业务主要关注指标,做这些召回通路有没有根据业务做一些针对性的设计
3.怎么同时优化这些指标
4.提取关键词是提取的什么地方的关键词
5.提取出来的关键词效果怎么衡量,这些关键词用不用做人工审核
6.lda提取的主题怎么用
7.用户画像性别,年龄没填的怎么处理
8.item2vector的点击序列怎么划分的,时间设置的多久
9.eges的损失函数,特征权重是怎么来的
10.eges模型的公式
11.eges模型输出是什么,是个什么问题
12.eges的样本的标签,特征是怎么构建的
13.i2v的样本是怎么构建的,用的什么损失函数
14.i2v的正负样本是怎么构造的
15.als是怎么求解的
16.怎么交替二乘的
17.怎么动态融合的
18.双塔模型负样本怎么构建的
19.dssm的损失函数
20.dssm怎么调参的
2:业务针对需要提高点击的同时,增加多样性。所以多路召回会基于一些字段做召回。i2i的召回 主要用来捕捉序列相关。3.同时优化考虑多极化,最后一次课讲了。5 关键词提取完效果衡量一部分靠人工审核。效果衡量一般就是塞到模型看模型效果 或者 线上指标。6.主题可以作为物料的一个特征 供下游模型使用。7.前期方案可以用固定编码来代替,后面发现性别 年龄对业务很重要,就做了一个基于用户行为判断 性别 年龄的多分类模型。8.序列采集按一个用户session。12。样本标签就是采样序列,采取randwalk。14:负样本根据词频进行热度打压采样,核心就是热度打压的采样,w2v里面有。18双塔模型负样本构建模式,跟排序不一样,负样本是所有的物品低池,可以对负样本构建 可以采样9:1,9是随机物品池(easy sample)1 是曝光未点击(hard sample)20。dssm的参数调节,主要调节学习率,采取warm up 来做。然后尝试了drop out 还有负采样比例。
1)推荐架构流程?
2)决策树、随机森林、gbdt、xgb的关系以及gbdt和xgb的区别?
3)机器学习中EM算法是什么?
4)解释L1和L2?
5)lstm的优缺点?
6)attention思想以及在哪些精排中使用过?
7)解释transfomer思想?
8)tf-idf?
9)特征工程理解?
10)主要了解的召回策略?
11)KMeams算法过程?
12)如果把用户和物品其他特征做到模型中;
13)分类和回归区别?
14)怎么理解交叉熵?
一面15min:(偏spark)
1)python和java的双等号有啥区别?
2)spark shuffle原理?
3)说说spark的transformation和action算子?
4)rdd在什么时候缓存?
5)模型如何进行部署?
二面45min:(偏向数据挖掘)
1)介绍项目;
2)详细介绍项目中冷启动问题?
3)讲讲你如何对用户打标签?
4)讲讲item2vec和node2vec原理?
5)图的节点和边权?
6)了解哪些nlp相关技术以及使用?
7)给你一个百度维基、文本库、内部半结构化数据如何做分类?(开放性问题)
1)项目介绍;
2)协同过滤优化?
3)gbdt原理?
4)gbdt过拟合有几种处理方式?
5)详解node2vec原理?
6)详解fm原理以及优化?
7)团队规模?
8)用户量?以及数据量?
一面60min:
1)项目介绍;
2)协同过滤优化?
3)fm的lr和二阶特征如何拼接?
4)fm如何做实时召回?
5)为什么项目中使用完播率这个指标,而不是其他指标?
6)dssm召回正负样本如何构建?
7)gbdt对残差的理解?
8)dssm的损失函数是什么?softmax多分类拆分二分类原理?
9)通过完播率划分正负样本?
10)详细介绍下项目中deepfm改造的架构流程?
11)deepfm模型大小以及线上推断时间?
12)线上召回时间?
13)介绍下用户的长期和短期兴趣推荐?
二面:
1)如何做兜底措施?兜底的规则是什么?
2)协同过滤如何进行上线?
3)als如何上线?
4)离线计算的视频,你是怎么在线通过服务召回的?需要传入什么参数?
5)线上推断服务你如何组织特征数据的?使用了哪些特征数据?
6)召回如何做指标的?
7)排序算法有哪些?稳定性如何?
8)样本抽取规则?
9)召回需要哪些参数?
10)短视频需要哪些参数进行计算?