1、你所理解的推荐系统是什么样的?大致流程?所用模型?
推荐系统一方面是为了帮助消费者发现对自己有价值的商品,另一方面是帮助生产者把用户可能感兴趣的商品展现给用户,实现生产者和消费者的双赢。
大致流程主要包括:获取用户特征,召回过程,排序过程(粗排、精排)。
召回模型:
- 规则召回(兴趣标签top,热门top,新品top等)
- 协同召回(基于用户的协同过滤,基于商品的协同过滤)
- 向量召回(FM召回,Item2vec,Youtube DNN向量召回,Graph Embedding召回,DSSM双塔召回)
排序模型:GBDT + LR、Xgboost、FM/FFM、Wide&Deep、DeepFM、Deep & Cross、DIN、BST等
2、双塔模型优势,缺点,如何改进?
双塔模型的优势是速度快,但模型精度还有待提升。
速度快是因为将所有Item转化成Embedding,并存储进ANN检索系统,比如FAISS,以供查询。类似FAISS这种ANN检索系统对海量数据的查询效率高。
而双塔模型为了速度快,必须对用户和Item进行特征分离,而特征分离,又必然导致上述两个原因产生的效果损失。
改进:SENet双塔模型,把SENet放在Embedding层之上,目的是通过SENet网络,动态地学习这些特征的重要性:对于每个特征学会一个特征权重,然后再把学习到的权重乘到对应特征的Embedding里,这样就可以动态学习特征权重,通过小权重抑制噪音或者无效低频特征,通过大权重放大重要特征影响的目的。
3、粗排的目的是什么?
粗排是用来帮精排模型找到那些它本来就要打高分的item,只不过范围更广一些。.按照上面的例子,如果没有粗排,精排模型自己找出来的某top10的item。而粗排的任务就是要找到包含这10个item的一个更小的候选集,既保证了效果,又减少线上预测的负担。
4、wide&deep模型 为什么要有wide层结构,优缺点,如何改进?
wide&deep模型中的wide部分可以通过利用交叉特征引入非线性高效的实现记忆能力,但需要依赖人工特征工程。
改进:DeepFM在Wide&Deep的基础上进行改进,不需要预训练FM得到隐向量,不需要人工特征工程,能同时学习低阶和高阶的组合特征;FM模块和Deep模块共享Feature Embedding部分,可以更快的训练,以及更精确的训练学习。
5、推荐领域GBDT + LR的做法了解吗?
GBDT+LR 由两部分组成,其中GBDT用来对训练集提取特征作为新的训练输入数据,LR作为新训练输入数据的分类器。GBDT+LR的提出意味着特征工程可以完全交由一个独立的模型来完成,模型的输入可以是原始的特征向量,不必在特征工程上投入过多的人工筛选和模型设计的精力,真正实现了端到端的训练。
6、粗排有哪些指标?NDCG了解吗?
(1) NDCG,排序相似性的指标,看精排的排序结果和粗排有多相似
(2) 粗排的召回率/重叠率,粗排的topk和精排的topk有多大占比。
计算DCG,计算公式如下:
其中,rel 为这个排序list,结果i的一个等级得分;i 是指结果i的当前位置序号;
在搜索引擎中,rel等级得分,是由人工抽样数据,并且根据一定的规则打出来的等级得分。
步骤二:
计算IDCG(Ideal DCG),即完美序的DCG;计算方式也同步骤1,只是排序序列不是由算法得出,而是由人工对序列根据一定的评估准则排出来的最佳序列。
步骤三:根据前面2个步骤的出来的结果,计算NDCG,计算公式如下:
7、ROC,PR曲线含义,坐标轴代表什么?
ROC曲线以真正例率TPR为纵轴,以假正例率FPR为横轴,在不同的阈值下获得坐标点,并连接各个坐标点,得到ROC曲线。
PR曲线中的P代表的是Precision(精准率),R代表的是Recall(召回率),其代表的是精准率与召回率的关系,一般情况下,Precision设置为纵坐标,将Recall设置为横坐标。
8、AUC怎么求,实际意义?
AUC:随机取一个正样本和一个负样本,正样本的预测值大于负样本预测值的概率。
AUC计算的关键是找到所有正样本预测值大于负样本预测值的正负样本对。
首先,需要将样本按照预测值进行从小到大排序(最小score对应的sample的rank为1,第二小score对应sample的rank为2,以此类推);
其次,把所有的正类样本的rank相加,再减去两个正样本组合的情况。