拆解XLNet模型设计,回顾语言表征学习的思想演进(12)

回顾我们对自回归语言模型的介绍。对于一句话["我1", "今天2", "很3", “开心4”, “5”, “因为6”, “我7”, “中8”, “了9”, “彩票10”],我们得到的输入输出样本为(["我"] "今天"),(["我", "今天"] "很"),(["我", "今天", "很"] "开心")...等等。这些样本中的语境毫无例外都是单向且有序的。

对样本语境的选取是否可以更灵活一些?在上述对分布式语义假设的介绍中我们提到,语境中的词之间的相互依赖关系,一是取决于词本身的性质,二是取决于语境中词的相对位置。所以有了词以及词在语境中的位置,我们就有了从这个词构建依赖关系的全部信息。所以对于同一句话 ["我 1", "今天 2", "很 3",「开心 4」,「5」,「因为 6」,「我 7」,「中 8」,「了 9」,「彩票 10」],我们可以使用更灵活的样本选取办法,得到(["我1"] “开心4”),([“我1”, “开心4”] ”今天2“),([”我1“, ”今天2“, “开心4”] “很3”)...等等。这便是乱序语言模型 (Permutation Language Modeling) 的思想。和自回归语言模型不一样,新的样本中的语境需要输入词的位置,否则就退化成了词带模型 (Bag of Words)。这可以类比到人的阅读方式:字词在书本上的位置是一定的,但从左到右的阅读顺序并不是强制的,我们还可以跳读。

推荐阅读