【Datawhale之Happy-LLM】Github最火大模型原理与实践教程task02精华~
基于马尔可夫假设,现在这个词的出现概率依赖前N-1个词(N是正整数,具体钱几个词也不一定.N=1是unigram模型、N=2bigram、N=3trigram,就是前两个词出现的情况下,这个词出现的概率)——文本变高维向量,每一维是特征项(字、词、短语),值(通过公式计算得到,如TF词频、TF-IDF逆文档频率)是代表特征项的权重=在文本中的重要程度。Skip-Gram模型(适合大数据集):先有目
Task02:第一章 NLP 基础概念
(这是笔者自己的学习记录,仅供参考,原始学习链接,愿 LLM 越来越好❤)
NLP 自然语言处理
顾名思义就是处理人类语言的,把人类的语言用某种方式让计算机理解,理解之后便能进行一些处理和上操作。计算机能够用底层的0101模拟出人类的语言后,人们就开始整活,让他做事了,比如中文分词等,这里面可能会涉及语义、语境、情感、文化等。所以一直以来,大家都在不断改进算法方法来使计算机更能理解人类语言,从而达到对人类的语言数据进行一些处理。
NLP 的发展历程
- 基于 规则 进行处理:主要做翻译任务,给计算机字典和词序规则,让他查。
- 基于 统计 概率进行处理:统计模型,机器学习
- 基于 深度学习 模型:主要的比如 RNN、LSTM、Word2Vec、BERT、Transformer
NLP 的一些任务(人类都让它整了哪些活儿)
1、中文分词(Chinese Word Segmentation)
基础任务。中文不像英文空格是一个词,中文有字和词的概念。所以处理中文文本,首先就是要进行分词,分的好意味着理解的好和正确,对后续的整活很关键。
2、子词切分(Subword Segmentation)
是常见的文本预处理技术。像英文就是再把词分成前后缀,以后遇到没见过的可能有举一反三的能力。
例如:unhappiness = un-happy-ness
常见的方法:Byte Pair Encoding (BPE)、WordPiece、Unigram、SentencePiece 等
3、词性标注(Part-of-Speech Tagging)
基础任务。就是标注词性。n、v、adj、adv 这种,对理解语义很重要。通常是用机器学习模型,从标注数据里学一学就会了。
常见的 ML 模型:隐马尔可夫模型(Hidden Markov Model,HMM)、条件随机场(Conditional Random Field,CRF)
常见的 DL 模型:RNN、LSTM
4、文本分类(Text Classification)
核心任务。分类任务,就是给文本你把这个话分到某个领域类别中,如教育、医疗、财经这些类。机器学习比较多,挺简单的,主要就是要选合适的特征表示和分类算法,训练的数据也很重要。但是现在深度学习变成趋势了。
5、实体识别(Named Entity Recognition)
关键任务。就是给文本,他能从长句子里面提取各种类别的信息,这就是实体,比如里面说的人、地名、时间这种。比文本分类更细,文本可能看见关键词就分类了。
6、关系抽取(Relation Extraction)
关键任务。在实体识别的基础上,能够理解实体之间的关系,比如从属、因果等。
7、文本摘要(Text Summarization)
重要任务。把长文本进行内容概括,
- 抽取式摘要:(优点)摘要内容全是来自原文,准确性比较高。(缺点)可能不通畅。
- 生成式摘要:对内容进行重新组合改写,更难,需要如 Seq2Seq 的模型。
8、机器翻译(Machine Translation)
核心任务。就是不同语音之间进行翻译,重点是转化、准确、风格、文化因素。
9、自动问答(Automatic Question Answering,QA)
高级任务。理解人给的问题并回答,这涉及了很多子任务(信息检索、文本理解、知识表示和推理等)
有 3 类:
- 检索式问答:就是搜索出答案。
- 知识库问答:基于知识库结构化内容检索出答案。
- 社区问答:基于用户的论坛 csdn 啥的。
文本表示是什么?
目的是用计算机能处理的方式表示自然语言,文本数据数字化。(字、词、短语、句子)表示形式可能有(向量、矩阵或其他数据结构)
文本表示的发展历程
1、词向量 —— 向量空间模型 VSM
是文本表示的方法。
VSM 做什么的?
- 文本变高维向量,每一维是特征项(字、词、短语),值(通过公式计算得到,如 TF 词频、TF-IDF 逆文档频率)是代表特征项的权重 = 在文本中的重要程度。
VSM 变换的优化方法?
- 改进特征 表示 方法:图方法、主题方法
- 改进特征项 权重计算 方法:如用矩阵运算(特征值计算、奇异值分解等方法),提升效率和效果。
VSM 的问题?
- 数据稀疏性 + 维数灾难
- 特征项选择
- 权重计算方法
(有个词汇表大小就是一个词的向量维数,该词的向量表示就是,词汇表中他的位置值为 1,其他 0,所以很浪费。)
2、N-gram 语言模型
是基于统计条件概率的模型。基于马尔可夫假设,现在这个词的出现概率依赖前 N-1 个词(N 是正整数,具体前几个词也不一定。
N=1 是 unigram 模型、N=2 bigram、N=3 trigram,就是前两个词出现的情况下,这个词出现的概率)
N-gram 做什么的?
- 可以计算这个词的出现概率
- 或者从后往前推算概率连乘,计算整个句子的
N-gram 的优点?
- 易理解简单
N-gram 的问题?
- N 大时,出现推理时某些概率太低
- 数据稀疏性问题,就是训练语料中没出现过的词序组合,泛化能力低
- 忽略了远距离词之间的关系
3、Word2Vec 语言模型
是一种词嵌入技术,2013 年提出的。
两种架构:
- CBOW 连续词袋模型(适合小数据集):根据目标词的上下文词的词向量计算这个词的词向量。
- Skip-Gram 模型(适合大数据集):先有目标词的词向量,预测周围词的词向量,训练过程中不断优化“吃”的向量,使它能更好地预测这些上下文词。
模型学什么的?
- 用神经网络 NNLM 学词在文本中的词之间的语义关系,使得语义相似或相关的词在向量空间距离就近
Word2Vec 是做什么的?
- 把语言转成低维(几百维)的密集向量,减少计算复杂度和存储
- 能捕捉词与词的语义关系
- 生成静态词向量
和 VSM 比的优势是?
- W2V 基于上下文学,不是基于词典,泛化能力好点
W2V 的问题是?
- 两种架构都是基于局部上下文的,长距离不行。
4、ELMo
Embedding from LM,是一种融入预训练方法到词向量表示的思路,生成动态词向量,实现词向量的准确表示(同一个词不同语境不同表示向量)
ELMo 是怎么做的?
- 先获得词向量模型(用基于 RNN 的双向 LSTM 结构在大型语料库训)
- 再在特定任务微调,从预训练模型提取词向量作为特征调整。
ELMo 的优势是什么?
- 能捕捉词在不同语境上下文的多义
ELMo 的问题是什么?
- 模型复杂度高
- 训练时间长
- 计算资源消耗大
(牛逼模型的通病吧)
更多推荐
所有评论(0)