从开始接触推荐相关的内容以来,无论是主流的工业应用还是各种博客科普教学,Fm算法始终是推荐这条路上绕不过的重要节点。
因为个人水平有限,始终对于Fm算法的理解都停滞与表面,别人说Fm算法是对LR的升级,是对MF的发扬光大,但是就我自己来说,始终没有理解Fm算法真正的内核所在,或者说的具体一点,就是Fm怎么做到对用户/物品进行向量表示。
俗话说读书百遍其义自见,但是书读百遍,不用心去理解问题,直接看答案会导致你对答案里的方法、技巧根本不能理解,更不要提答案是怎么解决问题的。
对于Fm的一些想法,特此记录,待到搞清楚后,再进行整理。
11.25
Fm算法针对Lr来说,个人理解是加入了2阶的向量组合,说人话就是Lr 只会对单个特征训练参数w,但是单独的特征组合表示的信息有限,如果我们能把单独的特征进行组合例如,岂不是能表示的信息更多。当然阶数越高越能表示复杂信息,但是受制于计算等其他限制,现在大家主要是集中精力于2阶,这样算是对原来单阶一个不小的优化。
那么问题来了,Fm怎么做到2阶表示的。这个公式是二阶表示
Fm是这么做的: 可以看到Fm实际做的是把原来的2阶特征组合的参数拆成了这样的形式。不严谨地讲,可以看成特征对应的向量表示,这样就获得了自己在计算维度上的代理人,后面无论是求相似度还是啥的操作,就能代替自己参与计算了。
施工未完·······