首先,我想说,我问这个问题是因为我对使用BERT嵌入作为文档特性进行集群感兴趣。我用的是拥抱脸库里的变形金刚。我在考虑平均每个文档的所有单词片段嵌入,这样每个文档都有一个唯一的向量。然后,我将使用这些向量进行聚类。如果你认为这不是一个好主意,或者如果我遗漏了什么或者不理解什么,请随时发表评论。
我看到的问题是,您只使用max_length在拥抱Face库中指定的第一个N标记。如果第一个N标记不是该文档的最佳表示,怎么办?随机选择N个标记不是更好,还是更好地随机选择N个令牌10次?
此外,我认识到使用WordPiece标记器可以代替柠檬化,因此标准的NLP预处理应该更简单。但是,由于我们已经只使用第一个N个标记,如果我们没有消除停止词,那么无用的停止词将出现在第一个N标记中。据我所见,在拥抱脸的例子中,没有人在标记之前做过更多的预处理。
参见下面的标记化示例(来自拥抱面),文档的前64个标记
因此,我在此提出几个问题(请只回答一个问题,或提供我可以阅读的论文或资源的参考资料):
max_length的选择在多大程度上影响性能?原件:'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]']发布于 2020-08-21 09:10:07
以下是答案:
max_length的选择应该是最优的,这样你们中的大多数句子都会被充分考虑。(也就是说,在标记化之后,大多数句子应该比max_length短)。有一些模型考虑完全序列长度。示例:通用语句编码器( use )、Transformer等。但是,请注意,您也可以使用更高的批处理大小和较小的max_length,这使得培训/微调速度更快,有时会产生更好的效果。MAX_LEN为512进行训练。这是模型的局限性。[CLS]令牌的分类嵌入是足够的。由于它基于注意的模型,[CLS]令牌将捕获整个句子的组成,因此就足够了。但是,您也可以对所有令牌的嵌入进行平均值。我尝试过这两种方式,在我的大多数作品中,所有文字标记的平均值已经产生了更高的性能。另外,一些工作甚至建议您从最后4个层中获取平均嵌入。这只是一个设计上的选择。发布于 2020-08-25 14:47:01
由于你的许多问题已经得到回答,我只能与你分享我个人的经验:
( 7)使用BERT嵌入来获取可以集群的文档的特性以便找到类似的文档组是一个好主意吗?还是有其他更好的方法?
我认为一个好主意是从更简单的方法开始。特别是在处理长文档时,依赖于向量者(如tf-idf )可以获得更好的结果,同时具有复杂度较低和通常更易于解释的优点。
我刚刚完成了一个较长文档的集群练习,并经历了类似的思考过程和实验。最后,我用tf-idf特性获得了最好的结果。我使用的管道包括:
doc2vec)。如果您渴望在下游任务中使用包含长文档的BERT,则可以查看以下两种主要方法:
例如,根据您的领域,如果每个文档都有一个执行摘要,那么只有尾才能提高结果。
如前所述,这里截断方法适用于BERT模型(令牌)的输入,而分层方法适用于Bert模型的输出(包括)。
https://datascience.stackexchange.com/questions/80595
复制相似问题