autoliuweijie / K-BERT

Source code of K-BERT (AAAI2020)
https://ojs.aaai.org//index.php/AAAI/article/view/5681
955 stars 214 forks source link

知识的融入与大规模语料 #24

Open tonyqtian opened 4 years ago

tonyqtian commented 4 years ago

您好,看到在以前的讨论Issue2中提到了关于k-bert在一些任务上效果不显著的问题。其中第二点提到

知识图谱的质量不高,目前我们的知识图谱大多从开放领域图谱中筛选的,其中的知识BERT通过大规模语料预训练也能得到。

1 怎样的知识是比较适合在k-bert场景中引入的? 2 我理解获取大规模语料应该比获取知识的成本要低,如果模型通过大规模的语料预训练也能得到知识的话,那么通过如k-bert这样的方式引入知识的具体意义 或者说 适用场景在哪里?

autoliuweijie commented 4 years ago

您好,看到在以前的讨论Issue2中提到了关于k-bert在一些任务上效果不显著的问题。其中第二点提到

知识图谱的质量不高,目前我们的知识图谱大多从开放领域图谱中筛选的,其中的知识BERT通过大规模语料预训练也能得到。

1 怎样的知识是比较适合在k-bert场景中引入的? 2 我理解获取大规模语料应该比获取知识的成本要低,如果模型通过大规模的语料预训练也能得到知识的话,那么通过如k-bert这样的方式引入知识的具体意义 或者说 适用场景在哪里?

  1. 目前K-BERT的一个最大弱点是没有对关联到的三元组进行筛选和把关,因此,因为一词多义产生的错误知识会对K-BERT造成影响,因此,对于K-BERT,比较适合加入领域中无歧义的知识,另外,这个知识最好是从预训练预料中学不到的。

  2. 上面提到,对于K-BERT,有效的地方是预训练语料中学不到的知识。举个例子 “天安门,位于,北京”这个三元组对于K-BERT的作用很小,因为“天安门”和“北京”在大规模预料中经常会共同出现,因此这两个词的embedding特别接近。而“阿斯匹林,减缓,肺内流“这种专业领域的知识,在大规模预料中很少共同出现,这类知识是对K-BERT有效的。

tonyqtian commented 4 years ago

您好,看到在以前的讨论Issue2中提到了关于k-bert在一些任务上效果不显著的问题。其中第二点提到

知识图谱的质量不高,目前我们的知识图谱大多从开放领域图谱中筛选的,其中的知识BERT通过大规模语料预训练也能得到。

1 怎样的知识是比较适合在k-bert场景中引入的? 2 我理解获取大规模语料应该比获取知识的成本要低,如果模型通过大规模的语料预训练也能得到知识的话,那么通过如k-bert这样的方式引入知识的具体意义 或者说 适用场景在哪里?

  1. 目前K-BERT的一个最大弱点是没有对关联到的三元组进行筛选和把关,因此,因为一词多义产生的错误知识会对K-BERT造成影响,因此,对于K-BERT,比较适合加入领域中无歧义的知识,另外,这个知识最好是从预训练预料中学不到的。
  2. 上面提到,对于K-BERT,有效的地方是预训练语料中学不到的知识。举个例子 “天安门,位于,北京”这个三元组对于K-BERT的作用很小,因为“天安门”和“北京”在大规模预料中经常会共同出现,因此这两个词的embedding特别接近。而“阿斯匹林,减缓,肺内流“这种专业领域的知识,在大规模预料中很少共同出现,这类知识是对K-BERT有效的。

了解,如你所说,我在自己训练的k-bert模型上尝试专用领域的专用知识的时候也发现了同样的现象。目前的BERT级别的模型已经通过大量语料“学到”了、一些常见或者高频的潜在知识,这部分内容再显式的加进去是没有明显效果的。而且因为目前知识的选择相对简单,很容易将错误的信息作为知识带入,因此反而可能会带来负面的影响。

很期待作者能在k-bert2.0上对如何更高效的选择知识有更好的解法~谢谢~