96SEO 2026-02-23 13:17 1
实现一个无监督的文本匹配模型的训练流程。

文本匹配多用于计算两段「自然文本」之间的「相似度」。
那最直觉的思路就是让人工去标注文本对再喂给模型去学习这种方法称为基于「监督学习」训练出的模型
但是如果我们今天没有这么多的标注数据只有一大堆的「未标注」数据我们还能训练一个匹配模型吗这种不依赖于「人工标注数据」的方式就叫做「无监督」或自监督学习方式。
我们今天要讲的
Learning的思想引入到文本匹配中。
对比学习的核心思想就是将相似的样本拉近将不相似的样本推远。
但现在问题是我们没有标注数据怎么知道哪些文本是相似的哪些是不相似的呢SimCSE
embedding。
而因为同样的样本那一定是相似的模型输出的这两个
个向量将这些句子中通过同样句子得到的向量设置为正例其他设置为负例。
a1a2b1b2c1c2a1-10010000a21-1000000b100-100100b2001-10000c10000-1001c200001-100
的正例构建中我们可以看出来所有的正例都是由「同一个句子」过了两次模型得到的。
这就会造成一个问题模型会更倾向于认为长度相同的句子就代表一样的意思。
由于数据样本是随机选取的那么很有可能在一个
Repetition的方式来构建正例巧妙的解决了句子长度敏感性的问题
要想消除模型对句子长度的敏感我们就需要在构建正例的时候让输入句子的长度发生改变如下所示
种方法随机删除、随机添加、同义词替换但它们均存在句意变化的风险
方法原句子变换后的句子句意是否改变随机重复单词今天天气很好今今天天气很好好否随机重复单词我喜欢你我我喜欢欢你否
可以看到通过随机重复单词既能够改变句子长度又不会轻易改变语义。
embeddingbatch768做矩阵乘法可以得到一个矩阵batchbatch矩阵对角线上就是正例其余的均是负例
torch.tensor,query_token_type_ids:
torch.tensor,doc_token_type_ids:
torch.tensor:传入query/doc对构建正/负例并计算contrastive
self.get_pooled_embedding(input_idsquery_input_ids,token_type_idsquery_token_type_ids)
self.output_embedding_dim)doc_embedding
self.get_pooled_embedding(input_idsdoc_input_ids,token_type_idsdoc_token_type_ids)
self.output_embedding_dim)cos_sim
只有对角线等于margin值的对角矩阵size[query_embedding.size()[0]],
fill_valueself.margin)).to(device)cos_sim
dtypetorch.int64).to(device)loss
结合句子间差异的无监督句子嵌入对比学习方法——DiffCSE主要还是在SimCSE上进行优化可见SimCSE的重要性通过ELECTRA模型的生成伪造样本和RTDReplaced
Detection任务来学习原始句子与伪造句子之间的差异以提高句向量表征模型的效果。
其思想同样来自于CV领域(采用不变对比学习和可变对比学习相结合的方法可以提高图像表征的效果)。
作者提出使用基于dropout
masks机制的增强作为不敏感转换学习对比学习损失和基于MLM语言模型进行词语替换的方法作为敏感转换学习「原始句子与编辑句子」之间的差异共同优化句向量表征。
在SimCSE模型中采用pooler层一个带有tanh激活函数的全连接层作为句子向量输出。
该论文发现采用带有BN的两层pooler效果更为突出BN在SimCSE模型上依然有效。
②针对两个损失之间的权重值经实验发现对比学习损失为RTD损失200倍时模型效果最优。
参考链接https://blog.csdn.net/PX2012007/article/details/127696477
项目中提供了一部分示例数据我们使用未标注的用户搜索记录数据来训练一个文本匹配模型数据在
...由于是无监督训练因此训练集train.txt中不需要记录标签只需要大量的文本即可。
测试集dev.tsv用于测试无监督模型的效果因此需要包含真实标签。
分隔符分开第一部分部分为句子A中间部分为句子B最后一部分为两个句子是否相似label。
第一对文本相似分数较低第二对文本相似分数较高参考链接https://github.com/HarderThenHarder/transformers_tasks/blob/main/text_matching/supervised
github无法连接的可以在https://download.csdn.net/download/sinat_39620217/88214437
更多优质内容请关注公号汀丶人工智能会提供一些相关的资源和优质文章免费获取阅读。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback