1

我对trainable = True加载 Universal Sentence Encoder 3 时设置的含义有点困惑。我有一个小型语料库(3000 个不同的句子),给定一个句子,我想找到 10 个最相似的句子。我目前的方法是:

1) 加载模块 embed = hub.Module("path", trainable =False)

2)编码所有句子: session.run(embed(sentences))

3)使用余弦相似度找到最接近的句子。

它表现不错,但我希望模型能够根据我自己的字典进行微调,因为有些关键字比其他关键字更重要。因此这不是分类问题。在查看现有的重新训练模块示例时(https://www.tensorflow.org/hub/tutorials/text_classification_with_tf_hub),它是用于分类的。

是否可以让 Universal Sentence Encoder 重新训练我的关键字并输出不同的嵌入(例如通过设置trainable = True)?

4

1 回答 1

0

设置hub.Module(..., trainable=True)不允许更改词汇表,但它使模块的变量可训练,这可能足以捕捉现有单词相关性的机会。

像 USE 这样的预训练词嵌入往往对各种任务(包括分类、回归、嵌入空间中的邻近搜索)有用。一般来说,对于这些中的任何一个,从相同的 TF Hub 模块开始都没有错。

编辑:另见https://github.com/tensorflow/hub/issues/355

于 2019-11-11T09:30:48.030 回答