深度学习面经 - FM、FFM、DeepFM系列

简介:FM、FFM和DeepFM等都是用于解决推荐系统和CTR预测等问题的机器学习模型,能够进行一些特征交叉的工作,也是必备的一些知识点。下面整理了一些关于它们在面试中常问的一些知识点。

简单描述下FM、FFM、DeepFM的联系与区别?

答:FM是一种基于因子分解的模型,用于解决稀疏特征下的预测问题。它通过学习特征之间的交互关系来捕获特征的二阶组合特征。FM可以有效地处理高维稀疏数据,并且参数规模与特征数量和特征维度相关,适用于处理稀疏数据的推荐问题。

FFM是FM的一种扩展,它引入了"Field"的概念,将特征分组到不同的Field中。在传统FM中,所有特征都被视为同一组,而FFM将不同Field中的特征之间的交互建模,更好地捕获了特征之间的非线性关系。FFM适用于处理大规模高维度稀疏数据,并且在处理带有高基数特征的数据时表现更优。

DeepFM是将深度神经网络与FM模型相结合的一种模型。它同时考虑了FM模型的高阶特征交互和深度神经网络的非线性表示学习能力。DeepFM首先通过FM部分来学习特征的低阶交互特征,然后将原始输入和FM部分的输出送入神经网络部分,进一步学习特征的高阶组合特征。由于引入了深度神经网络,DeepFM可以更好地学习数据的抽象特征表示,适用于处理更复杂的数据模式和更大规模的数据集。

FM和LR有什么关系吗?

答:我觉得它其实就是对LR这个模型做的一个有化改进,因为LR我们知道,它的每一个特征之间都是独立输出的,需要手动的交叉特征比较麻烦,而FM通过对任意的两个特征之间进行交叉来达到这个目的,从它的公式的表示上,我们也可以很容易的看出来,它的目标函数由前面的一个LR加上后面的一个两个向量vectore的内积组成的一个交叉项,就是在后面这一部分完成了特征的组合。FM的目标函数是:代表每一个特征xi可以学出一个向量vi,每一个特征xj可以学出一个向量vj。

写一下FM的公式?它的时间复杂度是多少?是否可以做优化?

答:FM的公式如下所示: alt

<vi,vj>是输入特征i,j之间的交叉参数,vi和vj都是k维向量。 总体来说,FM的公式是一个通用的拟合方差,可以采用不同的损失函数用于解决回归、分类的问题,可以用MSE来做回归,也可以用交叉熵损失来做分类,直观上来看,FM的复杂度是O(kn^2),但是FM可以进行化简,化简成一个和的平方 - 平方的和这样一个形式。具体如下:化简完的时间复杂度为O(kn)。 alt

最直接的想法就是直接把FM得到的结果放进sigmoid中输出一个概率值,由此做CTR预估,事实上我们也可以做召回。由于FM模型是利用两个特征的Embedding做内积得到二阶特征交叉的权重,那么我们可以将训练好的FM特征取出离线存好,之后用来做KNN向量检索。

FM中如何处理数值型变量?如何处理multi-hot分类变量?

答:FM模型与FFM模型天然为类别型特征设计,如果不处理数值型特征,以年龄为代表,那1岁和99岁的在二阶特征交叉部分得到的结果差距极大。相当于对隐向量做了缩放。 基于以上理由要对数值型特征进行离散化处理。离散化处理的方式有很多可以等距分桶,等频分桶,也可以根据业务知识分桶。

FM和多项式核SVM的区别?

多项式核的SVM的公式如下: alt

可以看到虽然和FM模型的表达式很相似。区别在于SVM的二元特征交叉参数是独立的,比如说它的交叉参数是Wij,而FM中<vi,vj>不是相互独立的,是相互影响的。多项式SVM,交叉的多个特征需要在训练集上共现才能被学习到,否则该对应的参数为0,这样的话对于测试集上的情况而言就失去了意义。因此在稀疏的条件下,共现很难,整体性能表现不佳。而FM通过向量化的交叉,可以学习到不同特征之间的交互,进而提取到更深层次的抽象意义。

了解FFM吗?简单介绍下?

答:FFM模型其实就是在FM模型的基础上,引入了Field这个概念,在fm中,一个特征x与其他的特征交叉使用的是同一种embedding。而FFM它会事先将特征按照一定的规则分为不同的field,特征x属于某一个特定的field,每个特征将会被映射成多个embedding,每个embedding对应一个field,当两个向量做特征组合的时候,用两者对应的field的embeddi

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

小白机器学习面试指南 文章被收录于专栏

林小白的机器学习指南,从本人面试的机器学习算法岗位出发,对机器学习“八股文”做详细的介绍、推导;

全部评论

相关推荐

02-18 17:30
腾讯_TEG_技术
多刷**&nbsp;背八股&nbsp;刷面经&nbsp;项目话术准备好&nbsp;不会差的!!!后台看到好多小伙伴们都出现其中一个环节的错误,,,可惜了抓紧机会吧&nbsp;有的是hc&nbsp;但缺的就是稍微用心的人
野猪不是猪🐗:多刷星星,背八股背话术,真的能过你们?对一个个没实习过的学生狂问场景题设计题和底层深挖,别以为我不知道一边说缺人还一边各种kpi面
点赞 评论 收藏
分享
西松屋:说明原部门有机会把
点赞 评论 收藏
分享
评论
点赞
11
分享

创作者周榜

更多
牛客网
牛客企业服务