首先,我想说我问这个问题是因为我对使用 BERT 嵌入作为文档特征进行聚类感兴趣。我正在使用 Hugging Face 库中的变形金刚。我正在考虑平均每个文档的所有 Word Piece 嵌入,以便每个文档都有一个唯一的向量。然后我会使用这些向量进行聚类。如果您认为这不是一个好主意,或者如果我遗漏了某些内容或不理解某些内容,请随时发表评论。
我看到的问题是您只使用max_length
Hugging Face 库中指定的前 N 个令牌。如果前 N 个标记不是该文档的最佳表示怎么办?随机选择 N 个令牌不是更好,还是随机选择 N 个令牌 10 次更好?
此外,我意识到使用 WordPiece 标记器可以替代词形还原,因此标准的 NLP 预处理应该更简单。但是,由于我们已经只使用了前 N 个标记,并且如果我们没有去除停用词,那么前 N 个标记中将出现无用的停用词。据我所知,在 Hugging Face 的示例中,没有人真正在标记化之前做更多的预处理。
[参见下面的标记化示例(来自 Hugging Face),文档的前 64 个标记]
因此,我在这里提出几个问题(请随意回答一个问题或提供我可以阅读的论文或资源的参考):
- 为什么选择前 N 个令牌,而不是随机选择?1a) 有没有什么东西可以随机选择 N 个令牌,可能会多次?
- 与问题1类似,有没有更好的选择token的方法?也许在令牌上使用 TF-IDF 至少可以排除某些无用的令牌?
- 人们在使用 Word Piece 分词器之前通常会使用更多的预处理吗?
- 选择在多大程度上
max_length
影响性能? - 为什么 Hugging Face 库中的最大长度限制为 512?为什么不直接使用最长文档的长度?
- 对 WordPiece 嵌入进行平均以获得矩阵是否是个好主意(如果要进行聚类)?
- 使用 BERT 嵌入来获取可以聚类的文档的特征以找到相似的文档组是一个好主意吗?还是有其他更好的方法?
原来的:
'Trump tries to smooth things over with GOP insiders. Hollywood, Florida (CNN) Donald Trump\'s new delegate guru told Republican Party insiders at a posh resort here on Thursday that the billionaire front-runner is recalibrating the part "that he\'s been playing" and is ready
标记化:
['[CLS]',
'trump',
'tries',
'to',
'smooth',
'things',
'over',
'with',
'go',
'##p',
'insider',
'##s',
'.',
'hollywood',
',',
'florida',
'(',
'cnn',
')',
'donald',
'trump',
"'",
's',
'new',
'delegate',
'guru',
'told',
'republican',
'party',
'insider',
'##s',
'at',
'a',
'po',
'##sh',
'resort',
'here',
'on',
'thursday',
'that',
'the',
'billionaire',
'front',
'-',
'runner',
'is',
'rec',
'##ali',
'##bra',
'##ting',
'the',
'part',
'"',
'that',
'he',
"'",
's',
'been',
'playing',
'"',
'and',
'is',
'ready',
'[SEP]']