KTV歌曲推荐-因子分解机和DeepFM
3 月,跳不动了?>>> 前言 今天应该是推荐算法的最后一篇了,因子分解机deepFM。此处跳过了FM和FFM,因为我马上要去干别的了,所以直接用deepFM收尾吧。 先po两篇论文 FM论文 deepFM论文 看完这两篇论文,基本就能理解FM和DeepFM了。为了节省大家的时间我简述一下一些基本思想。 FM因子分解机 在FM出现以前大多使用SVM来做CTR预估,当然还有其他的比如SVD++,PITF,FPMC等,但是这些模型对稀疏矩阵显得捉襟见肘,而且参数规模很大。 那FM解决了什么问题: 更适合做稀疏矩阵的参数计算 减少了需要训练的参数规模,而且特征和参数数量是线性关系 FM可以使用任何真实数据进行计算 其实FM出现主要解决了特征之间的交叉特征关系,此处省略了稀疏矩阵导致的w参数失效的模型直接说最终模型: 这里通过一个向量v的交叉来解决了稀疏矩阵导致的导致参数失效的问题。 那他参数的规模为什么小呢,接下来就是推导后面二次项部分: 从这里可以看出参数的复杂度是线性的O(kn)。 Keras对FM建模 这里是单纯的FM模型代码,这代码是借鉴别人的,我发现有一个问题就是,他最后repeat了二次项,这块我不是太明白,贴出来大家有兴趣可以一起讨论。 import os os.environ["CUDA_VISIBLE_DEVICES"]="-1" import keras