Joint embedding of words and labels for text classification 论文解读
Motivation
不同的词/字对分类的影响程度不同,目的是找到那些对分类有重要影响的词/字,并赋予他们更高的权重
模型结构
- X:[batch_size, sequence_length, vocab_size] one-hot表示每个词/字的输入数据
- y:[batch_size, class_nums] one-hot表示的输入数据的标签
- V:[batch_size, embedding_size, sequence_length] 词向量表示每个词/字的输入数据
- C:[embedding_size, class_nums] label_embedding矩阵
- G:[batch_size, class_nums, sequence_length]
- β \beta β:[batch_size, sequence_length] 第1维为softmax后的概率值,表示经过label的attention后,这个词/字的重要性(权重)
- z:[batch_size, hidden_size] 文本聚合向量,表示整条数据的信息
- y:[batch_size, class_nums] 第1维为softmax后的概率值
- f0:将one-hot表示的词/字映射成word_embedding表示
- f1:将每条数据的word_embedding聚合成一个向量
- f2:使用文本聚合向量进行分类,即将z映射到y用来分类
前向传播过程
每条数据里的每个词/字,对最后分类结果的影响应该是不同的。
比如说一条文本里有词:湖人、赛前训练等,要分到类别NBA中,"湖人"对应的word_embedding,所占的权重应该高于词"赛前训练"对应的word_embedding。
1.label_embedding矩阵和word_embedding矩阵相乘,并归一化
G矩阵中的一条数据(class_nums × sequence_length)中的每个元素,表示每个词/字的embedding向量与每个label的embedding向量的余弦相似度
- C T C^{T} CT:[class_nums, embedding_size]
- V V V:[batch_size, sequence_length, embedding_dim]
- ⊘ \oslash ⊘:表示元素逐个相除
- G ^ \hat{G} G^:[batch_size, class_nums, sequence_length]
每个元素值为, g