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

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

Embedding层存在的问题:

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

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

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

FNN——用矩阵分解完成Embedding层初始化_第1张图片

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

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

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

FNN——用矩阵分解完成Embedding层初始化_第2张图片                      

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

你可能感兴趣的:(机器学习,深度学习,机器学习,人工智能)