1. 引言
随着互联网技术的高速发展,资源获取和信息共享的途径越来越多,带来便利的同时降低了抄袭成本,使得近些年来抄袭乱象频现[1],尤其是洗稿现象日益普遍,其影响从新闻报道扩展到文学创作。回译洗稿涉及将文本从一种语言翻译到另一种语言,然后再翻译回原始语言的改写行为[2]。这种不道德的行为侵犯了原作者的知识产权。为解决这一问题,自然语言处理领域出现了各种抄袭检测方法[3],包括成本高昂的人工判断方法,由于每日生成的数字内容量巨大,使得这种方法效率低下。此外,人工检测还引入了主观性,因为不同个人的判断可能会有所不同。Alzahrani等人[4]将抄袭检测任务分为两个正式类别:外部抄袭[5]和内部抄袭[6]。外部抄袭检测根据一个或多个源文档评估抄袭行为,另一方面,内在抄袭检测通过单独检查可疑文档来评估抄袭文本。现代抄袭检测方法可以分为三种类型:传统的人工方法、基于机器学习的方法和基于深度的方法。传统的人工方法需要繁琐的特征向量构建、分析反向翻译前后的特征变化,并设计二元分类器来区分原始文本和回译文本[7]。由于特征提取能力有限和依赖离散的手工特征,这些方法实际上并不可行。此外,机器翻译[8]的进步,特别是神经网络,可以产生与原始文本几乎无法区分的回译文本,为传统方法带来挑战。与传统的人工抄袭检测不同,基于机器学习的方法可以从大量训练数据中自动学习特征,无须提前进行特征设计。然而,一部分基于机器学习的方法忽略了文本中的上下文依赖性,仅依赖于卷积神经网络(CNN)进行局部语义特征提取[9],而其他方法则使用循环神经网络(RNN)来捕捉上下文信息。尽管如此,RNN结构面临诸如有限的长范围上下文利用和与梯度相关的问题[10]。Pennington等人[11]通过将局部信息与全局词频统计相结合,提取全面的语义特征。
2018年末,BERT的出现[12]标志着自然语言处理进入预训练模型时代。BERT的自注意力机制能够捕捉局部特征和全局语义关系。然而,直接使用BERT作为嵌入模型的性能并不如预期[13]。因此,Reimers等人[14]提出了SBERT,采用双生网络结构生成具有语义信息的固定长度句向量,便于相似性比较。随后的发展,包括BERT-Flow [15]和BERT-Whitening [16],解决了各向异性问题,而Yan等人[17]在2021年引入了NLP语义计算中的对比学习通用框架ConSERT。Su等人[18]在2022年引入了CoSENT,一种e新的监督句向量方案,与SBERT相比,显示出更快的收敛速度和更好的结果。然而,这些模型将所有特征平等对待,未能考虑高维特征或特征质量对模型性能的影响。对于现有的抄袭检测方法,评估回译文本与原始文本之间的相似性是一个挑战。提高特征质量对于改善检测模型的性能至关重要。目前,针对翻译洗稿的机器检测方法还很少。因此,本文提出了一种基于深度学习的翻译洗稿抄袭检测算法。本文方法从回译文本中提取语言风格、习语表达和全局长期依赖性的潜在表征,并采用所提出的翻译洗稿特征融合机制生成分组特征的重要性系数。此机制可以加强重要特征,削弱不重要的特征,最终提高文本表示质量[19]。我们的模型还采用对比损失函数通过多轮翻译的文本表示融合来优化检测能力。本文的主要贡献如下:
1) 基于深度学习提出了一个针对翻译洗稿的抄袭检测模型,并根据模型结构改进了对比损失函数。
2) 提出了一个创新性的特征融合机制,通过对回译文本特征进行分组、增强和融合来构建高质量的文本表示。
3) 构建了中英文多元组机器翻译洗稿数据集,并观察到在对我们所制作的数据集进行训练后,本文方法的Spearman相关系数可以达到0.86,均高于目前所提出的一些模型。
2. 数据集的构建
为了对翻译洗稿抄袭进行检测,首先从哈尔滨工业大学整理的基于新闻媒体在微博上发布的LCSTS新闻摘要数据集中抽取了摘要文本。其次,通过从百度翻译、Google翻译、有道翻译和Bing翻译这四个机器翻译器中随机选择一个作为翻译器。紧接着从汉语、英语、西班牙语、德语、日语和藏语等语言中随机选择翻译的过渡语言。最后分别随机翻译2到4轮得到回译文本1和回译文本2以及不相似的矛盾文本并创建了四元组翻译洗稿抄袭检测数据集,从数据集中随机选取其他回译后的文本作为矛盾文本,从而构建出了翻译洗稿数据集。测试集和验证集分别有1000条数据,每个语料库都通过多人交叉人工标注的方式用数字0和1标注了每一对句子的相似性,其中0表示是原文本和矛盾文本,1表示原文本和回译文本,数据集标签说明表见表1。
Table 1. Dataset label description sheet
表1. 数据集标签说明表
训练集标签 |
说明 |
测试集与原文组成文本对的标签 |
Origin |
原文 |
- |
Translation 1 |
多轮回译文本1 |
1 |
Translation 2 |
多轮回译文本2 |
1 |
Contradiction |
矛盾文本 |
0 |
3. 所提方法
如图1所示,本文所提出的基于深度学习的翻译洗稿抄袭检测算法主要由文本编码、特征融合和损失函数这三部分组成。首先将待检测的文本输入到BERT中进行文本编码,随后输出更高维度的抽象表示形式,该形式能够捕捉和表达输入数据的关键信息和内在结构,为了提升特征质量和模型识别能力,本文在训练的过程中设计了一个特征融合机制,通过对特征表示进行分组、增强和融合操作,形成一个综合的且高质量的特征表示。最后通过优化的对比损失函数将模型训练的焦点放在使相似文本表示更加接近,而使不相似文本表示更加疏远上,从而提高模型的区分能力。
Figure 1. Overall framework of our method
图1. 本文方法模型框架
3.1. 文本编码
编码层通过学习输入数据的特征,将原始数据转换为模型可以理解和处理的格式。对于文本数据,这意味着将单词、短语或句子映射到一个抽象的特征空间,这些特征能够表示词义、语法结构、上下文关系等语言属性。编码层能够从输入数据中提取最重要的信息,并以更紧凑和抽象的形式表示。在基于Transformer的模型BERT中,编码层通过自注意力机制能够捕捉单词间的长距离依赖关系,从而实现对整个输入序列的全局理解。这种机制允许模型根据上下文动态调整对每个单词的关注,从而更好地理解语言的多义性和复杂性。
首先将文本输入一个共享的BERT编码器,对于输入的原始文本o,多轮翻译文本
以及矛盾文本c,通过BERT中堆叠的多层Transformer块进行编码转换分别得到文本表示
,将转换后的多轮翻译洗稿的文本表示进行拼接得到联合表征图
。
3.2. 特征融合
本模块旨在通过融合多轮翻译所得的回译文本的表示,以强化关键特征并弱化不重要的特征,以便获得更高质量的文本表示。首先,根据特征的维度,将回译后的联合表征图
分为n个组记为:
(1)
由于n组的处理方法相同,因此选择一个组记为:
(2)
其中
,其子特征为:
(3)
在网络学习过程中,假设每个组都包含特定的语义信息。因此,可以通过计算每组的平均子特征来近似该组的语义向量,并对每一组进行相应的处理:
(4)
其次,使用该平均化后的回译文本语义向量,通过一个简单的位置点积来获得每个子特征相应的重要性系数,该点积在一定程度上衡量了平均语义向量与子特之间的相似性:
(5)
为消除不同样本间的度量影响,进行数据的归一化处理,归一化不仅加速了模型收敛,也保持了特征之间的相关性。
(6)
(7)
(8)
归一化过程中引入的常数
,以及每组的均值
和方差
,都是为了数值稳定性而设。归一化后的输出通过引入的缩放参数
和平移参数
进行调整,确保归一化操作后能有效表示文本的变化,然后通过sigmoid函数
生成一个新的归一化重要系数:
(9)
最后,用归一化后的重要性系数对原始特征进行缩放,强化重要特征,弱化不重要特征,得到增强的子向量:
(10)
所有增强子向量形成了增强向量组
。在所有组增强后,就能够得到一个增强的文本表示,记为
。
3.3. 损失函数
对比损失函数对输出的文本表示进行处理。在此之前通过池化层,在保留主要特征的情况下进行特征降维,最终得到文本语义表示,常用的池化策略有[CLS]向量、最大池化、平均池化三种。[CLS]向量的池化策略直接将模型最后一层输出的[CLS]向量作为输入文本的语义表示。最大池化策略取所有词向量每一个维度的最大值作为输入文本的语义表示,突出了关键信息但是由于丢弃了太多值存在信息丢失问题。平均池化策略对所有向量求平均值,用所有词向量的平均值作为输入文本的语义表示,虽然所有词向量每个维度的特征值都参与了运算,但是求和平均的操作使得在计算文本的语义表示时,每一个词向量所占的权重相等,导致模型无法聚焦于关键信息。本文选择CLS池化来对文本表示进行降维。
随后通过优化的对比损失函数来计算和最小化正样本间的距离,同时最大化负样本间的距离。在每个训练步骤中,模型从训练集中随机抽取N个文本表示构建一个mini-batch,并将通过不同轮数翻译的回译文本表示进行融合,作为对比损失函数的优化学习的目标。在最大限度地提高原文本表示与多轮回译文本表示之间相似性的同时保持其与同一batch中的其他矛盾文本表示之间的距离。优化的对比损失函数如公式11所示:
(11)
式中,
函数表达的是样本之间的余弦相似度,N为mini-batch的数量,
代表的是原文本表示,
代表的是将多轮翻译洗稿后得到的回译文本向量进行融合后的表示,
表示mini-batch内的矛盾文本表示。
4. 实验结果及分析
4.1. 实验设置
本文中所有用来进行对比的基准模型的实验配置都保持了一致,模型的具体参数设置如下:网络层数为12,隐藏网络层数为768,遮蔽的自注意力机制的级数为12,全局的自注意力机制的级数为12;训练时每次输入的Batch为32;为防止模型出现过拟合的问题,Dropout参数设置为0.2。整个模型搭建使用的是Pytorch框架,训练过程中使用NVIDIA GeForce RTX 2080 Ti GPU进行计算。本文实验环境配置和实验参数具体设置如表2所示。
Table 2. Experimental environment and parameter configuration
表2. 实验环境和参数配置
环境 |
配置 |
参数 |
配置 |
操作系统 |
Windows (64位) |
Dropout |
0.2 |
CPU |
i7 |
内存 |
64g |
内存 |
64g |
词向量维度 |
768 |
编程语言 |
Python3.9 |
Batch_size |
32 |
计算框架 |
Pytorch |
Epoch |
1 |
4.2. 评价指标
4.2.1. 余弦相似度
在抄袭检测任务中,通常需要计算不同文本之间的相似性。余弦相似度是量化语义空间中两个嵌入之间的相似程度的度量。余弦相似度通过计算两个嵌入之间的夹角的余弦值来测量它们之间的差异。余弦值越接近1,这两个向量就越相似。本文中使用余弦相似度来计算样本之间的距离,余弦相似度的计算公式如下:
(12)
式中,X和Y分别表示两个待检测的文本表示。
4.2.2. Spearman相关系数
在多轮翻译洗稿抄袭检测任务中,通过将两个文本序列转换为向量表示来计算它们的相似性。正如Reimers等人[20]所证明的,Spearman相关系数是一种非参数统计方法,因为它不依赖于数据的具体分布,而是通过对数据进行排序来评估两个变量之间的关系。具体计算流程如下:首先,将文本对分别输入到模型中,得到文本表示对,然后计算文本表示对的余弦相似度。在计算完所有文本表示对的余弦相似度后,最后使用Spearman相关系数比较模型生成的余弦相似度与手工标记相似度的相关性。从−1到1,相关系数越接近1或−1,相关性越强,相关系数越接近0,相关性越弱。Spearman相关系数的计算公式为:
(13)
式中,di对应变量的秩之差,即两个变量分别排序后成对的变量位置(等级)差,n表示观测对象的数量。
4.3. 抄袭检测结果
使用本文方法分别对通过设定翻译的过渡语言及翻译轮次的中英文数据集进行实验。首先对LCSTS新闻摘要数据集[21]中的文本使用百度翻译器,随机经过2至4轮翻译,并且随机选择过渡语言来分别得到原文本为中文和英文的数据集。过渡语言用语种的英文首字母来表示,不同过渡语言的字母表示如表3所示:
Table 3. Pivot language abbreviations
表3. 过渡语言首字母缩写表
Language |
English |
Chinese |
Spanish |
German |
Japanese |
Tibetan |
Capital Initial |
E |
C |
S |
G |
J |
T |
我们通过翻译器对数据集中的文本进行了r轮翻译,其中r = 2,3,4,在实验测试过程中,随机选择过渡语言和翻译轮数,多轮翻译洗稿抄袭检测的Spearman相关系数的结果如表4所示:
Table 4. Spearman correlation results of our method under different translation rounds and translation processes
表4. 本文方法在不同翻译轮数和翻译过程下的Spearman相关系数结果
Round |
English as the Source Language |
Chinese as the Source Language |
Translation Process |
|
Translation Process |
|
r = 2 |
E → C → E |
0.8574 |
C → E → C |
0.8564 |
E → G → E |
0.8583 |
C → G → C |
0.8544 |
E → T → E |
0.8563 |
C → T → C |
0.8611 |
r = 3 |
E → C → G → E |
0.8561 |
C → E → G → C |
0.8413 |
E → G → T → E |
0.8555 |
C → G → T → C |
0.8547 |
E → T → J → E |
0.8549 |
C → T → J → C |
0.8551 |
r = 4 |
E → T → S → C → E |
0.8543 |
C → T → S → E → C |
0.8547 |
E → G → C → S → E |
0.8442 |
C → G → E → S → C |
0.8473 |
E → C → J → T → E |
0.8511 |
C → E → J → T → C |
0.8445 |
由实验结果可得,以英语为原文本的实验通过使用“E → G → E”方法的两轮翻译过程获得了最佳的性能。另一方面,在以中文为原文本的实验中,使用“C → T → C”过程进行两轮翻译,获得了最好的结果。分析原因可得,英语和德语都属于日耳曼语系,而汉语和藏语则属于汉藏语系。同一语系中的语言在词源和语法方面有很大程度的相似性。因此,来自同一语系的语言之间的相互翻译的容易程度明显高于来自不同语系的语言。
4.4. 抄袭检测性能对比
此外,本文还分别在以英文和中文为原文本的翻译洗稿数据集进行了实验。不同模型的Spearman相关系数的结果如下图所示。其中如图2(a)所示,在以中文作为源语言的实验中,选用“C → E → C”,“C → E → G → C”和“C → T → S → E → C”作为2至4轮翻译洗稿抄袭检测来进行实验。如图2(b)所示,在以英文作为原文本实验中,本文选择了“E → C → E”,“E → C → G → E”和“E → T → S → C → E”作为2至4轮翻译洗稿抄袭检测来进行实验。实验结果显示本文方法在多轮翻译洗稿抄袭检测任务上性能的显著提升。
(a) 中文为源语言 (b) 英文为源语言
Figure 2. Performance comparison of different models on translation laundering dataset
图2. 不同模型在翻译洗稿数据集上的性能比较
4.5. 文本相似度性能对比
为了验证本文方法能否完成传统的文本相似度检测任务,将本文方法与之前STS任务上最先进的相似度计算方法进行了比较并使用受监督的数据集NLI来训练本模型。实验在中英文STS数据集上通过预测两个句子之间的关系,判断其是否为蕴涵、中性或矛盾。然后对预测结果使用Spearman相关系数来进行评估。在NLI数据集中,给定一个前提,标注者需要手动写出一个绝对正确的句子(蕴含)、一个可能正确的句子(中性)和一个绝对错误的句子(矛盾)。因此,对于每个前提及其蕴涵假设,都有一个伴随的矛盾假设。形式上为三元组
,其中xi是前提,
和
是蕴含假设和矛盾假设[22]。不同模型在STS数据集上的结果如表5所示,实验显示本文算法将最佳Spearman相关系数从0.7329提高到0.7850。
Table 5. Comparison of results of different models on STS data set
表5. 不同模型在STS数据集上的结果比较
|
本文方法 |
SBERT |
ConSERT |
BERT-Whitening |
BERT |
中文 |
0.7850 |
0.7329 |
0.7175 |
0.6722 |
0.5600 |
英文 |
0.7641 |
0.6881 |
0.6748 |
0.6755 |
0.5818 |
5. 总结
本文提出了一种基于深度学习的翻译洗稿抄袭检测算法。该算法采用对比学习架构,在训练的过程中设计了一个特征融合机制,通过对特征表示进行分组、增强和融合,构建了一个综合且高质量的特征表示。此外,通过改进的对比损失函数将模型训练的焦点放在提高模型的区分能力上。相比于此前的方法,本文方法重视高维特征重要性的差异,为不同的特征分配权重系数,从而提高了算法的检测能力。最后利用所构建的多元组翻译洗稿数据集来对模型进行训练和验证。实验结果表明,本文方法在翻译洗稿数据集上的Spearman相关系数结果达到了86.11%,比其他算法在多轮翻译洗稿任务上有更好的表现。