因子分解机(FM) 和深度神经网络(DNN)

  在Baidu上以FM和DNN为关键词搜索的结果中,我找遍了都没看明白FM和DNN怎么能联系在一起,上周在导师讨论会的压力下,终于自己想明白了,这里记录一下。

  在上一篇blog中,已经介绍了FM模型,对FM模型进行求解后,对于每一个特征\(x_i\)都能够得到对应的隐向量\(v_i\),那么这个\(v_i\)到底是什么呢?

  想一想Google提出的word2vec,word2vec是word embedding方法的一种,word embedding的意思就是,给出一个文档,文档就是一个单词序列,比如 “A B A C B F G”, 希望对文档中每个不同的单词都得到一个对应的向量(往往是低维向量)表示。比如,对于这样的“A B A C B F G”的一个序列,也许我们最后能得到:A对应的向量为[0.1 0.6 -0.5],B对应的向量为[-0.2 0.9 0.7] 。

  伦敦大学张伟楠博士在携程深度学习Meetup[2]上分享了Talk《Deep Learning over Multi-field Categorical Data – A Case Study on User Response Prediction in Display Ads》。主要讲了他基于DNN来解决CTR prediction的想法,其中有关于DNN输入层的设计图如下:

![](https://images2018.cnblogs.com/blog/1325174/201803/1325174-20180311000020739-1580370595.png)
  其实,在学习FM模型的时候,我们得到的就是各个离散特征的embedding表示,即FM求解得到的$v_i$就是对应特征的embedding,因此就可以将稀疏的离散特征转化为连续的多维向量,就得到了DNN的输入层。
posted @ 2018-03-10 23:56  Yinhongyu  阅读(3503)  评论(0编辑  收藏  举报