三、AI知识(自然语言处理)
1.常用算法
1.TF-IDF
原理
TF-IDF是一种常用于信息检索和文本挖掘的加权技术,旨在衡量一个单词在文档中的重要性。它是通过结合两个度量标准:词频(TF)和逆文档频率(IDF)来评估词语的权重。优点
- 反映词语重要性:TF-IDF能够有效地反映文档中每个词的相对重要性,有助于从文本中提取关键字;
- 降低常见词的权重:通过IDF的调整,TF-IDF能够有效降低常见词的权重,避免了“高频词”主导文本分析;
- 简单易实现:相比其他复杂的自然语言处理方法,TF-IDF较为简单,易于理解和实现;
- 广泛应用:TF-IDF已被广泛应用于信息检索、文档分类、文本聚类、关键词提取等任务中。
- 缺点
- 忽略词语顺序:TF-IDF无法考虑词语之间的语法或语义关系,因此无法捕捉到上下文信息;
- 高维稀疏矩阵:文本中的词汇数量通常非常庞大,导致生成的特征矩阵非常稀疏,这可能会影响模型的效率和性能;
- 不适用于短文本:对于短文本(如微博、推特等),TF-IDF的效果可能不如长文本,因为短文本中很多词可能没有足够的上下文来体现其重要性;
- 无法处理同义词:TF-IDF将不同的词看作完全不同的实体,无法自动处理同义词问题。例如,“车”和“汽车”会被视为两个不同的词。
2.主题模型(LDA,PLSA)
一、LDA
- 原理
- LDA是一种主题模型,常用于文本挖掘和自然语言处理。它是一种生成模型,目的是从大量文档中自动发现每个文档的潜在主题,并根据这些主题来描述文档。LDA假设每个文档都是由多个主题组成的,而每个主题又是由不同的词组成的。
- 优点
- 无监督学习:LDA是一种无监督学习方法,能够从未标注的数据中自动发现主题,无需人工标注主题;
- 能够处理大量文档:LDA适用于大量文档的主题建模,可以有效地发现文档之间的潜在关系;
- 建模复杂的文档结构:LDA能够建模文档中复杂的主题结构,每个文档可以包含多个主题,每个主题也包含多个词;
- 提供可解释的结果:LDA生成的主题通常能够提供可解释的结果,主题的关键词可以帮助理解文档的内容。
- 缺点
- 计算复杂度高:LDA的推断过程(例如使用变分推断或吉布斯采样)计算量大,尤其是当文档数量和词汇量非常大时,效率较低;
- 需要指定主题数量:LDA模型需要预先指定主题的数量 K,但是在实际应用中,很难知道最优的主题数,错误的主题数会导致模型的效果不佳;
- 假设过于简化:LDA假设每个文档是由多个独立的主题混合构成的,且主题和词分布是固定的。然而,现实中主题之间可能有一定的相关性,词的分布也可能随文档的变化而变化;
- 无法处理同义词和多义词问题:LDA无法自动处理同义词和多义词问题,这会影响模型的性能。例如,“汽车”和“车”会被视为不同的词,无法识别它们的相似性;
- 对短文本效果较差:LDA对于短文本(如微博、推特等)的建模效果较差,因为短文本中很难获得足够的统计信息来推断主题分布。
二、PLSA
1.原理
PLSA是一种基于概率的潜在语义分析方法,是从传统的LSA模型发展而来。PLSA通过引入概率模型来对文档和词汇之间的潜在语义结构进行建模,旨在发现文本数据中的潜在主题。
2.优点
- 能够发现潜在主题:PLSA能够从大量文档中自动提取潜在的主题结构,具有较强的主题建模能力;
- 基于概率模型:PLSA基于概率模型,可以为每个词分配一个主题的概率分布,这使得模型的输出更加灵活和可解释;
- 处理高维数据:PLSA能够有效地处理高维数据(如词汇表非常大的文本数据),通过降维减少数据的复杂度;
- 灵活性较强:相比LSA,PLSA通过引入主题的概率分布提高了模型的灵活性,能够更好地拟合文本数据。
3.缺点
- 计算复杂度高:PLSA需要通过EM算法来估计模型参数,这会导致计算复杂度较高,尤其是在数据量非常大的时候,训练过程可能非常耗时;
- 需要指定主题数:和LDA一样,PLSA也需要预先指定主题的数量 K,但是在实际应用中,主题数的选择对模型的效果影响较大,且不容易确定;
- 过拟合问题:由于PLSA模型中存在大量的参数,尤其是在文档和词汇数目较多的情况下,PLSA容易出现过拟合问题。EM算法优化时可能会导致模型对训练数据过于拟合,失去泛化能力;
- 无法处理文档之间的依赖性:PLSA假设每个文档是独立的,这忽略了文档之间可能存在的依赖关系。它假设文档中的词汇是独立的,而现实中,文档中的词语通常会有一定的语法和上下文依赖;
- 模型解释性差:尽管PLSA能生成主题分布和词分布,但由于模型复杂,尤其是在有很多主题时,模型的解释性可能较差,难以直接理解每个主题的语义。
3.词嵌入(Word2Vec、GloVe)
一、Word2Vec
1.原理
2.优点
3.缺点
二、GloVe
1.原理
2.优点
3.缺点
4.基于Transformer框架(如BERT系列、GPT系列)
5.分层结构
6.序列到序列模型(Seq2Seq)
2.大语言模型构建方法
1.数据清洗
2.分词技术
3.位置编码
4.模型预训练
5.微调技术
6.对齐方法
7.解码策略
8.增强方法