星光澄海 | BLOG

用几行Python代码,借助BERT生成词嵌入

2018年末BERT刚出来那阵,直接屠了十多项NLP任务的榜,当时全行业都在说它要改写NLP的玩法。

BERT词嵌入的核心

词嵌入是什么?简单说就是把单词转成一串数字向量,能用来算语义相似度——比如“苹果”和“梨”的向量距离,会比“苹果”和“汽车”近多了,Google的语义搜索就靠这套逻辑。BERT是双向Transformer的产物,预训练时会随机把15%的单词“遮”住,让模型猜这些被遮的词,反复练之后,模型就学会了把每个单词转成精准的向量,也就是我们要的词嵌入。

几行代码就能跑的现成方案

别以为BERT门槛高,要训模型要算力,原文作者Anirudh_S给的解法很直接:用Python库搭配合TensorFlow,预训练模型和接口都封装好了,不用自己从零开始。只要加载对应库,写几行代码,就能把你要的单词转成词嵌入。这篇原文最初发表在Towards Data Science,经InfoQ中文站授权翻译分享。

这套方法能给我们带来什么

对做NLP的人来说,这套方案省了不少功夫。不用再自己攒数据训词嵌入,直接拿BERT的预训练词嵌入,就能套在语义搜索、短文本分类这些小任务里,省了至少几周的准备时间。尤其是中小团队,没那么多算力搞大模型,这套现成的方案刚好能用。

最后问个没标准答案的问题:你做NLP小项目时,会直接用预训练的词嵌入,还是愿意花时间训一套自己的?


素材来源:InfoQ 中国 · AI情报、AI应用落地
查看报道原文

发表第一条评论吧

支持 Markdown