1 前言
今天分享一篇2019年ACL会议的一篇paper,关于word embedding方向的,论文题目为:Relational Word Embeddings。题目很简洁,其表达的核心就是“Relational”,意思就是词之间应该有关系性的信息(relational information),而如何在embedding过程如何将这些信息进行学习和表达出来,这也是本篇论文解决的问题。论文文下载链接。
2 背景
- 尽管word embeddings已被证明可以分布式的编码各种属性知识,但这种方式捕捉关系信息却非常有限。
- For instance,通过word embeddings 可能推断出<Berlin,Germany>之间的<城市,国家>关系,但也很难排除<Moscow,Germany>也具备这样的关系。
- 为了解决上述问题,现有的方法是主要是借助外部关系知识库,但这种方式就受限于关系知识库。基于这些问题,作者提出relation embedding的方法,学习的方式跟word embedding一样,从语料库中统计共现关系来训练。它的用处就是可以将relation embedding作为word embedding 一个补充,而不是替代。
3 Model
论文主要从三个步骤进行讲述的,如下图:
3.1 Selecting Related Word Pairs
- 从定义好的vocabulary V 中,挑选出共现的词关系对pairs (w, v),v是跟w关系最密切的前100个词;
-
利用PMI(互信息)来判断pairs(w,v)的关系程度;PMI值越大,表明二者相关性越大;
- 作者在论文中用了PMI的一个平滑的变体
其中,定义为词w和v在一句文本共现的次数,但二者在文本中相隔的间距不能超过10个词
3.2 Define Relation Vectors
定义为pairs(w,v)的关系向量:
其中,word 是词w,v在一个句子中间的词, 是该词的word embedding,代表 在这句子中出现的次数。
在此,作者有个假设:=
这种假设目的是为了解决训练的稀疏性,也存在弊端,例如w和v是<capital-of>的关系,反过来就是错误的。面对此情况,作者认为如果事先知道v是“国家”的意思,也就能推断出正确的关系。
3.3 Learning Relation Word Vectors
论文中学习relational embedding的模型框架如下图:也如标题一样简洁.
其中,,是pairs(w,v)的relational embedding,训练的网络结构很简单,就是两个全连接层。
Loss Function 定义为:
在训练过程中涉及到的一些设置如下:
- 词表V包含100, 000个最频繁的词,from Wikipedia;
- 按照 Selecting Related Word Pairs的原则,最后确定有974,250 个word pairs参入训练;
- 所用的初始词向量 来自 FastText 300-dimensional vectors trained on Wikipedia;
- 激活函数选用的是RELU;
4 Experiment
实验用了两个公开数据集,具体情况如下:
从实验结果,还有展示的近似词来看,论文提出的RWE方法是有效果的,而且在某种程度上的确呈现了关系性。
5 结语
作者觉得relation embedding在定义上还有很大的改进空间,比如可直接从关系的知识库中定义获取,进而也就影响了loss function;个人观点,整篇作者的思路就是按新的一套规则重新学习了词向量,远远没达到word2vec中CBOW和skip-gram创新的效果;但按作者说的,relational embedding只是word embedding的补充,这点是值得肯定的;给我的启发就是,在做实体关系表征的时候,可以借鉴它这种方式,把实体关系再学习一次,这样可以多一个loss function,不过难点是怎么去定义。或者仅仅参考它和的拼接方式。有兴趣的可深入了解下,也可以和我私下交流。
更多文章可关注笔者的public number:自然语言处理算法与实践
网友评论