循环神经网络中的零填充和字符填充有什么区别?

人工智能 自然语言处理 循环神经网络 seq2seq 填充
2021-10-26 23:58:37

为了让 RNN 高效工作,我们对操作进行矢量化处理,从而生成形状为的输入矩阵

(m, max_seq_len) 

其中m是示例的数量,例如句子,并且max_seq_len是句子可以具有的最大长度。一些示例的长度比 this 小max_seq_len一个解决方案是填充这些句子。

填充句子的一种方法称为“零填充”。这意味着每个序列都用零填充。例如,给定一个词汇表,其中每个单词都与某个索引号相关,我们可以表示一个长度为 4 的句子,

I am very confused 

经过

[23, 455, 234, 90] 

填充它以实现 a max_seq_len=7,我们得到一个表示为的句子:

[23, 455, 234, 90, 0, 0, 0] 

索引 0 不是词汇表的一部分。

填充的另一种方法是添加填充字符,例如<<pad>>,在我们的句子中:

I am very confused <<pad>>> <<pad>> <<pad>>

实现max_seq_len=7. 我们还添加<<pad>>了我们的词汇表。假设它的索引是1000。那么句子表示为

[23, 455, 234, 90, 1000, 1000, 1000]

我已经看到使用了两种方法,但为什么使用一种方法而不是另一种方法?将零填充与字符填充进行比较有什么优点或缺点吗?

0个回答
没有发现任何回复~