DeepFM模型阅读笔记

--

模型结构:

和一般的DNN模型比起来,DeepFM模型的input要经过一个FM层,同时经过DNN层,最后FM层和DNN层的结果加起来成为logits。

模型目的:

DeepFM可以看作是对Deep&Wide model的改进,将wide layer从linear改成了fm。DNN擅长高阶特征的交叉;FM则可以增强低阶特征的交叉,极大简化feature engineering的work。

FM的结构:

The output of FM is the summation of an Addition unit and a number of Inner Product units.

第一部分:一个简单的线性变化

第二部分:FM部分的特征交叉,看起来复杂度是O(kn²),但可以通过一定运算简化成O(kn),原理是:

ab = 1/2 [(a+b)²-(a²+b²)]

工程实现上,a可以看做input vector,b则是参数V.

Comment:

在实际应用中,这个模型也会增加serving costs。在大公司里,如果feature engineering已经非常完善了,开发了很多交叉特征,那么FM低阶特征交叉的好处比起它的serving costs是否就不这么明显了?

--

--

No responses yet