들어가면서

     연구를 하면서 필요한 논문들을 공부하는 중에 기록 겸 정리해보았습니다. 이 논문은 구글에서 발표한 논문으로, speaker embedding 생성시 사용되는 loss입니다. 이전의 TE2E보다 더 발전된 형태인 GE2E loss를 소개합니다.

​

​

Abstract

  • 이 논문에서는, generalized end-to-end(GE2E)라는 새로운 loss function을 제안
  • 이전의 tuple-based end-to-end(TE2E) loss function보다 speaker verification 모델 훈련을 더욱 효과적으로 할 수 있음
  • TE2E와는 다르게, GE2E loss function은 각 훈련 프로세스의 각 스텝에서 입증하기 어려운 example들을 강조하는 방향으로 네트워크를 업데이트함
  • 추가적으로, GE2E loss는 example selection의 초기 단계가 불필요
  • 이러한 것들로, 새 손실 함수를 적용한 모델은 speaker variation EER을 10% 이상 낮추었고, 훈련 시간 또한 60%로 감소시킴
  • 또한 MultiReader technique도 도입했는데, 이는 domain adaptaion을 가능하게 함 (training a more accurate model that supports multiple keywords) (ex ‘OK Google and Hey Google) 즉, 다양한 방언을 비롯한 다양한 키워드를 지원

​

​

​

Introduction

Speaker Varification(SV)는 발화가 특정 화자의 것이 맞는지 화자의 알려진 발언(ex. enrollment utterances)를 기반으로 하여 확인하는 프로세스

Voice Match와 같은 응용프로그램에서 사용

  • 등록 및 검증에 사용되는 발화의 제한에 따라, speaker verification 모델은 일반적으로 두 가지 범주 중 하나에 속함
    • text-dependent speaker verification(TD-SV)
    • text-independent speaker verification(TI-SV)
  • TD-SV에서는, 등록 및 확인 발화의 대본이 음성으로 제한됨
  • TI-SV에서는 등록 또는 확인 발화의 대본에 어떠한 어휘의 제약도 없음, 음성과 발언 지속 시간이 더 큰 다양성에 노출됨 (음성과 발언 지속 시간의 더 큰 변동성이 노출됨)
  • 이 작업에서는, TI-SV와 global password TD-SV로 알려진 TD-SV의 특정 subtask(하위작업)에 초점을 맞춤, 여기서 검증은 OK Google과 같은 감지된 키워드를 기반으로 해서 확인
  • 이전 연구에서는, i-vector based 시스템이 TD-SV와 TI-SV 응용에 대한 지배적인 접근 방법이었음
  • 최근 몇년간, 많은 노력들이 speaker verification에 신경망을 이용하는 연구들이 증가, 가장 성공적인 시스템들은 end-to-end 학습을 사용
  • 그러한 시스템들에서는, 신경망의 출력 벡터가 보통 임베딩 벡터(also known as d-vectors)로 불림
  • i-vectors 케이스와 비슷하게, 이러한 임베딩은 고정된 차원 공간에서 발화를 represent하는데 사용 가능, 일반적으로 더 간단한 방법을 사용해 화자들간의 모호성을 줄일 수 있음 (= 화자들을 구분 가능)

​

​

1.2 Tuple-Based End-to-End Loss

이전 연구에서 TE2E 모델을 제안, 이는 training에서 runtime 등록과 확인의 2단계 프로세스를 시뮬레이션

  • 실험에서, LSTM과 결합된 TE2E 모델은 가장 좋은 성능을 달성

  • 각 훈련 스텝마다, 하나의 평가발언(evaluation utterance) $x_{j}$ 그리고 $M$개의 등록 발언 $x_{km} (for~ m=1,…,M)$으로 이루어진 튜플이 LSTM 네트워크{${x_j, (x_{k1}, …, x{km})}$}에 입력으로 사용됨

  • 여기서 $x$는 고정 길이 세그먼트의 특성(log-mel-filterbank energies)을 나타내며, $j$와 $k$는 화자의 발언을 나타내고, $i$는 $j$와 같을수도, 다를 수도 있음

  • 튜플은 화자 $j$로부터의 단일 발언과 화자 $k$의 M개의 다른 발언을 포함

  • 우리는 $x_j$와 $M$개의 등록 발언이 동일 화자일 경우 ($j = k$) tuple을 positive라고 부르고, 반대일 경우 negative라고 부름

  • positive와 negative를 번갈아가며 생성

  • 각 입력 튜플에 대해서, LSTM의 $L2$ normalized response를 계산: {$e_j$~ $(e_{k1}, …, e{kM})$}

  • 여기서 각각의 $e$는 LSTM로부터 정의된 sequence-to-vector 매핑의 결과로 나오는 고정된 차원의 임베딩 벡터임

  • 튜플 ($e_{k1}, …, e_{kM}$)는 M개의 발화에서 구성된 voiceprint(음성 특징)를 나타내며 다음과 같이 정의됨

    \[\begin{align} (1)~~ C_k = E_m[e_{km}] = \frac{1}{M}\sum_{m=1}^{M}e_{km} \end{align}\]
  • 유사도는 코사인 유사도 함수를 이용해 정의됨 (with 학습 가능한 w와 b)

\[\begin{align} (2)~~s = w\cdot cos(e_{j\sim} , c_k) + b, \end{align}\]
  • TE2E는 결국 아래와 같이 정의됨
\[\begin{align} L_T (e_{j\sim}, c_k) = \delta(j,k)(1-\sigma(s)) + (1-\delta(j,k))\sigma(s).\end{align}\]

여기서 $\sigma(x) = 1/1(+e^{-x})$ 는 표준 시그모이드 함수이고 $\delta(j,k)$는 $j = k$일 때 1이 되고, 아닐 때 0이 됨

  • TE2E 손실함수는 $k=j$일 때 $s$가 더 크도록 장려하고, $k !=j$일 때 $s$값이 더 작도록 장려
  • positive와 negative 튜플 모두에 대한 업데이트를 고려할 때, 이 손실함수는 FaceNet의 triplet loss와 매우 유사

1.3 Overview

이 논문에서는, TE2E 아키텍처의 일반화를 소개

이러한 새로운 아키텍처는 다양한 길이의 input sequence로부터 튜플을 더 효율적으로 구성하여 TD-SV와 TI-SV 모두의 성능과 훈련 속도를 동시에 향상시킴

  • $2.1$에서는 GE2E 손실함수 소개, $2.2$는 GE2E가 왜 모델 파라미터를 더욱 효율적으로 업데이트하는지에 대한 이론적 정의, $2.3$에서는 이는 여러 단어와 언어를 지원하는 단일 모델을 훈련시킬 수 있는 “MultiReader”로 불리는 신기술 소개, 마지막으로, 실험의 결과를 $3$에서 소개

2. GENERALIZED END-TO-END MODEL

GE2E 훈련은 많은 발화들을 한꺼번에 처리, 이 발화들은 평균적으로 각 화자당 M개의 발화를 포함하는 N명의 화장로 구성된 배치 형식으로 처리됨

Figure 1의 그림과 같음

스크린샷 2024-01-07 오후 9 12 16

Figure 1. system overview. 다른 색들은 각기 다른 화자에게서 온 발화/임베딩을 나타냄

2.1 Training Method

  • 배치를 만들기 위해 $N*M$개의 발화를 가져옴
  • 이 발화들은 $N$명의 다른 화자로 구성되어있으며, 각 화자는 $M$개의 발언을 가짐
  • 각 특성 벡터 $x_{ji} (1 \leq j \leq N~ and~ 1\leq i \leq M)$ 은 화자 $j$의 발언 $i$에서 추출된 특성들을 나타냄
  • 이전의 연구와 유사하게, 각 발언 $x_{ji}$로부터 추출된 feature들을 LSTM 네트워크에 넣음
  • 하나의 선형 레이어가 네트워크의 마지막 프레임 response의 추가적인 변환으로 마지막 LSTM 레이어에 연결됨
    • 선형 레이어가 LSTM 네트워크의 마지막 레이어에 연결되어 네트워크의 마지막 프레임 응답을 추가적으로 변환하는 역할을 함
  • 전체 신경망의 출력을 $f(x_{ji};w)$라고 나타내고, $w$는 신경망의 모든 파라미터(LSTM 레이어와 선형 레이어 모두)를 나타냄
  • 임베딩 벡터(d-vector)는 네트워크의 출력의 L2 normalization로 정의됨, L2 정규화는 벡터의 길이를 1로 만들어줌:
\[\begin{align} e_{ji} = \frac{f(x_{ji};w)}{\parallel f(x_{ji};w)\parallel}\end{align}\]
  • $e_{ji}$는 $j$번째 화자의 $i$번째 발화의 임베딩 벡터를 나타냄

  • $j$번째 화자의 임베딩 벡터$[e_{j1}, …, e_{jM}]$의 중심점 $c_j$는 Equation 1을 통해 정의됨

  • 유사도 매트릭스 $S_{ji,k}$는 각 임베딩 벡터인 $e_{ji}$와 모든 centroid $c_k(1\leq j,k \leq N,and ~ 1\leq i\leq M)$ 간의 scaled 코사인 유사도를 통해 정의됨: \(\begin{align} (5)~~S_{ji,k} = w \cdot cos(e_{ji}, c_k) + b,\end{align}\)

$w$와 $b$는 학습가능한 파라미터

  • 코사인 유사도가 클 때 유사도도 크길 원하므로 weight이 positive $w > 0$이 되도록 억제
    • $e_{ji}$는 $j$번째 화자의 $i$번째 발화의 임베딩 벡터를 나타냄
    • $[e_{ji}, …, e_{jM}]$는 $j$번째 화자의 모든 발화에 대한 임베딩 벡터들을 나타내며, 이들의 평균을 구해 $c_k$로 정의
    • $S_{ji,k}$는 $j$번째 화자의 $i$번째 발화와 $k$번째 화자의 임베딩 벡터들간의 유사도를 나타내는 매트릭스, 이 유사도는 코사인 유사도에 일정한 가중치와 편향을 곱한 값으로 계산됨
    • 코사인 유사도는 두 벡터간의 방향적 유사성 측정, 즉 두 벡터가 얼마나 같은 방향으로 향하고 있는지 나타냄
    • 유사도 값은 -1부터 1까지의 범위를 가지며, 1에 가까울수록 두 벡터는 매우 유사
    • $w$는 유사도 계산에 사용되는 가중치
    • 이 가중치가 양수인 경우, $w * cos(e_{ji}, c_k)$ 의 값이 코사인 유사도 값과 동일한 부호를 가지게 됨
    • 코사인 유사도가 더 큰 경우, 유사도 값 자체도 더 커지게 됨
    • 더 큰 코사인 유사도가 더 큰 유사도 값으로 반영되도록 하는 것
    • w, b는 유사도를 계산할 때 얼마나 중요하게 고려할지를 결정
    • 두 벡터가 유사한 방향으로 학습됨 ⇒ 화자와 발화가 유사한걸 찾는쪽으로 학습됨
    • 즉, 코사인 유사도가 클 때 유사도도 함께 커지길 바라므로 $w$를 양수로 제한
  • TE2E와 GE2E의 결정적인 차이는 다음과 같음
    • TE2E의 유사도(Equation 2)는 임베딩 벡터 $e_{j\sim}$와 단일 튜플 중심값 $c_k$의 유사도를 정의하는 스칼라값,
    • GE2E는 각 $e_{ji}$와 모든 중심점 $c_k$의 유사도를 계산하는 유사도 매트릭스 (Equation 5) 구성
  • Figure 1은 feature, 각기 다른 색으로 표현된 다양한 화자로부터의 특징, 임베딩 벡터, 유사도 점수와 함께 전체 프로세스 표현
  • training에서, 각 발화의 임베딩이 모든 해당 화자의 임베딩의 중심점과 비슷하도록 하면서, 동시에 다른 화자의 임베딩과는 멀어야 함
  • Figure 1의 유사도 매트릭스에서 본 것과 같이, 색칠된 영역의 유사도값이 큰쪽으로, 회색 영역이 작은 쪽으로 되어야 함스크린샷 2024-01-07 오후 9 22 01

Figure 2. GE2E 손실함수가 임베딩을 실제 화자의 중심점쪽으로 밀어주고, 가장 유사한 다른 화자의 중심점에서는 멀어지도록 함

  • Figure 2는 동일한 개념을 다른 방식으 설명: 파란 임베딩 벡터가 해당 화자의 중심점(파란 삼각형)에 가깝도록하고, 다른 중심점과는 멀도록함(빨강, 보라 삼각형), 특히 가장 가까운 화자(빨간 삼각형)

  • 임베딩 벡터 $e_{ji},$ 모든 중심점 $c_k$, 그에 따른 유사도 매트릭스 $S_{ji,k}$ 가 주어지면 이 개념을 구현하는 두 가지 방법 존재:

    • softmax

      $S_{ji,k}$ $(for~k=1,,…,N)$에 softmax 적용, 이는 $k=j$일 때 출력을 1로, 같지 않을 경우 출력을 0으로 만들어줌

      그래서 각 임베딩 벡터 $e_{ji}$의 손실함수는 다음과 같이 정의될 수 있음

\[\begin{align} L(e_{ji}) = -S_{ji, j} + log\sum_{k=1}^{N}exp(S_{ji,k})\end{align}\]
  • contrast

    contrast 손실함수는 positive 쌍과 가장 공격적인 negative 쌍으로 정의됨: \(\begin{align} L(e_{ji}) = 1-\sigma(S_{ji,k} + \max_{1\leq k\leq N} \sigma(S_{ji,k}),~~~k\neq j \end{align}\)

    $\sigma(x) = 1/(1+e^{-x})$ 는 시그모이드 함수

    모든 발화에 대해, 정확히 두 구성요소가 손실함수에 더해짐

    (1) a positive component, 임베딩 벡터와 실제 화자의 voiceprint(centroid)간의 positive match와 연결됨

    (2) a hard negative component, 임베딩 벡터와 거짓 화자 중 가장 높은 유사성을 가진 voiceprint(centroid)간의 negative match

    Figure 2 에서, positive term은 $e_{ji}$(파란 원)을 $c_j$(파란 삼각형)쪽으로 push하는 것을 뜻함

    negative term은 $e_{ji}$(파란 원)를 $c_k$(빨간 삼각형)로부터 멀리 pulling하는 것을 뜻함, $c_k$는 $c_{k’}$와 비교했을 때 $e_{ji}$와 더 유사하기 때문

    그래서 contrast loss 는 임베딩 벡터와 negative centroid의 어려운 pairs에 집중할 수 있도록 해줌

    실험에서, 두 수행이 GE2E 손실함수에 모두 유용했음: contrast loss는 TD-SV에, softmax loss는 TI-SV에 살짝 더 잘 작동

    추가적으로, true 화자의 centroid를 계산할 때 $e_{ji}$를 제거하는 것은 훈련을 안정적이게 하고 너무 간단한 해(trivial solution)을 피하는 것을 도와줌

    그래서, negative 유사성($k\neq j)$을 계산할 때 _Equation 1_을 계속 사용하지만, $k=j$일 경우 Equation 8 사용


    \((8)~~c_j^{(-i)} = \frac{1}{M-1}\sum_{m=1,m\neq i}^{M}e_{jm}~,\)


    \(\begin{align} (9)~~S_{ji,k} = \begin{cases} w\cdot cos (e_{ji},c_j^{(-i)}) + b ~~~~~if~~k=j;\\w\cdot cos(e_{ji}, c_k)+b~~~~~~~~ otherwise. \end{cases} \end{align}\)

    Equation 4, 6, 7, 9를 합하면, 최종 GE2E loss인 L_G는 유사성 매트릭스($1\leq j \leq N, and 1\leq i\leq M$)의 모든 손실의 합으로 정의됨
    \(\begin{align} (10)~~~L_G(x;w) = L_G(S) = \sum_{j,i}L(e_{ji})\end{align}\)

    ​

    ​

2.2 Comparision between TE2E and GE2E

GE2E 손실함수 업데이트의 단일 배치를 생각해보자: $N$명의 화자, 각 화자의 $M$개의 발화가 있음

  • 각 업데이트 스텝은 모든 $N*M$의 임베딩 벡터를 각각 해당하는 중심점으로 밀어넣고, 다른 중심점에서 멀어지도록

  • 이는 각 $x_{ji}$에 대한 TE2E 손실함수의 가능한 모든 튜플에 발생하는 상황을 반영

  • 화자를 비교할 때 랜덤하게 $j$ 화자에게서 $P$개의 발화를 골랐다고 가정:

    1. Positive tuples: ${x_{ji}, (x_{j,i_1}, …, x_{j,i_P})}$ 이 때 $1\leq i_p \leq M$ 그리고 $p = 1,…,P.$ 여기에는 $M \choose P$개의 positive tuple 존재

    2. Negative tuples: ${x_{ji}, (x_{j,i_1}, …, x_{j,i_P})}$ 이 때 $k\neq j$ 그리고 $1\leq i_p\leq M$ , $p = 1,…,P.$

      모든 각 $x_{ji}$에 대해, 다른 $N-1$ 개의 중심점과 비교해야 함, 각각의 비교는 $M \choose P$ 개의 튜플을 포함함

각 positive 튜플은 negative 튜플과 균형을 이룸, 따라서 전체 숫자는 positive와 negative 최대 튜플의 개수에 *2를 한 값임

  • 따라서 TE2E 손실함수의 튜플의 총 개수는:


    \(\begin{align} (11)~~~2 * max\Big(\begin{pmatrix}M\\P\end{pmatrix}, (N-1) \begin{pmatrix}M\\P\end{pmatrix}\Big)\geq 2(N-1) \end{align}\)

    Equation 11의 하한은 $P = M$일 때 발, 따라서 GE2E 손실함수에서의 $x_{ji}$에 대한 각 업데이트는 TE2E 손실함수에서 최소 $2(N-1)$ 개의 스텝과 같음

    위의 분석은 왜 GE2E가 TE2E보다 모델을 더 효율적으로 업데이트하는지를 보여줌, 이는 경험적인 관찰과 연관

    GE2E는 더 짧은 시간 내 더 나은 모델을 만듦




2.3 Training with MultiReader

다음 케이스를 생각해보자: 작은 Dataset $D_1$을 이용해 모델을 도메인에 적용시키려는 상황

  • 동시에, 유사하면서 보다 큰 Dataset $D_2$가 있는데, 같은 도메임은 아님

  • $D_2D_2D_1$에 잘 동작하는 단일 모델을 훈련시키고 싶음
    \(\begin{align} L(D_1, D_2;w)=E_{x\in D_1}[L(x;w)] + \alpha E_{x\in D_2}[L(x;w)] \end{align}\)

  • 이는 regularization 기술과 비슷: 보통의 regularization에서는 $\alpha\parallel w\parallel ^2_2$를 사용

  • 그러나 여기서는, regularization을 위해 $E_{x\in D_2}[L(x;w)]$ 를 사용

  • $D_1$이 충분한 데이터를 갖고있지 않을 때, $D_1$에서 학습시키는 것은 오버피팅을 야기할 수 있음

  • 네트워크가 $D_2$에서도 잘 작동하도록 하는 것이 network를 regularize하는 데 도움됨

  • 이는 $K$개의 각각의 매우 불균형한 데이터 소스와 결합함으로써 일반화될 수 있음: $D_1, …. D_K$.

    • 각 데이터 소스의 규모나 중요도가 다를 수 있다는 것을 의미
  • 각 데이터 소스에 $\alpha_k$ 를 할당하여 데이터 소스의 중요도를 나타냄

  • 훈련하는 동안, 각 스텝에서 각 데이터 소스로부터의 발화의 하나의 배치/튜플을 가져오고, 통합된 loss 계산:


\[\begin{align} L (D_1,...,D_K) = \sum_{k=1}^{K}\alpha_kE_{x_k\in D_k}[L(x_k;w)]\end{align}\]




3. EXPERIMENTS

실험에서는, feature 추출 프로세스가 6과 같음

  • 오디오 신호를 25ms 폭의 프레임으로 나눔
  • 각 프레임에 대해 10ms만큼 이동하면서 처리를 진행
  • 이후 각 프레임에서 40 차원의 log-mel-filterbank 에너지를 추출 ⇒ 이것이 각 프레임의 feature이 됨

TD-SV application에서는, 같은 특성이 keyword detection과 speaker verification에서 모두 쓰임

  • 이 프레임들은 고정된 길이(보통 800ms) 세그먼트를 형성
  • TI-SV에서는, Voice Activity Detection(VAD) 이후 주로 랜덤한 고정 길이 세그먼트를 추출, 추론을 위해 슬라이딩 윈도우를 사용 (섹션 $3.2$)

프로덕션 시스템은 3 레이어 LSTM을 사용

  • 임베딩 벡터(d-vector) 사이즈는 LSTM projection 사이즈와 같음
  • TD-SV에서는 128개의 히든 노드를 사용, 프로젝션 사이즈는 64
  • TI-SV에서는 768개의 히든 노드 사용, 프로젝션 사이즈는 256
  • GE2E 모델을 훈련할 때, 각 배치는 $N$=64명의 화자와 각 화자마다 $M$=10개의 발화가 담겨있음
  • SGD 사용, 초기 learning rate 0.01, 그리고 30M 스텝마다 반으로 줄임
  • 경사도의 L2-norm을 3으로 제한
    • L2-norm = 벡터의 길이, 이 값이 3보다 크다면 그레디언트의 방향을 유지한 채로 크기를 3으로 줄임, 이렇게 함으로써 그래디언트가 너무 커지는 것을 방지하며 수렴을 안정화시킴
    • 학습과정에서 그래디언트 폭주(gradient explosion)을 방지하는데 사용됨
  • LSTM의 프로젝션 노드에 대한 그래디언트 스케일은 0.5로 설정
  • loss 함수의 스케일링 요소 $(w,b)$에 관해, 좋은 초기값은 $(w,b) = (10,-5)$라는 것을 관찰, 그리고 이 값들에 대한 그래디언트 스케일을 0.01으로 낮추는 것이 수렴을 부드럽게 하도록 도와줌

3.1 Text-Dependent Speaker Verification

존재하는 voice assistant는 보통 단일 키워드만 지원함에도 불구하고, 연구는 유저들이 다양한 키워드를 지원하는 것을 선호한다고 보여줌

구글 홈을 멀티 유저가 사용하는 경우, 두 개의 키워드가 동시에 지원됨: “OK Google”과 “Hey Google”

멀티 키워드에 대한 speaker verification 활성화는 TD-SV와 TI-SV의 사이에 위치, 왜냐하면 대본이 단일 구절로 제한되지도 않지만 완전히 자유로운것도 아니기 때문, 즉 특정 구절에만 국한되지 않고 자유롭게 다양한 문장을 사용할 수 있다는 것을 의미

  • TD-SV는 텍스트가 미리 정해진 발화로 제한되어 있는 화자 확인 방법이고, TI-SV는 발화의 내용에 제한이 없어 발음과 발화 지속시간에 더 큰 변동성 존재
  • 이에 비해 멀티 키워드에서의 화자 확인은 TD-SV 보다는 자유로우나 TI-SV 보다는 제한이 있는 중간 정도로 볼 수 있음

이러한 문제점을 MultiReader technique으로 해결 (섹션 $2.3$)

MultiReader는 유사 접근 방식과 비교할 때 강력한 장점을 가짐(ex. 여러 데이터 원본을 직접 섞는 것)

이 방법은 다양한 데이터 원본의 크기가 불균형할 때도 처리 가능, 즉 MultiReader는 다양한 데이터 원본의 크기가 다를 때에도 효과적으로 작동할 수 있는 기능을 가짐

  • 이 케이스에서는, 훈련할 데이터셋이 두개:
  1. “OK Google”이라는 익명의 사용자 쿼리에서 추출된 약 1억 5천만개의 발화와 63만명의 화자로 구성된 훈련 세트
  2. 수동으로 수집된 약 120만개의 발화와 약 1만 8천명의 화자로 구성된 “OK/Hey Google” 훈련 세트

첫 번째 데이터 세트는 두 번째 데이터 세트보다 발화 수에서 약 125배, 화자 수에서 약 35배 더 큼

평가를 위해, 2가지 키워드를 등록하고 두 가지 중 하나의 키워드로 검증하는 4가지 사례에서의 Equal Error Rate(EER) 보고

  • 모든 평가 데이터셋은 665명의 화자로부터 수동으로 수집되며, 평균 4.5개의 등록 발화와 10개의 평가 발화로 이루어짐

    스크린샷 2024-01-07 오후 9 30 51

  • 결과는 Table 1에 있음

  • MultiReader은 모든 4가지의 경우에 대해 상대적으로 약 30%의 향상을 이끌어냄

  • 또한 약 83K 명의 각기 다른 화자와 환경 조건에서 수집된 더 큰 데이터셋으로 보다 포괄적인 평가 또한 진행

  • 화자마다 평균 7.3개의 등록발화와 5개의 평가발화

  • Table 2는 실험에서 사용된 다양한 손실함수에 대한 평균 EER을 MultiReader 설정을 사용하거나 사용하지 않고 훈련한 결과를 정리한 것

  • 기준 모델은 512개 노드를 가진 단일 레이어의 LSTM이며 임베딩 벡터 크기는 128

  • 둘째 셋째줄의 모델 아키텍처는 3 레이어 LSTM

  • 두번째 줄과 세번째줄을 비교해보면, GE2E가 TE2E보다 약 10% 성능이 더 좋은 것을 확인 가능

  • Table 1과 유사하게, MultiReader을 사용했을 때 모델이 눈에 띄게 나은 성능을 보이는 것을 알 수 있음

  • 표에는 나타나지 않았지만, 언급할 가치가 있는것은 GE2E의 훈련 시간은 TE2E보다 약 60% 덜 걸림




3.2 Text-Independent Speaker Verification

Ti-SV 훈련에서는, 훈련 발화를 작은 세그먼트로 나누고, partial utterance(부분 발화)로 지칭함

  • 모든 부분 발화가 동일한 길이를 갖는 것을 필요로하진 않지만, 같은 배치에 있는 부분 발화는 동일한 길이여야 함
  • 그래서 데이터의 각 배치마다, time length $t$를 $[lb, ub]=[140,180]$ 프레임에서 무작위로 정하고, 해당 배치의 모든 발화들이 같은 길이 $t$를 가지도록 함 (_Figure 3_에서와 같이)
    • 각 길이 $t$는 140에서 180 프레임

스크린샷 2024-01-07 오후 9 31 57

  • 추론 동안, 매 발화마다 고정된 길이 $(lb+ub)/2 = 160$ 프레임의 슬라이딩 윈도우 적용, 50% 겹침 (50%씩 겹쳐서 이동)

  • 각 윈도우마다 d-vector 계산

  • 최종 발화 단위의 d-vector는 각 윈도우별로 얻은 d-vector을 L2 normalizing 함으로써 일반화됨 (Figure 4) ⇒ 벡터의 크기를 1로 만들어줌

  • 정규화된 d-vector들은 원소별로 평균냄

    • 최종 발화단위의 d-vector: 화자를 나타내는 특정한 음성 신호를 벡터로 표현한 것, 해당 화자의 음성 특성을 나타냄
    • d-vector는 speaker embedding vector로, 화자의 음성을 고유하게 나타내는 벡터
    • 이 모델에서는 여러 프레임의 d-vector를 결합하여 최종 화자의 특징을 나타내는 단일 벡터를 만들게 됨, 이러한 벡터는 L2 정규화를 거쳐 화자의 음성 정보를 나타냄
  • TI-SV 모델들은 18K의 화자들로부터의 약 36M개의 발화로 훈련됨, 익명화된 로그에서 추출됨 (개인정보가 보호되고 익명화된 상태에서 사용됨)

  • 평가를 위해, 한 화자당 평균 6.3개의 등록 발화 7.2개의 평가 발화를 가진 1000명의 화자를 추가적으로 사용

  • _Table 3_에서 서로 다른 loss 함수에 대한 성능 비교를 보여줌

    스크린샷 2024-01-07 오후 9 33 09




4. Conclusions

  • 해당 논문에서, Speaker verification 모델을 더 효율적으로 학습시킬 수 있는 GE2E 손실 함수를 제안
  • 이론적 그리고 실험적 결과 둘 다 이러한 손실 함수의 장점을 입증함
  • 또한 서로 다른 데이터 소스를 결합하기 위한 MultiReader 기술을 도입, 이는 모델이 멀티 키워드와 멀티 언어를 지원할 수 있도록 해줌
  • 이러한 두 기술을 결합함으로써, 더욱 정확한 speaker verification 모델을 만들 수 있음

즉, 각 발성-발성의 거리를 조정하던 기존의 triplet loss를 개선

각 화자의 centroid-발성의 거리를 조정, 동시에 다수의 화자를 고려하도록 개선

​

​

​