背景
实体分类是指给一个实体一个指定的标签,这在关系抽取,知识问答等任务中非常重要。一般实体分类的标签都小于20个,但是当标签之间具有层级结构,同一个实体在不同的上下文中便可能具有不同的角色。例如:(同一个实体在不同上下文中便可能具有不同的角色)
- Madonna starred as Breathless Mahoney in the film Dick Tracy
- Madonna signed with Sire Records in 1982 and released her eponymous debut album the next year.
这两句话中,第一句的Madonna因为主演了电影,她的分类应该是actress,而下一句Maddona推出了新专辑,这里她的分类应该是musician。
对于细粒度实体分类来说,一个最大的困难是标注文本的收集,因为在标注的时候不考虑上下文的话可能会如上文的例子一样,会引入很多噪音。实际上一个优秀的细粒度实体分类模型应该是可以处理这些噪音并且在训练过程中发现label之间的关系的。
针对这些问题,本文使用ranking loss来解决这些问题,下面我们来看看文中是怎么解决的吧
模型
学习目标
文中为了平衡细粒度标签之间的关系,将输入的文本信息和标签信息全都映射到一个低维空间 R H R^H RH 中,其中 H H H表示embedding的维度。映射方法如下图所示,我们对输入的文本信息和标签进行线性转换,将其映射到同一个低维空间。这样,标签之间的关系可以通过他们在低维空间的距离进行衡量,标签越不相关,那么他们的距离越远。(相似度衡量关系)
对于一个实体和标签的距离如何衡量呢?既然我们已经有了他们在低维空间的向量,那么我们完全可以使用向量的点积来衡量他们的距离即:
s ( x , y , A , B ) = f ( x , A ) ⋅ g ( y t , B ) = A x ⋅ B y t s(x,y,A,B) = f(x,A) \cdot g(y_t,B) = Ax \cdot By_t s(x,y,A,B