Keras 中嵌入层的偏置权重

Erl*_*api 4 embedding keras

我正在研究前馈神经网络,并且正在使用 keras 嵌入。我想为嵌入设置偏置权重,但我不知道该怎么做。

Keras Dense 层允许指定 use_bias = True,然后设置偏差权重。嵌入层是否有等效的方法?

小智 5

您可以使用另一个向量长度等于 1 的嵌入作为偏差。例如,下面的代码获取输入 a 和 b 的嵌入和偏差,获取两个向量的点积,然后将偏差与点积相加。

from keras.models import Model
from keras.layers import Embedding, Input, Add, Dot

a = Input(shape=(1,))
b = Input(shape=(1,))

emb_a = Embedding(num_words+1, 50)(a)
bias_a = Embedding(num_words+1, 1)(a)
emb_b = Embedding(num_words+1, 50)(b)
bias_b = Embedding(num_words+1, 1)(b)

dot = Dot(axes=-1)([a,b])
add = Add()([dot,bias_a,bias_b])
Run Code Online (Sandbox Code Playgroud)