# N-Gram 语言模型
# 基本概念
N-Gram 指的是在一段文本或语音中,连续出现的 个词。
# 马尔可夫假设与概率计算
N-Gram 语言模型基于 马尔可夫假设,即一个词 的出现只依赖于它前面紧邻的 个词,而不是整个历史序列。
因此,条件概率可以表示为:
这个概率可以通过语料库中词频来近似计算:
# 局限性
随着 增大,可能的 n-gram 组合数量呈 指数增长,导致数据稀疏性问题日益严重。因此,在实际应用中,n 的值通常不能大于 5。
# 单词嵌入(Word Embeddings)
# 传统方法
# WordNet
WordNet 是一个包含同义词集(synsets)和上位词(hypernyms,即更广义的词)列表的词典。
- 缺点:
- 缺乏上下文敏感性:无法区分一个词在不同语境下的含义。
- 缺少新词或新含义:无法收录不断涌现的新词或现有词的新用法。
- 主观性:词语关系定义依赖于人工标注,具有主观性。
- 关系类型受限:只表示少数几种预定义的关系,无法量化词语之间的相似度。
# 单词作为离散符号
将每个单词表示为一个 one-hot 向量。
- 缺点: 单词向量之间彼此正交,无法体现词语间的“相似性”或“关联性”概念。
# 基于上下文的表示:词向量
# 分布式语义学
分布式语义学(Distributional Semantics) 理论认为,“一个词的意义由其附近频繁出现的词语所决定”。因此,通过单词的上下文来表示单词,可以构建出 词向量(embeddings)。
- 基本思想: 为每个单词构建一个 稠密向量,使得在相似上下文中出现的单词,它们的向量也相似。通常使用 向量点积 来衡量向量之间的相似度。
- 上下文定义: 一个单词的上下文是其在文本中附近(在一个固定大小的 窗口 内)的词语。
# Word2vec
Word2vec 是一种学习词向量的框架,包括两种主要的模型架构:
- Skip-gram:
- 目标: 根据一个 中心词 来预测其 上下文词 。
- 损失函数: 最小化负对数似然,通过随机梯度下降进行训练。
- CBOW(Continuous Bag-of-Words):
- 目标: 根据上下文词来预测中心词。
# Skip-gram 模型的概率计算与训练
# 概率计算
对于一个中心词 和一个上下文词 ,其条件概率 的计算方法是:
- 为每个单词 学习两个向量:
- :表示 作为 中心词 时的向量。
- :表示 作为 上下文词 时的向量。
- 概率公式为:
# 参数学习
- 对于一个 维向量和总词汇量 ,需要学习的参数 是一个 维的向量,包含所有单词作为中心词和上下文词时的向量。
# 最终词向量
训练结束后,通常会取 和 的平均值 作为该单词最终的词向量。