我正在研究Google 的 Smart linkify 机器学习模型,因为它与个人项目密切相关。并且不能完全理解这些特征是如何被馈送到神经网络的。
这是关于以下内容:
给定一个候选实体跨度,我们提取:左上下文:实体之前的五个词,实体开始:实体的前三个词,实体结束:实体的最后三个词(如果它们重叠,它们可以与前一个特征重复,或填充,如果没有那么多),右上下文:实体后面的五个单词,实体内容:实体内的单词袋和实体长度:实体的大小(以单词数计)。然后将它们连接在一起并作为神经网络的输入。
我有 4 个主要问题无法找到明确的答案:
文章指定功能是串联的。串联层如何在内部工作?从字面上看,它是否将所有值连接到一个变量中?这在计算上是如何工作的?
当它是一个键值对时,一个词袋怎么能成为一个特征?或者它也只是全部连接成一个变量。再说一遍,这怎么能在计算上起作用?
文本指定多个单词被用作单个特征;例如
Left context: five words before the entity
。这是否再次连接嵌入/向量?Entity end: last three words of the entity (they can be duplicated with the previous feature if they overlap, or padded if there are not that many)
这是否意味着将可变数量的特征作为 NN(或连接层)的输入,或者这是否更适合作为配置?可用的上下文更少,因此“硬”编码输入特征的数量更少?
也许带有一些硬编码输入变量的简单 keras 模型将有助于形成答案。
网上有没有更多的资料可以理解和重新创建实体识别模型?
编辑:
该文章还提到缺乏可用的上下文或实体。例如,该图显示了实体的 4 个特征(2 个用于实体开始,2 个用于实体结束)。文章提到了重复,但重复 3 次听起来不是一个好主意。带有过滤器(1x3)的卷积层会更好吗?
那么 Keras 模型会是什么样子呢?它会有两个独立的输入层吗?一个输入层,具有 10 个上下文输入特征 + 1 个用于 BoW 的特征 + 1 个用于实体长度的特征。另一个具有 4 个输入特征的输入层,后跟一个卷积层。然后两层都通向一个连接层?