做时间轴的在线网站,《网站基础建设-首保》,中国黄页企业名录,哪个网站公司做的好reference#xff1a;知乎 FM算法解析 LR算法没有二阶交叉 如果是id类特征#xff0c;这里的x是0/1#xff0c;raw的特征输入就是float#xff0c;当然#xff0c;在我的理解里#xff0c;一般会把raw的特征进行分桶#xff0c;还是映射到0/1特征#xff0c;不然这个w… reference知乎 FM算法解析 LR算法没有二阶交叉 如果是id类特征这里的x是0/1raw的特征输入就是float当然在我的理解里一般会把raw的特征进行分桶还是映射到0/1特征不然这个wiw_iwi的功能也太重了…?想想其实是没有道理的 其实为什么常把连续值的变量进行分桶我也不是很清楚… 只是大家都这么干…似乎效果会更好 poly2算法引入二阶交叉 二阶交叉能提升模型的表达能力辛普森悖论 先进行特征的笛卡尔积然后在赋予这个笛卡尔积各值一个权重。举例 3个特征分别是 f1国家( 候选集为{中国,美国,加拿大} )f2性别( 候选集为{男,女} )f3人群( 候选集为{青年,中年,老年} ) poly2算法就是先对特征进行笛卡尔积获得交叉特征然后在交叉特征的基础上做LR所以在此时会生成三个新二阶特征 f1f2国家x性别( 候选集为{中国男,中国女,美国男,美国女,加拿大男,加拿大女} )f1f3国家x人群( 候选集为{中国青年,中国中年,中国老年,美国青年,美国中年,美国老年,加拿大青年,加拿大中年,加拿大老年} )f2f3性别x人群( 候选集为{男青年,男中年,男老年,女青年,女中年,女老年} )。 可以看到此时二阶特征的候选集就一下子大了很多每一个候选项都会对应一个权重当特征为1的时候该权重生效特征为0的时候权重就不生效也不会得到反向传播的梯度进行自我更新所以此时二阶交叉特征的权重变成了69621个一阶特征的权重有3238个。我举的例子中一阶特征候选集不大但实际中一阶特征候选集是会比较大的也就是常说的特征稀疏,比如类目特征可能就有几百上千维再和另一个比较稀疏的特征进行笛卡尔积二阶交叉特征的权重数量就会陡增同时也因为两个稀疏特征的共现概率更低了所以训练收敛难度会更高。 FM进行计算简化 先将特征映射成稠密的隐向量可以理解为one-hot的候选集映射到一个embedding-lookup table中复杂度分析 参数量复杂度计算时间复杂度 O(kn2)O(kn^2)O(kn2) -- O(kn)O(kn)O(kn) 其实现在大部分的WD的模型里面one-hot向量映射到embedding向量的过程就是因式分解的一个过程wide侧的手动特征交叉则是POLY2的思想 复杂度分析