推荐算法面经-1
1、描述一下推荐系统的整个流程(架构)
推荐系统负责从海量的内容池中选择用户感兴趣的内容进行展示。整体上分为召回和排序两部分。整体上可以划分为召回、业务过滤、粗排、精排、重排混排、业务逻辑、最终展示这一流程。在召回阶段通过多路召回从海量数据池中得到小规模的候选数据;然后通过策略对部分内容进行过滤后传入排序阶段;粗排对召回数据进行初步排序筛选,是一个中和步骤,将候选集降低量级;精排对粗排结果使用更加精准的网络结构进行排序计算,圈定到目标范围的内容;为了符合一些多业务场景,还可以在精排后重排序,起到打散的作用;最后可以加入一些业务逻辑完成位次排列。
2、什么是多路召回,常见的召回路有哪些?
多路召回指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合在一起供后续排序模型使用,“多路召回策略”是在“计算速度”和“召回率”之间进行权衡的结果,多路召回就像是一种集成学习,通过多条召回路平衡准确和全面。
常见的召回方式有基于内容的策略召回、协同过滤、图召回、深度网路召回等。基于内容的召回通常依赖NLP和CV等模型,深度神经网络以DeepFM、DSSM双塔等经典模型为主,图召回则可以构造社交网络或者依赖GNN模型。
3、召回和粗排的区别
粗排是在召回和精排之中做的一种“折中”选择,区别主要有以下几点:
首先,理念上不同。召回要做到不遗漏,所以面向全库计算,需要考虑多种召回路;而粗排作为排序要做到的是准确,在候选集上开展更为精细的排序计算。
基于理念上的不同,二者在负样本构造上不同。召回的负样本是从全库item中采样,比如热度最高的TopN作为负样本;粗排则可以采用线上曝光作为负样本。
这样的设计出发点是作为召回和排序的平衡,在广度和精度上做一个中和。多样性召回保障推荐可以跳出某一类别,粗排在多样性间做初步的筛选交给精排计算。
4、为什么排序要分为粗排和精排?
排序拆分为粗排和精排是面对数据量暴涨的解决方案。粗排可以缓解精排的计算压力,使用较小的代价进行推理,比如在几千个量级的内容上进行排序,最终输出几百量级的精排候选集。精排则使用更多的特征、更复杂的模型结构进行计算,推理代价较高但更加准确,直接生成最终展示的TopN内容。
5、DSSM模型的原理是什么?
DSSM的全称是Deep Structured Semantic Model,从结构上由两个独立的前向网络和最终拼接后的前向网络组成,因此也称为双塔模型。两个独立的前向网络的输出层维度相同,可以实现对文本等信息的向量化转变,最终用于相似度匹配场景。
我们可以统泛的将两个网络的原始输入称为Query和Key,通过神经网络,Q、K的原始特征信息分别生成为低纬度的语义向量,也就是常说的Embedding向量。当Q、K在真实环境中关系密切时,两个Embedding向量在空间中应该相邻,使用向量内积计算即可满足这一条件。
DSSM模型在推荐系统中使用普遍,通常我们以用户的曝光/点击作为训练集,在此情景下,可以在模型末端引入sigmoid函数进行0-1预测,此时模型的双塔变为user和item,因为两个DNN相互独立,无论是计算Embedding还是模型迭代,都非常容易。生成的Embedding向量通常用于召回中。
6、DSSM怎样解决OOV问题的?
OOV是out of vocabulary的简称,OOV问题中实际数据在训练过程中没有出现,因此可能导致无法计算或计算效果很差。常见的解决方式有以下几种:
(1)哈希处理,这也是论文中所采用的方法,无论是直接哈希还是n-gram,都可以避免OOV问题的出现,当然哈希冲突也是该方法的弊端。
(2)在训练过程中,人为的随机加入负样本,可以随机将特征转化为[unknown]形式,同时也可以借鉴YouTube的思路,随机的将最热门Item加入训练集中。
(3)对于英文这样的语言,所有构成都由26个字母组成,我们可以使用subword的方法查找训练中出现过的子串。
7、DSSM模型在召回和粗排应用中的区别
从正负样本的定义上:在召回阶段,面向整个内容池,我们可以认为还没有与前端产生交互,可以人为成功曝光的就是正样本,负样本通常用TopN的热门item。在粗排过程中,排序结果直接影响展示,我们使用真实的曝光点击作为正负样本,点击作为正样本,曝光未点击作为负样本。
在特征选择上:召回阶段更多使用一些抽象特征,排序可以使用标题等直接特征。
使用方式上:召回模型最终使用双塔顶处的向量作为user和item的Embedding,在召回阶段进行检索。排序模型使用模型本身的输出进行打分。
8、常见的向量召回有哪些?
FM的二阶部分,Item2Vec,图网络Embedding,双塔,图谱,LLM
9、推荐系统的PV和UV代表什么?
PV是Page View的缩写,是页面访问量,页面每获得一次点击PV便会加一。PV反映的是网页总的访问次数,每刷新一次也算,PV与用户点击进入的次数成正比,但PV不代表用户数量,同一用户点击N次会让PV增加N。
UV是Unique Visitor的缩写。是访问的用户总数,可以理解为终端数量,根据IP和cookies进行统计更新。UV不同于PV,可以反映真实的用户数量。但同一个用户点击N次只会使UV增加1。
10、协同过滤推荐和基于内容的推荐的区别是什么?
(1)两者的数据维度不同。协同过滤所购建的共现矩阵基于用户的历史点击行为开展后续分析计算,基于内容的推荐则侧重于用户和Item的属性信息。在协同过滤中,用户的属性便是点击过的物品,物品的属性是点击过的用户。在基于内容的推荐中,用户和物品的属性是年龄、性别、颜色等特征。
(2)两者在思想的切入点上不同。协同过滤试图通过大量用户喜欢的物品之间的数据发现用户的潜在兴趣,而基于内容的推荐则希望通过不同特征的挖掘判断用户兴趣。
(3)两者实现的技术上不同。协同过滤基于矩阵计算和矩阵分解展开,而基于内容的推荐将特征作为输入传入分类器中完成判断,比如逻辑回归。
(4)两者在开发过程中对性能提升时的侧重点不同。协同过滤侧重于商品交互记录的完整与广泛,基于内容的推荐很多情况下侧重于特征的挖掘与特征的处理手段。