BERT句子表示的可视化

今天读了Gergely小哥的一篇博客 Visualisation of embedding relations,以为颇有意思,想起了以前在知乎上简答过的一个问题: BERT为何能区分一字多义?这篇文章就很形象的把BERT的一字多义展示了出来,同时也提出了一种句子表示的可视化方法。

Word2Vec的可视化

Word2Vec的可视化相信你们都见过很多,小哥把man-woman投影到了X轴,poor-rich投影到了Y轴以后获得了下图:svg



能够看出(如下纯属瞎扯,侵删):学习

  1. fishman是有点穷的男人
  2. king是比较富有的男人,queen是比king穷一些的女人(也没有特别女)
  3. teacher男女均可以,可是比fishman要穷
  4. actor是不穷不富的男人,actress是比fishman穷的女人

可见Word2Vec的词向量仍是存储了很多东西,但若是teacher是指马老师呢?因此咱们须要用BERT,在不一样的语境下进行编码(一字多义),马老师就离rich近一些,李老师就离poor近一些。更多Word2Vec的可视化请见TF projector(密恐必定不要点)。编码

BERT Sentence的可视化

小哥用上一种方法,把[CLS]投影到(1,0),[SEP]投影到(0,1),每一个点是一个词,用箭头表示顺序,获得了下图:orm



能够看到上下文对sky和sea两个词的影响,由于都是蓝色让两个词更类似了,“海天一色”可能说的就是这个吧。同时也能够看到contextual dependent词向量的一个缺点,就是上下文类似的状况下词向量也很接近cdn

也能够看到动词时态的影响基本不大:xml



相比之下句末标点符号的影响就很大:blog



另外再来看一下同一个词Mexico在不一样语境下的表示:ci



能够发现“That’s in Mexico, too”这句话跑到了-x区域。做者猜测多是由于这句话更像是一个response,而BERT在预训练阶段的Next Sentence Prediction任务的时候,会把上下句进行拼接:get

[CLS] This is the first sentence. [SEP] This is the second one. [SEP]

所以下半句会离[SEP]更近一些。为了验证这个猜测,做者又投影了几句“回复”意图的文本:博客



能够看到-x区域的点增多了。

最后,做者验证了一些无心义的错误的句子:



因为句子没有什么意义,各个词向量都堆在一块儿,有些不知道把本身放哪里的感受。。。


好啦,这是一篇比较轻松的小文章,平常学习打卡,感谢阅读!!!


hi all!最近终于有了本身的公众号,叫NLPCAB,原本想叫LAB,但以为和一我的能撑起实验室我就上天了,因此取了谐音CAB,有些可爱而且意味深长?以后会努力和Andy发干货,也但愿各位同窗投稿学习笔记~

相关文章
相关标签/搜索