大模型基础之词表示和语言模型

【为什么要进行词表示】

为了让计算机看懂

为了计算近义词:酒店 ≈ 旅馆

为了表示词之间的关系:中国-北京≈美国-华盛顿;king-man≈queen-woman

【用同义词、上位词表示】

用“美丽”的同义词表示“美丽”:漂亮、大方、靓丽等。

用“NLP”的上位词表示“NLP”:信息学、科学、实体等。上位词:指概念上外延更广的主题词。 例如:”花”是”鲜花”的上位词

用同义词、上位词表示有什么问题:同义词的细微差别无法体现、一些新含义无法捕捉(666原来表示数字,现在也有干得很漂亮的意思)、具有主观性、数据稀疏、依赖人工标注和调试。

【one-hot表示】

词表{美丽,信息学,实干,兴邦}

one-hot词向量表示如下:

美丽=[1,0,0,0]

信息学=[0,1,0,0]

这样表示,利于计算文章的相似度。但是不利于计算两个词之间的相似度。

【使用contextual表示】

使用上下文语境来表示:一个词的含义被经常出现在它周围的词所定义。

例如用目标词上下文其他词出现的次数/重要性来表示它。

好处显然易见。

缺点:词表变大之后,需要更多存储。出现次数少的词,它的向量表示是稀疏的,不能很好表示它。

【word embedding】

用模型创建一个低维的稠密向量空间,然后把每个词都学到这个空间里去。

学习方法:word2vec

【语言模型】

语言模型有能力根据前面出现的词,预测下一个词到底是啥。

有能力计算一段词语序列是一句合法、完整的句子的联合概率;预测下一个词的能力。

一个句子的联合概率=每个词基于它前面的已经出现的词的条件概率之积。

语言模型的任务是:预测下一个将要到来的词到底是什么词。

更正式地说法:给出一系列单词,计算下一个单词的概率分布(下一个单词取自一个词表)

模型如何构建呢

【N-gram模型】

用于计算前面出现N个词后,后面出现那个词的频度。

根据马尔科夫概率,当计算一个词基于它前面出现的所有词的条件概率时,可以简化为只基于其前面N个词来计算条件概率。

缺点:

1、N太小不能兼顾到更远的词的影响;N太大目标短句在语料中出现较少、向量稀疏,且存储变大。

2、无法计算词的相似度,因为也是类似一种onehot的表示方法。

【基于神经网络的语言模型】

用神经网络去学习词在低维向量空间的表示,然后构建前文和当前词的预测条件概率。

先把前文的N个词分别表示为低维向量,然后把低维向量拼在一起,形成一个更高的上下文向量,再经过一个非线性转换,然后就可以用这向量去预测下一个词是什么。

补充材料:论文阅读:A Neural Probabilistic Language Model 一种神经概率语言模型_南有芙蕖的博客-CSDN博客

你可能感兴趣的:(LLM,语言模型,人工智能,自然语言处理)