困难
这些方法有用吗?当然有。但是 Jeremy Howard 指出,这种基于词(句)嵌入预训练的模型,都会有显著缺陷,即领域上下文问题。
这里为了简化,咱们只讨论英文这一种语言内的问题。
假设别人是在英文 Wikipedia 上面训练的词嵌入向量,你想拿过来对 IMDB 或 Yelp 上的文本做分类。这就有问题了。因为许多词语,在不同的上下文里面,含义是有区别的。直接拿来用的时候,你实际上,是在无视这种区别。
那怎么办?直觉的想法,自然是退回去,我不再用别人的预训练结果了。使用目前任务领域的文本,从头来训练词嵌入向量。
可是这样一来,你训练工作量陡增。目前主流的 Word2vec , Glove 和 fasttext 这几个词嵌入预训练模型,都出自名门。其中 word2vec 来自于 Google,Glove 来自于斯坦福,fasttext 是 facebook 做的。因为这种海量文本的训练,不仅需要掌握技术,还要有大量的计算资源。
同时,你还很可能遭遇数据不足的问题。这会导致你自行训练的词嵌入模型,表现上比之前拿来别人的,结果更差。维基百科之所以经常被使用来做训练,就是因为文本丰富。而一些评论数据里面,往往不具备如此丰富的词汇。
怎么办呢?
迁移
Jeremy Howard 提出了一种方法,叫做“用于文本分类的通用语言模型微调(ULMFiT)”。论文在这里:Howard, J., & Ruder, S. (2018). Universal language model fine-tuning for text classification. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (Vol. 1, pp. 328-339).