文章目录
- 1. KL散度
- 2. GELU 激活函数
- 3. 向量运算
- 4. bert
- 4.1 词嵌入
- 4.2 cross-encoder 模型
- 4.3 bert 架构
- 4.4 bert 池化操作
- 5. Fid 模型(Fusion-in-Decoder)
- 6. 多分类损失函数
- 6.1 交叉熵损失
- 6.2 softmax 损失
- 7. t-sne
- 8. NDCG
- 参考资料
1. KL散度
衡量两种分布之间的相似程度。
KL 散度始终大于等于 0.
两个分布越接近 KL 散度越小,两个分布相同,KL散度为0 .
2. GELU 激活函数
3. 向量运算
点乘(dot product) / 内积:结果是个数字。
使用点积计算相似度与使用余弦相似度相比,可能有计算方面的优势。
Hadamard product:
同一位置元素相乘,结果还是向量 / 矩阵
Element -wise Multiplication / Element-wise product
两向量同一位置元素相乘,结果还是向量,相比于点积缺少了求和的过程
4. bert
4.1 词嵌入
Word embedding(词嵌入)是一种将单词映射到高维空间的技术,通过这种映射,单词之间的语义关系可以在空间中得到体现。换句话说,word embedding 将每个单词表示为一个向量,这个向量在空间中的位置和其他单词的位置反映了它们之间的语义关系。因此,word embedding 可以被认为是“显式地表达每个单元的语义”,因为通过这种表示,我们可以直观地看到每个单词的语义特征,而不需要其他的显式规则或指导。
4.2 cross-encoder 模型
Cross-encoder 模型通常
1)使用 word embedding 来表示每个单词或 token 的语义
2)并使用 attention 机制来捕捉文本之间的细粒度语义匹配。
一个例子是 BERT(Bidirectional Encoder Representations from Transformers),它可以被认为是一个 Cross-encoder 模型。
在 BERT 中,输入文本被转换成 token,并通过预训练过的 word embedding 层(通常是 WordPiece 或者 Byte Pair Encoding)将每个 token 映射到高维空间中的向量表示。这些向量包含了每个 token 的语义信息。然后,BERT 使用多层的 Transformer 模型来进行双向编码(即通过自注意力机制来捕捉 token 之间的依赖关系),以更好地理解整个文本的语义。
在 fine-tuning 阶段,BERT 可以被用作 Cross-encoder 模型,通过在预训练基础上进行微调来完成特定的任务,比如文本分类、问答等。在这个过程中,BERT 使用 attention 机制来描述 token 之间的语义匹配,从而提高模型在特定任务上的性能。
4.3 bert 架构
当谈论 BERT 的框架时,可以将其分为以下几个主要部分:
1)输入嵌入层(Input Embedding Layer):
将输入文本中的每个单词或 token 映射为高维向量表示。通常采用 WordPiece 或 Byte Pair Encoding(BPE)等子词级别的表示方式。
这一层的输出是每个 token 的词嵌入(word embedding)向量。
2)Transformer 编码器(Transformer Encoder):
由多个 Transformer 编码器堆叠而成。
每个 Transformer 编码器由多头自注意力机制(Multi-Head Self-Attention)和前馈神经网络(Feedforward Neural Network)组成。
用于捕捉输入文本中的上下文信息和语义关系。
3)特定任务的输出层(Task-specific Output Layer):
在预训练模型中,这部分通常被省略。
在微调或 fine-tuning 阶段,会根据具体的任务添加相应的输出层,如文本分类、命名实体识别、问答等。
在这个框架中,输入嵌入层负责将原始文本中的 token 映射为向量表示,Transformer 编码器负责对这些向量进行编码以捕捉语义信息,而特定任务的输出层则根据具体的任务类型对模型进行定制化的调整。
4.4 bert 池化操作
1)直接采用CLS位置的输出向量代表整个句子的向量表示
2)MEAN策略,计算各个token输出向量的平均值代表句子向量(平均池化)
3)MAX策略,取所有输出向量各个维度的最大值代表句子向量
5. Fid 模型(Fusion-in-Decoder)
将 question 和候选 passage 经过 encoder 得到向量,concat 之后放到 decoder,然后生成答案。
缺点:受到 passage 数量的限制,数量阅读,concat得到的向量就越长。
6. 多分类损失函数
6.1 交叉熵损失
对于多分类的交叉熵,label为 0 的位置,损失为 0,所以最终就是看 label=1 处的 -log(y预测)的值
6.2 softmax 损失
7. t-sne
降维的算法,高维相似的,降到低维应该相近。
https://blog.csdn.net/sinat_20177327/article/details/80298645
8. NDCG
CG:不考虑位置,计算返回结果的好坏
DCG:考虑位置关系
NDCG:DCG / IDCG,实际返回除以返回的最理想情况
参考资料
【1】KL 散度:https://blog.csdn.net/weixin_42521185/article/details/124364552
【2】glue:https://zhuanlan.zhihu.com/p/394465965
【3】向量点乘:https://zhuanlan.zhihu.com/p/359975221
逐元素相乘:https://blog.csdn.net/My_Communication/article/details/120987163
【4】bert:来自chatgpt
bert 池化:https://www.cnblogs.com/gaowenxingxing/p/15005007.html
【5】Fid 模型:https://zhuanlan.zhihu.com/p/564043932
【6】softmax:https://blog.csdn.net/u014380165/article/details/77284921
【7】NDCG:
概念:https://zhuanlan.zhihu.com/p/431704675
举例:https://zhuanlan.zhihu.com/p/474423793