FNN——用矩阵分解完成Embedding层初始化

FNN——用FM的隐向量完成Embedding层初始化(用FM模型对Embedding层进行改进)

Embedding层存在的问题:

1.参数巨大。输入层和Embedding神经元是全联接的,即每条相连的边上都存在一个参数w,若输入时采用one-hot编码,可想w数量及其庞大。

2.收敛速度慢。随机梯度下降的过程中,只有与非零特征相连的Embedding 层权重会被更新。

初次启动模型时,需对w进行初始化,相对于随机,FNN算法采用训练好的FM模型对Embedding层与输入层之间的权重进行初始化(已经引入了有 价值的先验信息)。

FM模型是对POLY2改进,将n*n的权重矩阵,优化成n*k的矩阵,则每一个特征都可以用一个k维的隐向量表示。

FNN模型的思想就是将这个k维向量作为特征域中的特征(特征域是特征的集合,如性别这个特征域包含男和女两个特征) 与embedding层神经元连接的权重。

既然用隐向量作为初始权重,则隐向量的维度要和域中embedding神经元个数必须相同。

                      

如上图所示,特征域中的每个特征都可用一个3维隐向量表示,该域中的embeding神经元就只能为3个,全联接边上的权重就是3维向量中的元素值。                         

猜你喜欢

转载自blog.csdn.net/qq_42018521/article/details/124911396