PCA在BERT词嵌入中

时间:2020-06-05 19:37:49

标签: python pca bert-language-model

我正在尝试使用一组使用“鸭子”一词的多种含义的句子,并使用BERT计算每个“鸭子”的词嵌入。每个单词的嵌入都是大约780个元素的向量,因此我正在使用PCA将尺寸减小到2维点。我希望具有“鸭”含义的单词将在图表中聚集在一起,但是没有可识别的聚集。我不确定在获取单词嵌入或对其执行PCA时是否做错了什么。

我获得嵌入词的方法:

  tokenized_text = tokenizer.tokenize(marked_text)
  indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text)
  segments_ids = [0] * len(tokenized_text)
  tokens_tensor = torch.tensor([indexed_tokens])
  segments_tensors = torch.tensor([segments_ids])
  with torch.no_grad():
    outputs = model(tokens_tensor, token_type_ids=segments_tensors)
    hidden_states = outputs[0]

我们正在使用12个隐藏层中的最后一层进行嵌入。

对于PCA,我们使用sklearn.decomposition并调用pca.fit_transform()。在调用函数之前,是否有建议的方法来规范化数据(我们的单词嵌入)?

0 个答案:

没有答案