zjunlp / KnowPrompt

[WWW 2022] KnowPrompt: Knowledge-aware Prompt-tuning with Synergistic Optimization for Relation Extraction
MIT License
195 stars 34 forks source link

直接使用label信息,是否相当于泄露给模型信息 (已回答) #5

Closed LemonQC closed 2 years ago

zxlzr commented 2 years ago

您好,感谢对knowprompt的关注。使用label信息并不是泄露模型信息, 而是充分利用标签语义信息。

  1. 在模型训练过程显式告诉模型标签的语义是一种很常规的操作,多个相关工作都使用了这一方法,且很明显标签的语义有助于提升模型性能。例如Label Verbalization and Entailment for Effective Zero and Few-Shot Relation Extraction EMNLP21, Label Semantic Aware Pre-training for Few-shot Text Classification ACL22
  2. 其次对于提示学习来说,verbalizer 部分的词基本均采用标签相关的词语,模型学习输入到标签词的一种映射,所以并未泄露信息,这点在综述Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing已有详细的介绍。
  3. 对knowprompt来说,模型训练引入了实体关系相关的先验,其中实体表示采用的统计形式得到,无需实现知道实体类别;关系采用了关系类别的词,这是事先知道的,模型直接学习了输入到标签词(虚拟关系词)的映射。这一思路和:ptr: prompt tuning with rules for text classification 是一致的,在预测时候通过mask位置token直接预测出虚拟关系词得到答案。
LemonQC commented 2 years ago

哦哦,谢谢,还有一个问题,您图一举的例子和模型图那个。apple和steven为什么相比于原始句子位置变化呢,图一那个例子没有,hamilton和british

---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2022年04月26日 22:29 | | 收件人 | @.> | | 抄送至 | @.**@.> | | 主题 | Re: [zjunlp/KnowPrompt] 直接使用label信息,是否相当于泄露给模型信息 (Issue #5) |

您好,感谢对knowprompt的关注。使用label信息并不是泄露模型信息, 而是充分利用标签语义信息。

首先:

在模型训练过程显式告诉模型标签的语义是一种很常规的操作,多个相关工作都使用了这一方法,且很明显标签的语义有助于提升模型性能。例如Label Verbalization and Entailment for Effective Zero and Few-Shot Relation Extraction EMNLP21, Label Semantic Aware Pre-training for Few-shot Text Classification ACL22 其次对于提示学习来说,verbalizer 部分的词基本均采用标签相关的词语,模型学习输入到标签词的一种映射,所以并未泄露信息,这点在综述Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing已有详细的介绍。 对knowprompt来说,模型训练引入了实体关系相关的先验,其中实体表示采用的统计形式得到,无需实现知道实体类别;关系采用了关系类别的词,这是事先知道的,模型直接学习了输入到标签词(虚拟关系词)的映射。这一思路和:ptr: prompt tuning with rules for text classification 是一致的,在预测时候通过mask位置token直接预测出虚拟关系词得到答案。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

zxlzr commented 2 years ago

你好,关系抽取任务为输入句子+2个实体输出关系。图1和模型图中的句子有两部分,一部分是原始输入(实体+句子),第二部分为prompt(包含了实体和mask)。例如下图所示:

image

左半部分为原始输入,右边是prompt。其中输入中的实体前后加了marker也就是这种,这是关系抽取常规操作。在提示中我们方法引入了可学习的[sub]等特殊token。不知道有没有解答您的问题。

LemonQC commented 2 years ago

我想咨询的是,为什么Apple在prompt中放到前面了,而Steve Job放到了后面

zxlzr commented 2 years ago

请您注意下实体虚拟marker的id,这里apple 、steve job 分别指代头实体和尾实体,实体是有头尾之分的。

LemonQC commented 2 years ago

也就是说在您设计的prompt中,是id全部都变了顺序,比如Composedof(e2,e1),那么e2就在前,e1在后,是否也是利用了关系的信息来确定顺序呢。还是就是e1在前,e2在后

Shandong University

@. | 在2022年4月27日 @.> 写道:

请您注意下实体虚拟marker的id,这里apple 、steve job 分别指代头实体和尾实体,实体是有头尾之分的。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

zxlzr commented 2 years ago

构建提示的模板是按照头 mask 尾这种顺序构造的,但输入句子里不一定是头实体在前面的

LemonQC commented 2 years ago
哦哦,懂了,谢谢您的耐心回答 Shandong University

@. | 在2022年4月27日 @.> 写道:

构建提示的模板是按照头 mask 尾这种顺序构造的,但输入句子里不一定是头实体在前面的

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

zxlzr commented 2 years ago

不客气