Keras 中的Embedding层是如何工作的
说明
最近在做自然语言处理方面的研究,特别是研究到了词嵌入,于是便对keras中的Embedding的工作方式产生了疑问,常用的词嵌入模型诸如CBOW,Skip-gram都是一个单独的模型,而keras中的Embedding层仅仅是一个层,那是不是这个层中嵌入了某一个模型呢,答案是:错。
在翻了下百度上的一些解答后,感觉都不清楚,最终在StackExchange上看到了一个大佬的回复,感觉讲的真清楚,所以呢,就打算做个笔记,结合自己的理解翻译一下,以供后续查阅。
先奉上链接,英语好的可以直接看原文.
先翻译下问题
首先一个老外,跟我一样有了同样的问题,于是啊,他就做了如下工作:
import numpy as np
from keras.models import Sequential
from keras.layers import Embedding
model = Sequential()
model.add(Embedding(5, 2, input_length=5))
input_array = np.random.randint(5, size=(1, 5))
model.compile('rmsprop', 'mse'