-
原理
XLNet原理挺简单的
概括起来一句就是:采取了Attention掩码的机制,来实现通过上下问来预测某个词。
详细理解
输入是和之前完全一样,该怎么输入就怎么输入,不像BERT把一些词给MASK掉了,用于上下文的词来预测这个【MASK】词 ;然而,XLNet是在Transformer内部,通过Attention掩码,来对某些上下文MASK掉,比如从X的输入单词里面,要预测Ti, 那么就在Ti的上文和下文单词中,随机选择i-1个,放到Ti的上文位置中,把其它单词的输入通过Attention掩码隐藏掉,仅通过随机选择的这个i-1个来预测, 于是就能够达成我们期望的目标。 -
双流自注意力
原理虽然简单,但是如何实现的呢?
主要是通过 双流自注意力 来实现何为 双流自注意力 ?
就像下面图一样,一个是Content stream。 一个是Query stream。都是干啥的呢?
直白的讲,主要是Query stream是前线打仗的,Content stream后面生产弹药的。
举例来说,比如一个token x3将服务两种角色。当它被用作内容来 预测其他标记时 ,我们
可以使用内容表示(通过Content stream注意力来学习)来表示x3。重划重点就是 Query stream
每一轮都计算着,就是为了在为其他token预测时,能够及时的提供内容向量。
但是如果我们想要预测x3,我们应该只知道它的位置而不是它的内容。这就需要使用查询表示 (通过Query stream来学习)来保留x3之前的上下文信息,而对于要预测token x3, 只保留位置信
息。
image.png
网友评论