深圳有哪些做网站公司,找网站公司制作网站,上海网站建设设计公司哪家好,靓号网建站#x1f34e;个人主页#xff1a;小嗷犬的个人主页 #x1f34a;个人网站#xff1a;小嗷犬的技术小站 #x1f96d;个人信条#xff1a;为天地立心#xff0c;为生民立命#xff0c;为往圣继绝学#xff0c;为万世开太平。 基本信息
标题: Contrastive Learning for… 个人主页小嗷犬的个人主页 个人网站小嗷犬的技术小站 个人信条为天地立心为生民立命为往圣继绝学为万世开太平。 基本信息
标题: Contrastive Learning for Sign Language Recognition and Translation 作者: Shiwei Gan, Yafeng Yin, Zhiwei Jiang, K. Xia, Linfu Xie, Sanglu Lu 发表: IJCAI 2023 摘要
当前端到端手语处理架构中广泛存在两个问题。一个是 CTC 尖峰 现象这削弱了连续手语识别CSLR中的视觉表征能力。另一个是 暴露偏差 问题这导致在手语翻译SLT推理过程中翻译错误的累积。
在这篇论文中我们通过引入对比学习来解决这些问题旨在增强视觉级特征表示和语义级错误容忍度。
具体来说为了缓解 CTC 尖峰现象并增强视觉级表示我们设计了一种视觉对比损失通过最小化同一手语视频中不同增强样本帧之间的视觉特征距离从而使模型能够进一步探索特征利用大量未标记的帧以无监督的方式。
为了缓解暴露偏差问题并提高语义级错误容忍度我们设计了一种语义对比损失通过将预测的句子重新输入到语义模块并比较真实序列和预测序列的特征使模型暴露于自身的错误中。
此外我们提出了两种新的指标即空白率和连续错误词率直接反映我们在两个问题上的改进。在当前手语数据集上的广泛实验结果证明了我们方法的有效性该方法达到了最先进的性能。
主要贡献
为了缓解 CSLR 中的 CTC 尖峰现象并增强视觉级特征表示我们提出了一种视觉对比损失通过利用大量未标记的帧来探索特征。为了缓解 SLT 中的暴露偏差问题并提高语义级错误容忍度我们提出了一种语义对比损失通过将预测序列重新输入到语义模块中使模型暴露于自身的翻译错误。提出了两种新的指标即空白率和连续错误词率以反映我们在两个问题上的改进。广泛的实验表明所提出的损失函数和框架在 CSLR 和 SLT 上达到了最先进的性能。
方法
在这一节中我们首先概述了我们的框架。然后我们简单地描述了 CSLR 中的 CTC 尖峰现象并提出了一种增强视觉表示的可视对比损失。
接着我们描述了 SLT 中的暴露偏差问题并提出了一种增强语义层错误容忍度的语义对比损失。最后我们设计了联合损失以训练我们的模型同时适用于 CSLR 和 SLT。
总体框架
对于一个包含 n n n 帧的手语视频 f { f i } i 1 n f\{f_i\}_{i1}^n f{fi}i1nCSLR 的目标是学习从 f f f 到 g { g i } i 1 ϑ g\{g_i\}_{i1}^\vartheta g{gi}i1ϑ 的映射其中 g g g 包含 ϑ \vartheta ϑ 个手语符号而 SLT 的目标是将 f f f 翻译成包含 t t t 个单词的口语句子 w { w i } i 1 t w\{w_i\}_{i1}^t w{wi}i1t。 如图 1 所示CSLR 和 SLT 的过程可以简化如下。
视觉特征提取
视觉模块 V E \mathcal{VE} VE 处理帧以获得视觉特征 v V E ( f ) v\mathcal{VE}(f) vVE(f)其中 v v v 包含 m m m 个向量 v { v i ∈ R d v } i 1 m v\{v_i \in \mathbb{R}^{d_v}\}_{i1}^m v{vi∈Rdv}i1m m ≤ n m \leq n m≤n d v d_v dv 是 v i v_i vi 的维度。
时间特征提取
时间模块 T E \mathcal{TE} TE 从 v v v 中提取全局上下文信息以获得 u T E ( v ) u\mathcal{TE}(v) uTE(v)其中 u { u i ∈ R d t } i 1 m u\{u_i \in \mathbb{R}^{d_t}\}_{i1}^m u{ui∈Rdt}i1m d t d_t dt 是 u i u_i ui 的维度。
识别和翻译
对于 CSLR添加了一个全连接层权重为 W r W_r Wr 和偏差 b r b_r br以及一个 softmax 层 S M SM SM以获得识别的手语序列的最终概率矩阵 R S M ( W r ∗ u b r ) R SM(W_r *u b_r) RSM(Wr∗ubr)。
对于SLT需要一个 RNN-like 或 transformer 解码器 S E SE SE以获得第 i i i 步的翻译概率矩阵 Y i S M ( W y ∗ S E ( u , { y j } j 0 i − 1 ) b y ) Y_i SM(W_y*\mathcal{SE}(u, \{y_j\}_{j0}^{i-1}) b_y) YiSM(Wy∗SE(u,{yj}j0i−1)by) 中 W y W_y Wy 和 b y b_y by 是语义模块中全连接层的权重和偏差。
视觉级对比学习用于 CTC 尖峰现象
CTC 尖峰现象
在 CSLR 中CTC 损失通过最大化所有可能路径的概率来解决未分段手语视频的时间分类问题这些路径将帧与标记的 gloss 序列 g g g 在概率矩阵 R \mathbf{R} R 中对齐。
理想情况下有必要为每一帧标注一个特定的类别。然而考虑到无意义的帧和连续出现的相同 glossCTC 引入了 blank token并进一步定义了一个多对一映射 B \mathcal{B} B该映射简单地从路径中删除所有重复的 token 和 blank例如在图 2 中 B ( P a t h B ) B ( a − a a − ) a a \mathcal{B}(PathB) \mathcal{B}(a-aa-) aa B(PathB)B(a−aa−)aa。因此CTC损失可以形式化如下 L C T C ( R , g ) − ∑ π ∈ B − 1 ( g ) log ( p ( π ) ) \mathcal{L}_{CTC}(\mathbf{R}, g) -\sum_{\pi \in \mathcal{B}^{-1}(g)} \log(p(\pi)) LCTC(R,g)−π∈B−1(g)∑log(p(π))
其中 p ( π ) ∏ i 1 m R i π i p(\pi) \prod_{i1}^{m} \mathbf{R}_i^{\pi_i} p(π)∏i1mRiπi π \pi π 表示一个对齐路径即 B ( π ) g \mathcal{B}(\pi) g B(π)g而 R i π i \mathbf{R}_i^{\pi_i} Riπi 是第 i i i 个 token π i \pi_i πi 的概率。 然而CTC 损失会导致尖峰现象。如图 2 所示当模型无法自信地区分手势边界时它倾向于将帧分类为 blank token因为预测 blank token 是减少损失 L C T C \mathcal{L}_{CTC} LCTC 的更安全选择。例如 B ( P a t h A ) B ( a a a b b ) a b \mathcal{B}(PathA) \mathcal{B}(aaabb) ab B(PathA)B(aaabb)ab 和 B ( P a t h C ) B ( − a − − b ) a b \mathcal{B}(PathC) \mathcal{B}(-a--b) ab B(PathC)B(−a−−b)ab 都是标签序列 ‘ab’ 的正确路径而 CTC 偏好 PathC 而不是 PathA 这导致只有少数帧对最终结果有贡献。由于在训练过程中大多数帧被分类为 blank token视觉模块没有得到充分训练无法在测试集上提供有效的手语特征。
视觉级的对比学习
为了应对尖峰现象我们的直观想法是通过使用更多数据训练视觉模块来增强视觉表示能力。
然而与图像分类任务ResNet 使用的 128 万张标记图像或 NLP 任务Transformer 使用的 450 万句对不同当前手语任务中的数据对视频-手势对或视频-句子对相当有限通过手动标记每一帧来增加样本以单独训练视觉模块是不现实的。
但是手语视频提供的未标记帧是丰富的例如Phoenix14 训练集中的 5672 个样本提供了 963,664 帧Phoenix14T 训练集中的 7096 个样本提供了 827,354 帧。
因此我们引入了视觉级的对比学习通过比较同一手势视频的不同增强视图的视觉特征使得视觉模块能够以无监督的方式进一步探索大量未标记帧中的特征。
为了构建视觉对比损失我们首先需要从包含 n n n 个未标记帧的手势视频 f { f i } i 1 n f\{f_i\}^n_{i1} f{fi}i1n 生成两个增强视频。 如图 3 所示我们引入两种不同的增强软增强 S A \mathcal{SA} SA 和硬增强 H A \mathcal{HA} HA以获得增强视频 f s f^s fs 和 f h f^h fh f s S A ( f ) , f h H A ( f ) f^s \mathcal{SA}(f), \quad f^h \mathcal{HA}(f) fsSA(f),fhHA(f)
然后视觉模块 V E \mathcal{VE} VE 将两个增强视频映射到帧级别的视觉特征向量 v s { v i s } i 1 m v^s\{v_i^s\}^m_{i1} vs{vis}i1m 和 v h { v i h } i m 1 v^h\{v_i^h\}^m_i1 vh{vih}im1如下所示。 v s V E ( f s ) , v h V E ( f h ) v^s \mathcal{VE}(f^s), \quad v^h \mathcal{VE}(f^h) vsVE(fs),vhVE(fh)
接下来如图 3 所示一个投影 MLP 头 P R O v i \mathcal{PRO}_{vi} PROvi 和一个预测 MLP 头 P R E v i \mathcal{PRE}_{vi} PREvi 被附加到将视觉特征映射到应用对比损失的空间。 z s P R O v i ( v s ) , z h P R O v i ( v h ) z^s \mathcal{PRO}_{vi}(v^s), \quad z^h \mathcal{PRO}_{vi}(v^h) zsPROvi(vs),zhPROvi(vh) p s P R E v i ( z s ) p^s \mathcal{PRE}_{vi}(z^s) psPREvi(zs)
在得到 p s p^s ps 和 z h z^h zh 后我们的相似性函数 S \mathcal{S} S 计算每个 p s p^s ps 和 z h z^h zh 在帧级别的负余弦相似性如下所示。这里 ∣ ∣ ⋅ ∣ ∣ 2 ||\cdot||_2 ∣∣⋅∣∣2 是 ℓ 2 ℓ_2 ℓ2 范数。 S ( p i s , z i h ) − p i s ∣ ∣ p i s ∣ ∣ 2 ⋅ z i h ∣ ∣ z i h ∣ ∣ 2 \mathcal{S}(p_i^s, z_i^h) -\frac{p_i^s}{||p_i^s||_2} \cdot \frac{z_i^h}{||z_i^h||_2} S(pis,zih)−∣∣pis∣∣2pis⋅∣∣zih∣∣2zih
当使用 S \mathcal{S} S 计算 p s p^s ps 和 z h z^h zh 的相似性时我们可以得到所有帧的平均损失如下所示。 S ( p s , z h ) 1 m ∑ i 1 m S ( p i s , z i h ) \mathcal{S}(p^s, z^h) \frac{1}{m} \sum_{i1}^{m} \mathcal{S}(p_i^s, z_i^h) S(ps,zh)m1i1∑mS(pis,zih)
最后遵循 SimSiam我们进一步以对称方式获得 p h P R E v i ( z h ) p^h\mathcal{PRE}_{vi}(z^h) phPREvi(zh)并定义对称化的视觉对比损失 L V i C o \mathcal{L}_{ViCo} LViCo 如下 L V i C o S ( p s , d e t a c h ( z h ) ) S ( p h , d e t a c h ( z s ) ) 2 \mathcal{L}_{ViCo} \frac{\mathcal{S}(p^s, detach(z^h)) \mathcal{S}(p^h, detach(z^s))}{2} LViCo2S(ps,detach(zh))S(ph,detach(zs))
其中 d e t a c h ( ⋅ ) detach(\cdot) detach(⋅) 函数表示停止梯度操作这意味着 z h z^h zh 和 z s z^s zs 被视为常量而不是具有梯度的变量。
语义级对比学习以解决暴露偏差
暴露偏差
在 SLT 中seq2seq 架构更精确地说是自回归架构通常通过最大似然估计MLE进行训练。 如图 4 所示以 RNN 类解码器为例基于 MLE 的训练通过最大化下一个词 y i y_i yi 基于其前一个真实词 w i − 1 w_{i-1} wi−1称为 teacher forcing的概率来进行优化如下所示。
这里 θ \theta θ 表示模型参数 θ ∗ \theta^* θ∗ 表示更新后的参数 h i − 1 h_{i-1} hi−1 是语义模块的第 ( i − 1 ) (i-1) (i−1) 个隐藏状态 u u u 表示时间特征。 θ ∗ arg max θ ∏ i 1 t P θ ( y i ∣ w i − 1 , h i − 1 , u ) \theta^* \argmax_\theta \prod_{i1}^{t} P_\theta(y_i | w_{i-1}, h_{i-1}, u) θ∗θargmaxi1∏tPθ(yi∣wi−1,hi−1,u)
而在推理阶段模型需要根据自身生成的前缀词 y i − 1 y_{i-1} yi−1 来预测 Y i y i Y_i^{y_i} Yiyi即词 y i y_i yi 的概率。 Y i y i P θ ∗ ( y i ∣ y i − 1 , h i − 1 , u ) Y_i^{y_i} P_{\theta^*}(y_i | y_{i-1}, h_{i-1}, u) YiyiPθ∗(yi∣yi−1,hi−1,u)
由于在训练过程中接触到了真实数据模型可能会过度依赖正确的前缀词。而在推理过程中错误预测的词 y i − 1 y_{i-1} yi−1 可能会加剧沿生成序列的误差传播模型生成的目标概率分布将逐渐扭曲称为暴露偏差。暴露偏差会导致性能显著下降尤其是在训练样本的序列分布不足以覆盖测试样本的序列分布时。
语义级对比学习
为了解决暴露偏差问题最直接的解决方案是计划采样。计划采样在训练过程中决定是否以概率 α α α 使用真实词 w i − 1 w_{i-1} wi−1 或预测词 y i − 1 y_{i-1} yi−1。通过这种方式模型可以通过暴露其自身的错误来削弱对真实词的依赖。
然而直接将计划采样应用于 Transformer 模型并不简单因为与 RNN 类解码器不同Transformer 基于整个前缀序列 { y j } j 0 i − 1 \{y_j\}_{j0}^{i-1} {yj}j0i−1 而不是最后一个词 y i − 1 y_{i-1} yi−1 生成第 i i i 个词。
此外计划采样训练是一个随时间进行的顺序过程因此阻碍了并行训练。
在这篇论文中遵循让模型暴露自身错误的相同理念我们通过比较语义模块即解码器模块中不同输入真实序列输入和预测序列输入的语义特征来引入语义级对比学习以减轻暴露偏差。
与计划采样相比我们的方法可以用于 RNN 类解码器和 Transformer 解码器并且可以轻松并行训练。
为了构建语义对比损失我们首先需要基于真实句子 w w w 获得翻译句子 y y y。具体来说对于时间特征 u { u i } i 1 m u\{u_i\}_{i1}^m u{ui}i1m语义模块 S E \mathcal{SE} SE 将 u u u 和 w w w 作为输入以获得语义特征即隐藏状态 h w h^w hw h w S E ( u , w ) h^w \mathcal{SE}(u, w) hwSE(u,w)
然后采用全连接层和 softmax 函数 S M \mathcal{SM} SM 来获得翻译句子的可能性矩阵 Y \mathbf{Y} Y并通过 argmax 操作进一步获得翻译句子 y y y Y S M ( W y ∗ h w b y ) \mathbf{Y} \mathcal{SM}(W_y * h^w b_y) YSM(Wy∗hwby) y argmax ( Y ) y \text{argmax}(\mathbf{Y}) yargmax(Y) 之后如图 5 所示我们将预测的句子 y y y 重新输入到语义模块中以获得另一个语义特征 h y h^y hy如下所示。这里重新输入预测序列 y y y 可以被视为重新输入增强的真实词 w w w也可以被视为一种计划采样的形式。 h y S E ( u , y ) h^y \mathcal{SE}(u, y) hySE(u,y)
接下来类似于图 3 中的视觉模块添加了一个投影 MLP 头 P R O s e \mathcal{PRO}_{se} PROse 和一个预测 MLP 头 P R E s e \mathcal{PRE}_{se} PREse 以获得 ρ w \rho^w ρw 和 ξ w \xi^w ξw。此外采用了相似性函数 S \mathcal{S} S 来计算 ρ w \rho^w ρw 和 ξ g \xi^g ξg 之间的距离 ρ w P R O s e ( h w ) , ρ y P R O s e ( h y ) \rho^w \mathcal{PRO}_{se}(h^w), \quad \rho^y \mathcal{PRO}_{se}(h^y) ρwPROse(hw),ρyPROse(hy) ξ w P R E s e ( ρ w ) \xi^w \mathcal{PRE}_{se}(\rho^w) ξwPREse(ρw)
最后我们也得到 ξ y P R E s e ( ρ y ) \xi^y \mathcal{PRE}_{se}(\rho^y) ξyPREse(ρy)并定义对称化的语义对比损失 L S e C o \mathcal{L}_{SeCo} LSeCo 如下 L S e C o S ( ξ w , detach ( ρ y ) ) S ( ξ y , detach ( ρ w ) ) 2 \mathcal{L}_{SeCo} \frac{\mathcal{S}(\xi^w, \text{detach}(\rho^y)) \mathcal{S}(\xi^y, \text{detach}(\rho^w))}{2} LSeCo2S(ξw,detach(ρy))S(ξy,detach(ρw))
CSLR 和 SLT 的联合损失
为了使用提议的对比损失优化我们的模型我们需要基于不同的输入两次推断我们的模型 M O \mathcal{MO} MO。一种包含软增强视频 f s f_s fs 和标记的词序列 w w w。另一种包含硬增强视频 f h f^h fh 和预测的词序列 y y y其中 y arg max ( Y ) y \arg\max(\mathbf{Y}) yargmax(Y)。 R , Y , ( p s , z s ) , ( ρ w , ξ w ) M O ( f s , w ) \mathbf{R}, \mathbf{Y}, (p^s, z^s), (\rho^w, \xi^w) \mathcal{MO}(f^s, w) R,Y,(ps,zs),(ρw,ξw)MO(fs,w) R ′ , Y ′ , ( p h , z h ) , ( ρ y , ξ y ) M O ( f h , y ) \mathbf{R}, \mathbf{Y}, (p^h, z^h), (\rho^y, \xi^y) \mathcal{MO}(f^h, y) R′,Y′,(ph,zh),(ρy,ξy)MO(fh,y)
在获得 ( p s , z s , p h , z h ) , ( ξ w , ρ w , ρ y , ξ y ) (p^s, z^s, p^h, z^h), (\xi^w, \rho^w, \rho^y, \xi^y) (ps,zs,ph,zh),(ξw,ρw,ρy,ξy) 后我们可以分别计算对比损失 L V i C o , L S e C o \mathcal{L}_{ViCo}, \mathcal{L}_{SeCo} LViCo,LSeCo。同时我们得到两个识别概率矩阵 R , R ′ \mathbf{R}, \mathbf{R} R,R′ 和两个翻译概率矩阵 Y , Y ′ \mathbf{Y}, \mathbf{Y} Y,Y′。为了实现 CSLR 和 SLT 的联合目标我们采用 CTC 损失 L C T C \mathcal{L}_{CTC} LCTC 和交叉熵损失 L C E \mathcal{L}_{CE} LCE 来训练我们的模型如下所示 L s o f t L C T C ( R , g ) L C E ( Y , w ) \mathcal{L}_{soft} \mathcal{L}_{CTC}(\mathbf{R}, g) \mathcal{L}_{CE}(\mathbf{Y}, w) LsoftLCTC(R,g)LCE(Y,w) L h a r d L C T C ( R ′ , g ) L C E ( Y ′ , w ) \mathcal{L}_{hard} \mathcal{L}_{CTC}(\mathbf{R}, g) \mathcal{L}_{CE}(\mathbf{Y}, w) LhardLCTC(R′,g)LCE(Y′,w)
最后我们得到带有平衡权重 α \alpha α 的联合损失 L \mathcal{L} L其中 α \alpha α 是一个超参数如下所示 L L s o f t L h a r d α ( L V i C o L S e C o ) \mathcal{L} \mathcal{L}_{soft} \mathcal{L}_{hard} \alpha (\mathcal{L}_{ViCo} \mathcal{L}_{SeCo}) LLsoftLhardα(LViCoLSeCo)
实验
空白率和连续错误词率
为了验证我们的方法是否能够有效处理 CTC 尖峰现象和暴露偏差问题我们提出了两个新的指标空白率 B R BR BR和连续错误词率 C W W R CWWR CWWR。 B R BR BR 是一个直接反映尖峰现象严重程度的指标可以表示为以下形式 B R # B l a n k # T o t a l R BR \frac{\#Blank}{\#TotalR} BR#TotalR#Blank
其中 # B l a n k \#Blank #Blank 表示识别序列中 blank token 的数量而 # T o t a l R \#TotalR #TotalR 表示识别序列中所有 token 的总数。 C W W R CWWR CWWR 是一个直接反映模型在翻译中依赖先前预测词汇程度的指标可以表示为以下公式 C W W R ∑ # C W # T o t a l T CWWR \frac{\sum \#CW}{\#TotalT} CWWR#TotalT∑#CW
其中 # C W \#CW #CW 表示连续错误单词的数量而 # T o t a l T \#TotalT #TotalT 表示翻译序列中单词的总数。 主实验 消融实验 总结
在这篇论文中我们引入对比学习来解决手语任务中广泛存在的两个问题连续手语识别CSLR任务中的 CTC 尖峰现象和手语翻译SLT任务中的暴露偏差。
具体来说为了解决 CTC 尖峰现象我们设计了一种视觉对比损失通过从大量未标记的帧中学习特征来增强视觉模块。
为了解决暴露偏差问题我们设计了一种语义对比损失通过让模型暴露在自己的错误中来增强语义模块。
此外我们提出了两种新的指标即空白率Blank Rate和连续错误词率Consecutive Wrong Word Rate以直接反映我们在两个问题上的改进。
在公共手语数据集上的实验结果证明了我们方法的有效性。