当前位置:网站首页>SimCLR:NLP中的对比学习
SimCLR:NLP中的对比学习
2022-07-06 08:53:00 【InfoQ】
论文简介
- 诸神黄昏时代的对比学习
- “军备竞赛”时期的对比学习
- 使用预训练好的 Bert 直接获得句子向量,可以是 CLS 位的向量,也可以是不同 token 向量的平均值。
- Bert-flow^[On the Sentence Embeddings from Pre-trained Language Models],主要是利用流模型校正 Bert 的向量。
- Bert-whitening^[Whitening Sentence Representations for Better Semantics and Faster Retrieval],用预训练 Bert 获得所有句子的向量,得到句子向量矩阵,然后通过一个线性变换把句子向量矩阵变为一个均值 0,协方差矩阵为单位阵的矩阵。
- Sentence-Bert (SBERT)^[Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks],通过 Bert 的孪生网络获得两个句子的向量,进行有监督学习,SBERT 的结构如下图所示。

什么是dropout

dropout和其他数据增强方法进行比较

不同的dropout rate

对比学习评价指标
- alignment 计算所有正样本对之间的距离,如果 alignment 越小,则正样本的向量越接近,对比学习效果越好,计算公式如下:$$
- uniformity 表示所有句子向量分布的均匀程度,越小表示向量分布越均匀,对比学习效果越好,计算公式如下:$$\ell_{\text {uniform }} \triangleq \log \quad \mathbb{E}{x, y \stackrel{i . i . d .}{\sim} p{\text {data }}} e^{-2|f(x)-f(y)|^{2}}$$

无监督

有监督


结果

代码实践
pip install simcse
SimCSE("在这里填写不同版本")from simcse import SimCSE
model = SimCSE("princeton-nlp/sup-simcse-bert-base-uncased")
embeddings = model.encode("A woman is reading.")

sentences_a = ['A woman is reading.', 'A man is playing a guitar.']
sentences_b = ['He plays guitar.', 'A woman is making a photo.']
similarities = model.similarity(sentences_a, sentences_b)
similarities1 = model.similarity('A woman is reading.', 'A man is playing a guitar.')
similarities2 = model.similarity('He plays guitar.', 'A man is playing a guitar.')

sentences = ['A woman is reading.', 'A man is playing a guitar.']
model.build_index(sentences)
results = model.search("He plays guitar.")
similarities2 = model.similarity('He plays guitar.', 'A man is playing a guitar.')He plays guitar.A man is playing a guitar.
边栏推荐
- 使用latex导出IEEE文献格式
- Navicat Premium 创建MySql 创建存储过程
- LeetCode:剑指 Offer 04. 二维数组中的查找
- [OC-Foundation框架]-<字符串And日期与时间>
- [MySQL] limit implements paging
- [Hacker News Weekly] data visualization artifact; Top 10 Web hacker technologies; Postman supports grpc
- LeetCode:124. Maximum path sum in binary tree
- LeetCode:124. 二叉树中的最大路径和
- [sword finger offer] serialized binary tree
- Leetcode: Sword Finger offer 42. Somme maximale des sous - tableaux consécutifs
猜你喜欢

Alibaba cloud server mining virus solution (practiced)

【嵌入式】Cortex M4F DSP库
![[today in history] February 13: the father of transistors was born The 20th anniversary of net; Agile software development manifesto was born](/img/70/d275009134fcbf9ae984c0f278659e.jpg)
[today in history] February 13: the father of transistors was born The 20th anniversary of net; Agile software development manifesto was born

Screenshot in win10 system, win+prtsc save location

Sublime text in CONDA environment plt Show cannot pop up the problem of displaying pictures

Computer graduation design PHP Zhiduo online learning platform

Visual implementation and inspection of visdom
![[OC]-<UI入门>--常用控件-提示对话框 And 等待提示器(圈)](/img/af/a44c2845c254e4f48abde013344c2b.png)
[OC]-<UI入门>--常用控件-提示对话框 And 等待提示器(圈)

Delay initialization and sealing classes

Esp8266-rtos IOT development
随机推荐
Current situation and trend of character animation
LeetCode:26. Remove duplicates from an ordered array
swagger设置字段required必填
Revit secondary development Hof method calls transaction
【ROS】usb_ Cam camera calibration
poi追加写EXCEL文件
【嵌入式】使用JLINK RTT打印log
Super efficient! The secret of swagger Yapi
[embedded] cortex m4f DSP Library
Unsupported operation exception
Leetcode: Jianzhi offer 04 Search in two-dimensional array
@JsonBackReference和@JsonManagedReference(解决对象中存在双向引用导致的无限递归)
Hutool gracefully parses URL links and obtains parameters
LeetCode:836. Rectangle overlap
Computer graduation design PHP Zhiduo online learning platform
Roguelike game into crack the hardest hit areas, how to break the bureau?
The harm of game unpacking and the importance of resource encryption
[OC-Foundation框架]-<字符串And日期与时间>
Variable length parameter
Revit 二次开发 HOF 方式调用transaction