Gorio Tech Blog search

Graph Diffusion Convolution (GDC) 설명

|

본 글에서는 GDC: Graph Diffusion Convolution의 핵심적인 내용에 대해서 정리해 볼 것이다. 논문 원본을 직접 읽어보는 것을 권하며, 논문의 저자가 작성한 노트북 파일도 참고하면 도움이 된다.

torch_geomectric을 이용하여 GDC를 사용하는 방법에 대해서 간단하게 Github에 올려두었으니 참고해도 좋을 것이다.


Diffusion Improves Graph Learning 설명

1. Background

GNN을 구성하는 데에는 다양한 요소가 존재하지만, Graph Convolution은 가장 핵심적인 부분이라고 할 수 있다. 다양한 형태의 Graph Convolution이 존재하지만 대부분의 경우 직접적인 1-hop 이웃 사이의 관계에서 message가 전달되곤 한다.

본 논문에서는 이러한 제한점을 없애고 spatially localized한 Graph Convolution을 제안하고 있다. GDC는 1-hop 이웃에서만 정보를 모으는 것이 아니라, Diffusion: 확산을 통해 더욱 큰 이웃 집합에서 정보를 통합한다.

GDC는 Graph의 특징을 효과적으로 포착하고 이를 더욱 잘 구조화할 수 있게 Graph를 재정의하는 연산자로 생각하면 된다. 또한 GDC는 특정 GNN에 종속되지 않고 설계 방식에 따라 Graph 기반의 다양한 모델에 적용될 수 있다는 장점을 가진다.


2. Personalized Page Rank

갑자기 왜 주제가 바뀌었는지 의문이 들수도 있지만, PPRGDC의 연산 방식을 이해하기 위해서는 반드시 알아야 하는 요소이다.

이후에 설명하겠지만 GDC에는 기존 Graph 내에서 Diffusion을 통해 더욱 넓은 이웃 집합을 형성하고 정보를 통합하는 과정이 있는데, 이 때 가중치 계수로 $\theta_k$ 가 등장하고 이 가중치 계수의 메인 옵션 중 하나가 바로 PPR이다. 본 글에서의 설명은 이 PPR 계수를 중심으로 진행한다. (다른 옵션으로는 Heat Kernel이 있다.)

PageRank 논문 원본은 이 곳에서 확인할 수 있고 이에 대한 좋은 설명을 담은 블로그 글은 이 곳에서 볼 수 있다. 혹은 CS224W 4강에서 자세한 설명을 들어도 좋다.

Graph에서 Node의 중요도를 계산하는 방법에는 여러 가지가 있지만, PPR에서는 이를 다음과 같이 정의한다.

특정 Node $j$ 가 있다고 할 때 이 Node $j$ 를 향하는 Node 들의 중요도의 합이 바로 이 Node $j$ 의 중요도가 된다. 이 때 Node $i$ 에서 밖으로 뻗어 나가는 연결이 3개 존재하고, 이 중 1개가 Node $j$로 향했다고 하면, Node $i$ 가 Node $j$에 기여하는 바는 바로 $\frac{r_i}{3}$ 가 되며 이 때 $r_i$ 는 Node $i$ 의 중요도를 의미한다.

위 설명을 CS224W 강의자료로 확인하면 아래와 같다.

위 설명을 실제로 적용하기 위해서는 아래와 같은 Power Iteration Method를 적용하면 된다.

먼저 초기 중요도 벡터 $\mathbf{r}$ 을 정의한다.

[\mathbf{r}^0 = [1/N, 1/N, …]^T]

다음 식을 반복한다.

[\mathbf{r}^{(t+1)} = \mathbf{M} \mathbf{r}^t]

그리고 위 식이 아래와 같은 조건을 만족할 때 멈춘다.

[\vert \mathbf{r}^{(t+1)} - \mathbf{r}^t \vert_{1} \le \epsilon]

그런데 이 때 만약 특정 node가 Outbound Link를 가지게 않을 경우 더 이상 업데이트되지 못하고 갇히는 현상이 발생하는데, 이를 위해 일정 확률로 Random 하게 다른 node로 teleport하도록 설정하면 이 문제를 해결할 수 있다.

최종적으로 PageRank 식은 아래와 같이 정의할 수 있다. 아래 식은 node j로 향한 Importance Estimate의 합이 곧 이 node j의 새로운 Importance Estimate임을 의미한다.

[r_j = \Sigma_{i \rightarrow j} \beta \frac{r_i}{d_i} + (1-\beta) \frac{1}{N}]

위 식의 경우 $\beta$ 의 확률로 link를 따라가고, $1-\beta$ 의 확률로 teleport해야 함을 뜻한다.

위 식을 벡터/행렬화 하면 아래와 같다.

[\mathbf{r} = \beta M \mathbf{r} + (1-\beta) [\frac{1}{N}]_{N * N}]

여기에서 특정 node를 중심으로 PageRank를 구한 것이 바로 PPR이며 아래와 같이 표현한다.

[\mathbf{r} = \beta M \mathbf{r} + (1-\beta) \mathbf{a}]

[\mathbf{a} = [0, 0, …, 1, 0, …, 0]^T]

자 이제 위 식을 GDC 논문에 있는 식에서 사용한 기호로 바꾸기 위해 $1-\beta$ 를 $\alpha$ 로, $M$ 을 $T$로 변환한다.

[\mathbf{r} = \alpha \mathbf{a} + (1-\alpha) \mathbf{r} \mathbf{T}]

위 점화식은 아래와 같이 다시 표현할 수 있다.

[\mathbf{r} = \Sigma_{k=0}^{\infty} \alpha (1-\alpha)^k \mathbf{T}^k]

[k=0, \mathbf{r} = \alpha \mathbf{a}]

[k=1, \mathbf{r} = \alpha \mathbf{a} + (1-\alpha) \mathbf{r} \mathbf{T}]

[k=2, \mathbf{r} = \alpha \mathbf{a} + (1-\alpha) \alpha \mathbf{a} \mathbf{T} + (1-\alpha)^2 \alpha \mathbf{a} \mathbf{T}^2]

그리고 이제 우리는 드디어 PPR 가중치 계수를 얻을 수 있다.

[\theta_k^{PPR} = \alpha (1-\alpha)^k]

참고로 계산을 위해 위 식을 기하 급수를 이용하여 재표현하면 아래와 같다.

[r_j = \frac{\alpha} {1- (1-\alpha) r_j}]


3. GDC 수행 과정

지난 Chapter에서 PPR 계수를 구하는 방법에 대해 알았으니 이제는 GDC를 연산하는 과정에 대해 설명할 것이다.

GDC는 아래와 같이 크게 4가지의 과정을 거쳐 수행된다.

1) Transition Matrix $\mathbf{T}$ 를 계산한다. (symmetric 버전)

[\mathbf{T} = \mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}}]

2) 아래 식을 통해 $\mathbf{S}$를 얻는다.

[\mathbf{S} = \Sigma_{k=0}^{\infty} \theta_{k} \mathbf{T}^k]

3) 특정 임계 값을 넘지 못하는 작은 값들은 0으로 만듦으로써 위 결과물을 sparsify한다.
(Top-K 방식을 채택할 수도 있다.)

[\tilde{\mathbf{S}} = spar(\mathbf{S})]

4) 최종적으로 Transition Matrix $\mathbf{T}_{\tilde{\mathbf{S}}}$ 를 계산한다.

[\mathbf{T}{\tilde{\mathbf{S}}} = \mathbf{D}^{-\frac{1}{2}}{\tilde{\mathbf{S}}} \tilde{\mathbf{S}} \mathbf{D}^{-\frac{1}{2}}_{\tilde{\mathbf{S}}}]

정리하자면, 2까지의 과정을 통해 Diffusion을 수행해서 좀 더 넓은 범위를 커버하게 만드는 것이고, 여기서 마치면 새로 계산된 $\mathbf{S}$ 는 Dense Matrix이기 때문에 희소화과정을 통해 중요도가 낮다고 판단되는 값들을 모두 0으로 masking해주는 작업을 3에서 수행한다는 뜻이다.

위 과정 외에도 수식의 완결성을 위한 장치가 여럿 있는데 이는 논문 원본을 참조하길 바란다.

지금까지의 과정을 그림으로 나타내면 아래와 같다.


4. 결론

GDC는 spetral한 방법론의 장점을 취하면서도 단점은 취하지 않는다는 특징을 지닌다. GDC가 기초로하는 가정은 homophily(동질성, 연결된 node는 비슷한 성질을 지님)가 만족한다 인데, 이 가정이 통하지 않는 데이터셋에는 경우에 따라 효과적이지 못할 수 있다.

적은 수의 Hyper-parameter를 갖고 있고 응용 범위가 넓기 때문에 다양한 데이터셋과 환경에서 실험 요소로 적극 활용할 수 있을 것으로 보인다.

글 서두의 링크에서도 언급하였듯이 torch_geometric을 통해 적용 방법을 찾는 것이 효율적일 것이다.


References

1) 논문 원본
2) 논문 저자의 깃헙 주소 3) Stanford University CS224W Lecture

Comment  Read more

Hyperlocal SNS의 대표 주자, nextdoor

|

본 글에서는 2021년 연말 SPAC 상장이 예상되는 nextdoor에 대해 소개하고, 비즈니스 모델에 대해 분석한 뒤 향후 전망에 대한 의견을 담아 볼 것이다. 2021년 8월에 작성되었으며, 시간이 지남에 따라 기술된 내용에는 변화가 발생할 수 밖에 없으므로 참고용으로만 활용하길 바란다.

1. nextdoor 소개

한국인에게 중고 거래, 지역 커뮤니티하면 당근마켓이 제일 먼저 떠오를 것이다. 그 외에 번개장터중고나라 또한 예시로 들 수 있지만, 아마 정말로 Hyperlocal 혹은 동네 생활권 커뮤니티를 지향하는 회사는 당근마켓이 아닐까 생각해 본다.

2008년에 설립되어 2011년부터 본격적으로 서비스를 시작한 지역 밀착형 SNS, 혹은 Hyperlocal 커뮤니티를 형성하는 플랫폼 기업으로 기반을 다지고 있는 nextdoor는 2020년 Covid19 발생 이후 사람 간의 만남을 기반으로 하는 비즈니스 모델을 갖고 있음에도 불구하고 괄목할만한 성장을 이루어 냈다.

이러한 성장 스토리에는 굉장히 많은 요인이 개입되어 있겠지만, 간단히 nextdoor의 이용자들의 행동 양태를 생각해보면 이렇다. Covid19으로 인해 먼거리를 이동하거나 자유롭게 다양한 지역을 돌아다니는 움직임은 크게 줄었다. 그런데 사실 아무리 온라인 쇼핑이 편하고, 배달에 익숙해졌다 하더라도 어쩔 수 없이 다른 사람과의 만남을 이어가야만 살아갈 수 있는 존재이다. 이러한 맥락에서 비록 Covid19로 인해 행동 반경은 좁아졌지만 그 좁아진 생활권 속에서 nextdoor의 사업 모델이 빛을 발했다고 볼 수 있다.

nextdoor의 사용자는 약 6000만명 수준이라고 한다. (미국을 포함하여 12개 국에서 서비스되고 있다.) 더 놀라운 것은 2700만명 정도가 매주 접속을 한다는 것인데, 그만큼 진성 사용자의 수가 많다는 것이고, 이는 곧 이 사용자들을 대상으로 하는 비즈니스는 더욱 효율이 좋을 가능성이 높다는 뜻을 의미한다.

다음 Chapter에서는 nextdoor의 비즈니스 모델에 대해 알아본다.


2. Business Model

2.1. nextdoor가 제공하는 서비스

nextdoor에는 27만여 개에 달하는 커뮤니티가 있다고 한다. nextdoor는 지역 사회를 구성하고 있는 여러 구성원들 사이의 연결을 돕고, 그들이 어떤 커뮤니티를 형성하는 것을 지원하며 이러한 네트워크 속에서 사업 기회를 찾는 기업들로부터 광고비를 비롯한 수수료를 수취하는 사업 모델을 갖고 있다.

nextdoor 홈페이지를 보면, nextdoor가 어떻게 돈을 벌고 있는지에 대한 간략한 설명이 나온다.

3번의 경우 중고 거래로 이해할 수 있을 것이다. 아무래도 1번에 해당하는 광고 수입이 매출의 주 원천이 될 것인데, nextdoor의 커뮤니티가 더욱 단단해지고 사용자가 증가함에 따라 수수료의 규모도 굉장히 커질 것으로 기대된다.

그렇다면 nextdoor의 이용자는 어떻게 가입을 하고 어떤 혜택을 누릴 수 있을까? nextdoor는 지역 기반 서비스이기 때문에, 사용자가 속한 지역에 대한 정보가 매우 중요하다. 집을 임대/소유하고 있거나 집을 지을 계획을 갖고 있거나 rental property를 갖고 있을 경우 특정 이웃 집단에 소속될 수 있다. 이에 대한 검증 역시 이루어지며, 사용자는 실명을 통해 가입해야 한다.

가입 후 아래와 같은 혜택을 누릴 수 있다.

  • 여러 지역 활동에 대한 커뮤니티의 추천을 받을 수 있다. (예: 식당, 공원 등)
  • 지역 뉴스에 대한 업데이트를 받을 수 있다.
  • 범죄 경보를 받을 수 있다.
  • 여러 중고 물품을 구매/판매할 수 있다.
  • 서비스를 사고 팔 수 있다. (예: 베이비시터, 반려견 산책 등)

혹자는 위 서비스가 무엇이 그리 대단하냐고 생각할 수도 있다. 맛집은 구글이나 네이버 같은 곳에서 검색하면 되고, 뉴스는 TV나 Youtube, 포털 사이트 등을 보면 되는 것 아니냐고. 물론 그럴수도 있다. 그런데 nextdoor가 만든 서비스는 색깔이 좀 다르다.

일단 일반적인 검색을 통해 찾는 정보보다 훨씬 자세하며, 업데이트 속도도 빠르다. 그럴 수 밖에 없다. 길 건너편에 있는 한 작은 주택 근처에서 발생한 일은 기자도, 정치인도, 구글 직원도 아닌 그 근처에 살고 있는 사람이 제일 먼저 알아낼 확률이 더 높다. 그리고 주변에 사는 사람들이 아니라면 이러한 작은 일에 큰 관심을 갖기 어렵다. 실제로 nextdoor를 이용하는 사용자들이 자연 재해나, 질병 등과 관련한 정보를 주고 받아 지역 사회가 힘을 합쳐 위기를 극복해 난 사례는 여러 언론을 통해 보도된 바 있다.

넥스트도어의 지역 중점 기능이 빛을 발한 것은
지난 2월 텍사스주에 한파가 닥치면서 대략 430만 가구가 정전사태에 빠졌던 때였다.

넥스트도어를 기반으로 한 네트워크로 동네 주민들은 물이나 난방기구 등 생필품을 나눌 방안을 모색했다.
넥스트도어의 발표에 의하면, 한파 기간 동안 텍사스 지역의 게시물 수는 전 주보다 471% 증가했으며,
도움을 요청하거나 도움을 준 대화는 무려 400%가량 증가했다.
전력, 물, 장작, 수도관, 난방과 같이 재난 상황에서 필요한 키워드 검색량도 140% 늘어났다.

이러한 선행 사례를 통해서 지역 주민끼리 서로 돕고자 하는 마음을 확인한 넥스트 도어는
지난 5월 ‘헬프맵’이라는 서비스를 시작했다.
헬프맵은 이웃에게 도움을 줄 수 있는 내용을 기재해두면
해당 도움이 필요한 이웃이 연락을 취하는 방식으로 진행되고 있다.

출처 : 한국연예스포츠신문(http://www.koreaes.com)

물론 사용자가 증가함에 따라 정치 성향을 담은 게시글, 인종 차별 등 혐오를 담은 게시물 등이 늘어나고 이에 따른 부작용 또한 증가하고 있다. 실제로 사용자들 중 이에 대한 불쾌감을 표시하는 이들이 증가하고 있다고 한다.

필자는 사실 이러한 부분은 Social Network에 기반한 사업이라면 필연적으로 겪을 수 밖에 없다고 생각한다. Facebook이나 Twitter 등에 가짜 뉴스가 난무하고 개인 정보 유출이 발생하며, 타인을 배려하지 않는 공격적인 게시물로 인해 사회적 혼란이 발생하는 등의 문제는 이미 전 세계인들에게 있어 일상이 되었다. 물론 일상이 되었다고 해서 이에 대해 무감각해지고 대처를 소홀히 한다면 nextdoor의 미래가 밝다고 이야기할 수 없을 것이다. 다만 이와 같은 논란이 발생하는 것 자체가 문제라기 보다는 nextdoor가 이러한 문제를 어떻게 현명하게 해결해 나갈지 지속적으로 추적하는 것이 중요하다고 판단된다.

SNS의 대명사 Facebook이 Neighborhood라는 서비스를 시범적으로 출시한 것은 nextdoor에게 악재라고 볼 수 있다. CEO Sarah Friar는 언론 인터뷰에서 빅테크 기업의 지역 커뮤니티 사업으로의 진출은 크게 개의치 않는다고 했는데, 왜냐하면 신뢰할 수 있는 플랫폼을 만드는 것은 굉장히 오랫동안 공들여야 하는 작업이기 때문이다.

Facebook이 Neighborhood라는 서비스를 메인 앱과 다소 분리시킨 의도도 생각해 보아야 한다. 최근에는 논란이 가라앉긴 했지만 개인정보 유출과 관련하여 크게 곤혹을 치른 기업이 Facebook이다. 만약 내가 거주하는 지역 근처의 사람들에게 내가 알리고 싶지 않은 수많은 정보를 노출하게 된다면? Facebook이 하이퍼로컬 사업에서 성공하기 위해서는 개인정보 노출과 관련된 문제에서 자유로워야 하고, 이 때문에 별개의 앱으로 출시하진 않았지만 기존 프로필 외에 새로운 프로필을 만들게 함으로써 접근하고 있다.

정리하자면 전 세계에서 수많은 사용자를 보유하고 있는 기업이다 하더라도 지역 사회의 신뢰를 얻고, 그 구성원들이 믿고 편리하게 사용할 수 있는 기반을 만들어주는 일은 결코 쉽지 않다는 것이다.

2.2. 사용자 수, 사용 시간, ARPU 그리고 경영진

nextdoor의 사용자와 Penetration 비율은 지속적으로 증가하고 있다. 미국에서는 이미 10년 간 서비스를 개시했고, 그 과정에서 꽤 많은 진성 사용자들을 보유하게 되었다.

위 표를 보면 nextdoor의 미래에 대해 추론해 볼 수 있을 것이다. 먼저 2021년 1분기 6000만명을 기록했던 사용자 수가 얼마나 더 늘어날 것인가를 확인해야 할 것이다. 미국 인구는 정해져 있으므로 어느 순간부터는 성장률이 둔화될 수 밖에 없겠지만, 아직까지는 성장 여력이 충분하다. 미국에서 성장률이 둔화된다면 미국 외부에서의 영역 확장 속도를 높이는 것이 사용자 수 증가에 있어 관건이 될 것이다.

사용자 수가 늘어난다 하더라도 그 사용자를 통해 이익을 내지 못하면 허울 뿐인 사업 모델이 될 것이다. 이를 위해 반드시 살펴봐야 할 지표는 WAUARPU이다. 많은 애플리케이션에서 제 1지표로 내세우는 MAU가 아닌 주간 지표를 핵심 지표로 세운 것은 아마 nextdoor 플랫폼의 경우 사람들의 일상 생활과 얼마나 밀접한 연관이 있는지 확인하는 것이 매우 중요하다는 점에 기인할 것이다.

WAU는 전체 사용자의 45%이고, ARPU는 2021년 1분기 기준 5$가 되었다.

위 표를 보면 nextdoor가 내년까지 ARPU를 약 30% 상승시키겠다는 목표를 수립한 것을 알 수 있다. 이는 단지 참고의 대상일 뿐이나, 최근 몇 년간 꾸준한 상승을 기록했다는 점과 규모의 경제를 달성했을 때의 이점을 생각해보면 충분히 가능한 수치로 생각해볼 수 있다.

사용자 간의 거래를 더욱 활성화시키고, 광고 수입을 늘리는 것이 주 수입원이기 때문에 경기에 일정 부분 영향을 받을 수 밖에 없다는 것 역시 고려해야 할 것이다. 하지만 무엇보다도 가장 중요한 것은 지역 사업자들 입장에서 nextdoor가 매력적인 홍보 플랫폼으로 다가와야 할 것이다.

nextdoor는 더욱 매력적인 플랫폼이 될 수 있을까?

이런 경우 경영진의 면모에 대해 검토해보면 꽤 합리적인 힌트를 얻을 수 있다. CEO Sarah Friar는 전자 결제 업체 수준에 머물던 Square에서 CFO로 근무하면서 Square를 최고의 핀테크 플랫폼 기업으로 성장시키며 IPO를 주도했던 인물이다. 이제 막 상장하면서 새로운 도약을 꿈꾸고 있는 nextdoor에게 상당히 적합한 인물이 아닐까 생각해 본다.


3. Valuation 및 투자 전략

3.1. Financial Details

고속 성장주의 재무 상황과 앞으로의 매출액, 이익 규모를 산정하는 일은 정말 어려운 일이다. 평범한 개인 투자자가 할 수 있는 일은 아마 기업의 가이던스를 보고 전망치의 온도를 달리하며 자신이 감당할 수 있는 수준을 파악하는 일이 될 것이다.

최근 nextdoor가 보여준 성과는 꽤 고무적이다. 매년 40%가 넘는 매출액 성장을 이룩하고 있으며, ARPU 역시 꾸준히 증가하고 있다. 외형 확장의 시기이기 때문에 영업/마케팅 비용이 상당할 것으로 추축되는데, 현재의 방향성을 고려해보면 규모의 경제를 달성하여 흑자 전환을 얼마나 빨리 이뤄낼 수 있느냐가 관건이 될 것으로 보인다.

플랫폼 기업 중에서도 상당히 높은 Valuation을 받고 있는 Snap이나 Pinterest, Twitter 등과 유사한 수준의 프리미엄을 받고 있다는 측면에서 nextdoor의 현재 시가 총액은 저평가라고 말하기 어렵다.

따라서 현재 시점에서의 투자는 단기간의 매출액이나 이익 규모를 보고 결정하기 보다는, 기업의 장기 시계열적 관점에서 바라보아야 할 것으로 보인다.

3.2. Investment Strategy

2021년 8월 기준으로 nextdoor의 주가는 10$ 수준이다. 이는 사실 공모가와 다를 것이 없으며 SPAC 투자자나 PIPE 투자자들의 평균 매수 단가도 이와 같은 수준일 것이다.

4분기가 되어서야 합병에 대한 구체적인 소식이 들려올 것으로 보이기 때문에 2021년 하반기를 여유있게 지켜보면서 접근하는 것이 현명할 것으로 판단한다.

Comment  Read more

WSL2 Ubuntu 환경에서 Kubeflow 설치하기

|

본 글은 Windows10 운영체제를 메인으로 사용하는 필자가 WSL2를 활용하여 Kubeflow를 설치하는 과정을 기록한 것이다.

1. WSL2 및 Ubuntu 설치

Kubeflow를 설치하기 위해서는 Kubeflow 전용 커맨드 라인 툴인 kfctl 설치가 필요한데, 안타깝게도 본 도구의 경우 Windows 환경은 지원하지 않는다. 따라서 Linux용 Windows 하위 시스템인 WSL2 설치가 필요하다. Microsoft 홈페이지에 친절한 WSL 설치 글이 존재하기에 이 과정을 수행하면 된다. 필자의 경우 Windows 참가자 프로그램에 가입하고 단순화된 설치 과정을 수행하였다.

Ubuntu 18.04 LTS 를 설치하면 아래와 같은 터미널을 확인할 수 있다.

설치한 Ubuntu에 WSL Version2가 적용되도록 해주자.

기본 설정이 Ubuntu가 되도록 바꿔주어야 한다. 이 페이지를 참고하면 된다.


2. Docker Desktop 및 Minikube 설치

먼저 Docker 다운로드 페이지에서 Docker Desktop을 설치해주자. 다만 Docker Desktop에서 Kubernetes를 직접 실행하지는 않을 것이다.

Setting-General에서 Use the WSL 2 based engine (Windows Home can only run the WSL 2 backend)가 체크되어 있는지 확인하자. 이 항목에 체크를 해야 앞서 설치한 WSL2를 사용하게 된다.

이제 Minikube를 설치할 차례이다. 이전 글에서는 Windows 환경에서 바로 설치하는 방법에 대해 기술하였는데, 본 글에서는 (사실상 동일한 과정이나) Ubuntu에서 설치하는 과정에 대해 설명할 것이다.

일단 업데이트부터 하자.

sudo apt-get update -y  

본인의 컴퓨터 환경에 맞게 아래 커맨드를 입력해주면 된다.

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64  
sudo install minikube-linux-amd64 /usr/local/bin/minikube  
minikube version  

이제 설치는 완료되었다. Minikube를 구동해보자.

minikube start --cpus 4 --memory 8096 --kubernetes-version=v1.21.2  

기본 설정은 cpus 2, memory 8096이다. 이 역시 본인의 환경에 맞게 설정하면 된다.


3. kfctl 설치 및 배포 템플릿 설정

kfctl은 Kubeflow 컴포넌트를 배포/관리하기 위한 커맨드라인 도구이다. 이 도구를 먼저 설치해야만 Kubeflow 설치를 진행할 수 있다. kfctl 릴리즈 정보를 참고하여 진행해보자.

wget https://github.com/kubeflow/kfctl/releases/download/v1.2.0/kfctl_v1.2.0-0-gbc038f9_darwin.tar.gz  
tar -xvf kfctl_v1.2.0-0-gbc038f9_darwin.tar.gz  

압축을 풀어주면 kfctl이 생성된 것을 확인할 수 있다. 이제 Kubeflow 배포 스크립트가 설치될 디렉토리와 배포 템플릿을 설정할 차례이다.

export PATH=$PATH:$(pwd)  
export KF_NAME='yy-kubeflow'  
export BASE_DIR=/Users/Youyoung/kubeflow  
export KF_DIR=${BASE_DIR}/${KF_NAME}  
export CONFIG_FILE=${KF_DIR}/kfctl_k8s_istio.v1.2.0.yaml  
export CONFIG_URL="https://raw.githubusercontent.com/kubeflow/manifests/master/distributions/kfdef/kfctl_k8s_istio.v1.2.0.yaml"  

sudo mkdir -p ${KF_DIR}  
cd ${KF_DIR}  

물론 위에서 yy-kubeflow, Youyoung 등은 본인이 원하는 이름으로 바꿔서 설정해야 한다.


4. Kubeflow 설치

이제 Kubeflow 설치를 수행해보자.

sudo kfctl build -V -f ${CONFIG_URL}  
sudo kfctl apply -V -f ${CONFIG_FILE}  

만약 아래와 같은 에러 메시지를 마주했다면, 필요한 컴포넌트들이 다 준비되지 않았다는 뜻이므로 기다리면 된다.

WARN[] Encountered error applying application cert-manager: (kubeflow.error)

1번째 Reference인 책에 따르면, 모든 컴포넌트가 업로드 되기까지 10분 정도 걸릴 수 있다고 한다. 경험 상 상황에 따라 20~30분까지 걸리기도 한다. 실제로 그 이전에 들어가보면 몇몇 Pod에서 Error 메시지가 나타나는 것을 볼 수 있는데, 시간이 좀 지나면 정상적인 Running 상태로 바뀐다. Ctrl+C를 눌러서 터미널로 돌아간다.


5. Kubeflow 접속

5.1. Kubeflow Dashboard

대시보드는 istio-system의 istio-ingressgateway 서비스를 통해 접속 가능하다.

kubectl get services -n istio-system  

확인해보면 istio-ingressgateway 서비스는 31380 NodPort로 80포트에 매핑되어 있다. 먼저 Port를 열어주자.

export NAMESPACE=istio-system  
kubectl port-forward -n istio-system svc/istio-ingressgateway 8080:80  

이제 주소 창에 http://127.0.0.1:8080을 입력해주면 드디어 Kubeflow Dashboard에 접속할 수 있다.

다음 화면에서 본인이 원하는 Namespace를 지정해주고 접속하면 된다.

5.2. Minikube 중지

minikube stop  

컴퓨터를 종료하면 자동으로 중지되긴 하지만 평소에 정상적으로 종료하는 것이 좋다. 완전히 삭제하고 싶으면 minikube delete을 입력하면 된다.

5.3. WSL2 리소스 제한

WSL2을 처음 설치해서 사용하면, 이 프로그램이 컴퓨터의 모든 가용 메모리를 잡아 먹는 것을 확인할 수 있다. WSL 이슈 링크에서 그 해결책을 찾았다.

본인의 사용자 폴더 디렉토리로 접속한 후 다음과 같이 파일을 생성하자.

물론 위 6GB는 예시이고, 원하는 만큼 해주면 된다. (필자는 12GB를 선택함)

파일 생성 후 재시작하면 위와 같이 정상적으로 메모리를 사용하는 것을 알 수 있다. (이전에는 24GB에서 96%를 사용함)


References

  1. 쿠버네티스에서 머신러닝이 처음이라면! 쿠브플로우!, 이명환 저
  2. 블로그
  3. 블로그
  4. 블로그
Comment  Read more

VATT 논문 설명(VATT - Transformers for Multimodal Self-Supervised Learning from Raw Video, Audio and Text)

|

이 글에서는 2021년 4월 arXiv에 올라온 VATT: Transformers for Multimodal Self-Supervised Learning from Raw Video, Audio and Text 논문을 살펴보고자 한다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


VATT: Transformers for Multimodal Self-Supervised Learning from Raw Video, Audio and Text

논문 링크: VATT: Transformers for Multimodal Self-Supervised Learning from Raw Video, Audio and Text

초록(Abstract)

Convolution을 사용하지 않는 Transformer 구조로 레이블이 없는 데이터로부터 multimodal 표현을 학습하는 framework를 제안한다. Video-Audio Text Transformer(VATT)는 입력으로 raw signal을 받고 다양한 downstream task에 상당한 도움을 주는 multimodal 표현을 추출한다. End-to-end 방식으로 contrastive loss를 사용하여 scratch에서 학습하고 영상 행동인식, audio event 분류, 이미지분류, text-to-video retrieval 등의 task에서 그 성능을 평가하였다. 또한 modality-agnostic한, 3개의 modality 간 weight를 공유하는 하나의 backbone Transformer를 연구하였다. Convolution-free VATT가 downstream task에서 ConvNet 기반 구조를 능가함을 Kinetics-400/600, Moments in Time 등에서 보였다. VATT는 이미지 분류나 audio event 인식 문제에서도 큰 성능 개선을 이루었다.


1. 서론(Introduction)

CNN은 다양한 computer vision task에서 성공적인 결과를 가져왔다. Convolution 연산은 여러 변형에 대해서 불변성을 가지는 연산으로 시각 데이터에서 효과적임이 입증되었다. 그러나 자연어처리 분야에서는 RNN과 CNN과 같이 강한 inductive bias를 갖는 모델에서부터 자기지도(self-attention) 연산에 기반한 더 일반적인 구조로 그 paradigm이 바뀌어 왔다. 특별히 Transformers는 사실상 자연어처리를 위핸 (표준) 모델이 되었다. 몇 년간 convolution과 attention을 사용한 모델이 여럿 제안되었다.

그러나 대규모 지도학습 기반 Transformer는 2가지 주요한 문제가 있다.

  1. “big visual data”의 큰 부분을 배제한다(레이블이 없고 구조화되지 않은 데이터). 이로 인해 모델은 어느 한쪽으로 편향된다.
  2. 엄청난 수의 parameter, 여러 hyperparameter과 더불어 학습량, 계산량, 소요 시간이 매우 크다.

그래서 (지도학습 대신) 대규모의, 레이블이 없는 데이터(raw signal)을 입력으로 받으면 어떨까? 자연어는 Transformer에 맞는 그 자체의 지도 능력이 있다. 자연어는 순차적으로 단어, 구, 문장이 문맥 내에 놓여져 있고 의미와 구문을 부여한다. 시각적 데이터의 경우 대부분의 지도 기작은 주장하건다 multimodal video이다. 영상은 디지털 세계에서 충분히 많고, 시간 정보와 cross-modality를 가지며, 따라서 사람이 일일이 주석을 달 필요 없이 그 자체로 지도 능력을 갖는다.

본 연구에서, 자기지도 방식의 3개의 multimodal 사전학습 Transformer는 인터넷 영상의 raw RGB frame, audio waveform, 음성을 전사한 텍스트를 입력으로 받는다. 이를 Video, Audio, Text Transformers(VATT)라 한다.

VATT

VATT는 BERT와 ViT과 같은 구조를 가지지만 각 modality별로 독립된 tokenization layer와 linear projection을 갖는 것만 다르다. 이는 최소한의 구조 변경만으로도 효과를 볼 수 있기 위함이며 자기지도 방식의 multimodal 학습 전략은 BERTGPT가 추구하는 사람이 만든 label은 최소한으로 쓰려는 목표와 동일한 방향성을 갖는다.

이 사전학습 Transformer는 자연어처리, 이미지 인식, 의미 분절, point cloud 분류, 행동인식 등에서 좋은 결과를 보였으며 Transformer가 여러 종류의 데이터에 대해서도 범용성을 가지는 구조임을 밝혔다.

여기에서 한발 더 나아가 VATT에 강한 제약을 걸었다(video, audio, text modality에 대해서 weight를 공유). Tokenization과 linear projection을 제외하고 모든 modality에 범용성을 갖는 하나의 구조가 존재할지를 테스트하는 것이다. Zero-shot video retrieval에서는 괜찮은 결과를 얻었으며 modality-agnostic한 Transformer는 modality에 특화된 모델과 비슷했다.

이 논문이 추가로 기여한 바는 DropToken으로, Transformer의 학습복잡도를 낮추는 간단하지만 효과적인 기법으로 video나 audio 중 임의로 일정 부분을 빼고 학습하는 방법으로, Transformer는 계산복잡도가 sequence의 제곱에 비례하기 때문에 상당히 효과적으로 계산량을 줄일 수 있는 방법이다.


2. 관련 연구(Related Work)

2.1 Transformers in Vision

원래 Transformer는 자연어처리 문제을 위해 고안된 모델 구조로 단어들의 장거리 연관성을 효과적으로 모델링하는 multi-head attention을 포함한다. 이러한 Transformer를 super-resolution, 물체탐지, multimodal 영상이해 문제 등의 vision task에 적용시키려는 시도가 많았으나 이들은 CNN으로 추출한 feature에 의존한다. 최근에는 convolution을 사용하지 않으면서도 그에 필적하는 성능을 가지는 모델이 제안되었다.

2.2 Self-Supervised Learning

Single vision modality: 자기지도 시각표현 학습 방법은 보통 auto-encoding, patch 위치 예측, 직소퍼즐, 이미지회전 예측과 같은 수동으로 지정된 pretext task를 통해 unlabeled 이미지로부터 학습한다. 이러한 최근의 contrastive 학습 방식의 트렌드는 데이터 증강과 instance discrimination을 통합한 방식으로 최근 많은 연구가 이루어지고 있다.
영상 부문에서는 시간적 signal을 pretext task로 사용하는 것이 자연스럽다. 미래의 frame 예측, 움직임/외형 통계, 속도/인코딩, frame이나 video clip 순서 정렬 등이 사용된다.

Multimodal video: Video는 본질적으로 multi-modal 데이터이다. Multiomdal 자기지도 학습은 영상이 오디오와 관련성이 있는지(일치하는지), cross-modality clustering, evolving losses 등을 예측하는 것으로 수행된다. 최근에는 contrastive loss를 사용하기도 한다.
VATT는 convolution-free Transformer와 multimodal contrastive learning을 결합한 (아마도) 최초의 연구이다.


3. 접근법(Approach)

여기서는 convolution-free 구조를 갖는 VATT를 설명하고 자기지도 multimodal 목적함수를 상술한다.

VATT

각 modality를 tokenization layer에 입력으로 주고 raw input은 embedding되어 Transformer에 들어간다. 여기에는 2가지 주요 세팅이 있다:

  1. Backbone Transformer가 분리되어 있으며 각 modality별로 고유의 weight를 갖는다.
  2. Transformer는 모든 modality에서 weight를 공유하는 단 하나만이 존재한다.

각 세팅에서, backbone은 modality-specific 표현을 추출하며 contrastive loss를 사용, 서로 비교하여 공유 공간(common space)르 매핑된다.

3.1. Tokenization and Positional Encoding

Vision modality는 frame별로 3채널 RGB 픽셀로 구성되어 있고, Audio는 waveform 형태로 되어 있으며 text는 일련의 단어로 구성된다. 먼저 modality-specifiv 토큰화 레이어를 정의하는데 이는 raw signal을 입력으로 받고 Transformer에 들어갈 일련의 vector를 출력한다. 또, 각 modality는 고유한 positional encoding을 가지며 Transformer에 들어갈 때 순서 정보를 알려준다.

Video

전체 clip이 $T \times H \times W$의 크기를 가지면, $\lceil T/t \rceil \cdot \lceil H/h \rceil \cdot \lceil W/w \rceil$의 patch로 구성, 각 patch는 $t \times h \times w \times 3$의 voxel을 가진다. 그리고 각 patch의 전체 voxel을 d차원 벡터표현으로 선형전사시킨다. 이 전사는 학습가능한 weight $W_{vp} \in \mathbb{R}^{t \times h \times w \times 3 \times d} $에 의해 이루어진다. 이는 An image is worth 16x16 words: Transformers for image recognition at scale에서 제안된 patching 방법의 3D 확장으로 볼 수 있다.
각 patch의 위치를 인코딩하기 위해 간단한 방법을 사용했다. 학습가능한 embedding의 dimension-specific sequence를 정의하여, 각 encoding 위치 $(i, j, k)$는 다음과 같다.

[\pmb{E}{\text{Temporal}} \in \mathbb{R}^{\lceil T/t \rceil \times d}
\pmb{E}
{\text{Horizontal}} \in \mathbb{R}^{\lceil H/h \rceil \times d}
\quad \pmb{E}{\text{Vertical}} \in \mathbb{R}^{\lceil W/w \rceil \times d}
\pmb{e}
{(i, j, k)} = \pmb{e}{\text{Temporal}_i} + \pmb{e}{\text{Horizontal}j} + \pmb{e}{\text{Vertical}_k}]

$\pmb{e}_i$는 $\pmb{E}$의 $i$번째 행이다. 이러한 방식은 positional embedding이 모든 patch를 인코딩할 수 있게 한다.

Audio

Raw audio waveform은 길이 $T^{‘}$의 1차원 입력으로 이를 각 $t^{‘}$ waveform amplitude를 포함하는 $\lceil T^{‘}/ t^{‘} \rceil $개의 부분으로 분절한다. Video와 비슷하게, 학습가능한 weight $W_{ap} \in \mathbb{R}^{t^{‘} \times d} $에 의해 선형전사가 이루어져 $d$차원의 벡터표현을 얻는다. $\lceil T^{‘}/ t^{‘} \rceil $개의 학습가능한 embedding으로 각 waveform 부분의 위치를 인코딩한다.

Text

학습 데이터셋에 존재하는 크기 $v$의 모든 단어의 사전을 만든다. 입력 text sequence의 각 단어는 학습가능한 weight $W_{tp} \in \mathbb{R}^{v \times d} $에 의해 $v$차원의 one-hot 벡터로 선형전사된다. 이는 embedding dictionary lookup과 동일한 과정이다.

3.1.1 DropToken

VATT

Transformer의 계산량을 효과적으로 줄이는 방법으로, Video나 Audio modality에서 일련의 입력이 들어오면, 일정 비율로 임의의 부분을 제거하고 모델에 입력으로 준다. 이는 Transformer의 계산복잡도는 입력의 길이 $N$에 대해 제곱에 비례, 즉 $O(N^2)$이기 때문에 상당히 효과적인 방법이다.
본 논문에서, 원본 입력의 해상도나 차원을 줄이는 대신, (고해상도 등) 정확도를 유지하면서 대신 DropToken을 사용하였다. Video나 Audio는 (인접한 부분에서) 중복성을 가지기 때문에 효율적인 방법이다.

3.2. The Transformer Architecture

ViT와 비슷한 Transformer 구조를 사용하고, 구조에 거의 변형을 가하지 않음으로써 이전의 weight로부터 쉽게 전이학습이 가능하게 하였다. 그림 1의 중간 부분에서 볼 수 있고, 구조를 수식으로 나타내면 다음과 같다.

[z_0 = [x_{\text{AGG}}; x_0\pmb{W}p; x_1\pmb{W}_p; … \ ; x_N\pmb{W}_p ] + e{\text{POS}}
z_l^{‘} = \text{MHA(LN}(z_{l-1})) + z_{l-1}, \quad l = 1…L
z_l = \text{MLP(LN}(z_l^{‘})) + z_l^{‘}, \quad \qquad l = 1…L
z_{\text{out}} = \text{LN}(z_L)]

$x_{\text{AGG}}$는 특수 aggregation token의 학습가능한 embedding으로 상응하는 Transformer의 출력 $z_{\text{out}}^0$은 전체 입력 sequence의 aggregated 표현으로 사용된다. 이는 추후에 분류 및 공통공간 매핑으로 사용된다. MHA는 Multi-Head Attention, NLP는 Multi-Layer Perceptron을 뜻하며 GeLU를 활성함수로 사용한다. LN은 Layer Normalization이다.
본 논문의 텍스트 모델은 position encoding $e_{\text{POS}}$를 제거하고 MHA 모듈의 첫 번째 layer의 각 attention score에 학습가능한 relative bias를 추가하였다. 이 간단한 수정을 통해 텍스트 모델이 SOTA 모델 T5로부터 바로 전이학습이 가능하게 만든다.

3.3. Common Space Projection

모델의 학습을 위해 공통공간으로의 전사(projection) 그리고 그 공통공간에서의 contrastive learning을 사용한다. 구체적으로, (video, audio, text) triplet이 주어지면, (video, audio) 쌍을 (video, text) 쌍과 같이 cosine 유사도로 직접 비교할 수 있도록 의미적으로 구조적인 공통공간 mapping을 정의한다. 이러한 비교는 여러 공간에서 여러 수준의 semantic granularity을 가정할 때 더 현실적이다. 이를 위해, 다수준 전사를 정의한다.

[z_{v, va} = g_{v \rightarrow va}(z_{\text{out}}^{\text{video}})
z_{a, va} = g_{a \rightarrow va}(z_{\text{out}}^{\text{audio}})
z_{t, vt} = g_{t \rightarrow vt}(z_{\text{out}}^{\text{text}}) \ \
z_{v, vt} = g_{v \rightarrow vt}(z_{v, va})]

$ g_{v \rightarrow va}, g_{a \rightarrow va}$는 video와 audio Transformer의 출력을 video-audio 공통공간 $\mathcal{S}{va}$로 전사한다. $ g{t \rightarrow vt}, g_{v \rightarrow vt}$는 text Transformer의 출력과 $\mathcal{S}{va}$ 내의 video embedding를 video-text 공통 공간 $\mathcal{S}{vt}$로 전사한다.
이 다수준 공통공간 전사는 그림 1의 오른쪽 부분에서 볼 수 있다.

이 구조에서 볼 수 있는 주요한 점은 다른 modality는 다른 수준의 semantic granularity를 가진다는 것이며, 이를 위해 공통공간 전사에서 inductive bias를 도입하였다. $ g_{v \rightarrow va}$에서는 ReLU를 포함한 2-layer 전사가, 나머지는 선형전사가 포함되어 있다. 학습을 쉽게 하기 위해, 각 선형 layer 뒤에는 batch normalization이 붙어 있다.

3.4. Multimodal Contrastive Learning

레이블 없는 multimodal video는 충분히 구할 수 있으므로, VATT를 학습시키기 위해 자기지도 목적함수를 사용한다. video-text와 video-audio 쌍에 대해 Noise-Contrastive-Estimation(VCE)를 사용한다. (video, audio, text) stream이 주어진다고 가정하면, video-text와 audio-audio 쌍을 다른 시간대로부터 가져온다. Positive pair는 두 modality가 같은 video clip에서 선택된 것이며, Negative pair는 video, audio, text가 임의의 시간대에서 선택된 경우를 가리킨다. NCE 목적함수는 positive pair간 유사도를 최대화하고 negative pair간 유사도를 최소화하는 것이다.

본 논문에서 사전학습 데이터셋은 규격화된 ASR(Automatic Speech Recognition)로 얻은 텍스트를 사용하며 이는 꽤 noisy할 수 있다. 게다가, 일부 video는 음성이나 자막이 없는 경우도 있다. 따라서, Self-Supervised MultiModal Versatile Networks에서 제안된 NCE의 확장 버전 Multiple-Instance-Learning-NCE(MIL_NCE)를 사용, 영상 입력과 시간적으로 인접한 여러 텍스트 입력을 match시킨다. 이 변형 버전은 video-text 매칭에서 vanilla NCE보다 더 좋다.
본 논문에서는 video-audio 쌍에 대해서는 vanilla NCE를, video-text 쌍에 대해서는 MIL-NCE를 사용한다. 구체적으로, 섹션 3에서 설명한 공통공간에서 목적함수는 다음과 같다.

VATT

$B$는 batch size를 가리킨다. 각 반복에서 $B$개의 video-audio 쌍을 하나의 positive pair와 구성한다. $\mathcal{P}(z)$와 $\mathcal{N}(z)$는 각각 video clip $z_{v, vt}$ (시간적) 인근의 positive/negative text clip을 나타낸다. 구체적으로 $\mathcal{P}(z_{v, vt})$는 video clip과 시간적으로 가장 가까운 5개의 text clip을 포함한다. $\tau$는 negative pair로부터 positive pair를 구분하기 위한 목적함수의 부드러운 정도를 조절하는 온도 변수이다.

VATT의 전체 목적함수는 다음과 같다.

[\mathcal{L} = \text{NCE}(z_{v, va}, z_{a, va}) + \lambda \text{MIL-NCE}(z_{v, vt}, { z_{t, vt} })]

$\lambda$는 2개의 loss의 비율을 조절한다.

4. 실험(Experiments)

실험 환경과 결과, ablation study를 기술한다.

4.1. Pre-Training Datasets

VATT 사전학습 데이터로는 internet video(1.2M개의 영상, 136M개의 video-audio-text triplet 포함, 텍스트는 ASR로 얻음)와 AudioSet(유튜브 10초 clip에서 얻음)을 사용한다. 데이터셋의 어떤 레이블도 사용하지 않았고, AudioSet의 텍스트가 없는 부분을 채우기 위해서 text Transformer에 넣을 때는 $0$으로 채웠고 MIL-NCE loss에서 이러한 샘플은 제외했다.

4.2. Downstream Tasks and Datasets

여러 downstream task에서 VATT를 평가한다.

Video action recognition: 시각표현을 UCF101, HMDB51, Kinetics-400, Kinetics-600, Moments in Time에서 평가한다. UCF101과 HMDB51은 모델에 비해 크기가 작은 데이터셋이라 vision backbone은 고정하고 출력을 선형분류기를 학습하는 데 사용하였다. Kinetics-400, Kinetics-600, Moments in Time에 대해서는 사전학습 checkpoint로 초기화한 vision backbone을 미세조정하는 데 사용했다.

Audio event classification: ESC50, AudioSet으로 audio event 분류를 평가하였다. 위의 task와 비슷하게, ESC50은 audio Transformer을 고정시키고 선형분류기를 학습하는 데 사용하였다.

Zero-shot video retrieval: YouCook2와 MSR-VTT 데이터셋을 사용, video-text 공통공간 표현의 품질을 평가한다. Self-Supervised MultiModal Versatile Networks에서와 같은 평가방법과 Recall at 10(R@10)을 사용한다.

Image classification: 이미지와 영상 간 domain의 차이가 존재하지만, vision Transformer를 이미지 영역에서도 평가한다. ImageNet에서 vision Transformer의 마지막 checkpoint을 어떤 모델구조의 변형 없이 미세조정하여 평가하였다.

4.3. Experimental Setup

  • 입력은 사전학습 데이터셋에서 32 frames, 10 fps를 사용하고 영역은 상대 비율로 [0.08, 1], 영상비율은 [0.5, 2]를 사용한다.
  • 이후 $224 \times 224 $ 크기로 자르고 수평반전, color augmentation을 수행한다.
  • 색깔, 밝기, 색조 등을 임의로 적용한다.
  • 수치적 안정성을 위해 video와 audio 입력은 [-1, 1]로 정규화된다.
  • video와 raw waveform 토큰화를 위해 patch 크기는 $4 \times 16 \times 16$과 $128$을 사용한다.
  • 단어에 대해서는 $2^{16}$의 크기를 가지는 one-hot vector를 쓴다.
  • text sequence는 자르거나 padding을 수행하여 길이 16으로 고정한다.
  • 32 frames-2 stride, 25 fps, crop size=(320,320)이며 어느 token도 제외하지 않는다.
  • audio와 text에 대해 입력 크기는 평가하는 동안 바꾸지 않는다.

Network Setup in VATT: 크기가 각각 다른 4개의 모델이 있다. modality-specific Transformer을 실험할 때 Small과 Base 모델을 text와 audio modality에 사용하고, video modality는 모델 크기를 변화시킨다. 그래서 modality-specific video-autio-text backbone (조합)은 3가지가 존재한다: Base-Base-Small(BBS), Medium-Base-Small(MBS), Large-Base-Small(LBS).

VATT

Projection heads and contrastive losses: 공통공간 $\mathcal{S}{va}, \mathcal{S}{vt}$로의 전사를 위해 $d_{va}=512, d_{vt}=256$를 사용했다. $\tau=0.07, \lambda=1$로 이는 Self-Supervised MultiModal Versatile Networks의 것과 같다. 이를 조정하면 더 좋은 결과를 얻을 수도 있다.

Pre-training setup: 초기 $lr=1e-4$, 10k warmup, 전체 500k step이며, batch size는 2048, lr은 quarter-period cosine schedule로 $1e-4 \rightarrow 5e-5$로 조정한다. 탐색 실험에서는 batch size는 512이다.

Tensorflow v2.4, 256 TPU로 3일간 학습했다.

Video fine-tuning setup: video action recognition을 위해 SGD(momentum=0.9), lr=0.005, 2.5k warmup step, batch size 64, 전체 100k step, half-period cosine schedule$\rightarrow 0$)을 사용한다. 비디오 프레임 해상도는 (320, 320)이다.

Audio fine-tuning setup: SGD를 사용하였으며, minibatch 안에서 입력 레이블 $x$-$y$ 쌍에 대해 mixup을 수행한다:

[x = \alpha x_1 + (1-\alpha)x_2, y = \alpha y_1 + (1-\alpha)y_2]

입력 레이블 쌍은 임의로 선택되었으며 mixing rate $\alpha$는 Beta(5, 5) 분포에서 선택된다.

Image fine-tuning setup: ImageNet으로 이미지 크기는 (384, 384), 512 batch size, SGD(0.9), lr(8e-2)이며 weight decay는 사용하지 않았다.

Linear evaluation setup: 모든 데이터셋과 task에서 고정된 backbone에 선형분류기를 사용했다. factorized weight $\pmb{C} = \pmb{UV} \in \mathbb{R}^{d \times c}$이며 $\pmb{U} \in \mathbb{R}^{d \times n}, \pmb{V} \in \mathbb{R}^{n \times c}$는 학습가능하다.
이 분류기를 학습시키는 동안 $\pmb{U}, \pmb{V}$의 $n$개의 component의 부분을 임의로 선택, low-rank 분류기 weight $\pmb{C}$로 유도한다. 분류기 weight $\pmb{C}$는 Adam optimizer(5e-4)를 사용하여 학습시킨다.

Zero-shot retrieval setup: MSR-VTT의 1k split, YouCook2의 전체 split을 사용했다. $224 \times 224$ 크기로 중간만 자른다(32 fps, stride 2, 25 fps). 각 입력 clip이 2.56초이고 전체 clip 길이는 10초이기 때문에 text query의 임베딩과 유사도를 계산하기 전에 4개의 동등하게 선택된 clip의 임베딩을 평균한다.


4.4. Results

4.4.1 Fine-tuning for video action recognition

아래 표는 Kinetics-400, 600에 대한 각 모델별 top-1, top-5(, TFLOPs) 결과를 비교한다. 표 4는 Moments in Time에 대한 실험 결과이다.

VATT
VATT
VATT

TimeSFormer를 비롯하여 다른 이전 연구들보다 더 높은 정확도를 기록하였음을 볼 수 있다. 본 논문에서 VATT는 multimodal video에서 자기지도를 사용하여 사전학습한 최초의 vision Transformer backbone을 제공하였다고 주장하고 있다. 또한 video action recognition에서 SOTA 결과를 달성하였다.

또한, video, audio, text modality가 공유하는 modality-agnostic backbone 모델인 VATT-MA-Medium는 video action recognition에 최적화된 modality-specific VATT-Base와 비등하다. 이는 하나의 Transformer backbone으로 3개의 modality를 통합할 수 있는 가능성을 보여준다.

4.4.2 Fine-tuning for audio event classification

Multi-label audio event 분류 성능을 평가하는 AudioSet 데이터셋에서 VATT의 audio Transformer를 평가하였다. vision의 것과 비슷하게 마지막 사전학습 checkpoint를 사용한다.

VATT

CNN 기반 모델보다 일관되게 좋은 성능을 보여준다. Modality-agnostic인 VATT-MA-Medium의 경우 modality-specific인 VATT-Base와 비등하다. VATT는 raw waveform만 사용하였으며 사람이 만든 어떤 feature도 사용하지 않았다.

4.4.3 Fine-tuning for image classification

multimodal video에서 사전학습된 모델이지만 이미지 영역에서도 그 성능을 측정하고자 한다.
먼저 VATT를 ImageNet에서 사전학습시킨다. 이때 모델 구조는 그대로 두고 이미지를 영상과 같은 형식으로 입력으로 주기 위해 이미지를 4번 복사하여 네트워크에 집어넣는 방식을 사용했다. 그러면 입력은 하나의 video clip처럼 다루게 되고 자기지도 학습을 수행한다.

VATT

위의 결과는 VATT가 영상 기반으로 학습한 모델일지라도 이미지 영역에서도 훌륭함을 보여준다.

4.4.4 Zero-shot retrieval

YouCook2와 MSR-VTT에서 평가를 진행하였다. Text query가 주어지면 top-10 영상 중 정답인 영상에 대한 recall을 측정(R@10)했다. 또한 정답 영상의 중간 rank(MedR)도 측정했다.

VATT

실험 중 batch size와 epoch에 큰 영향을 받는다는 것을 발견하였다. MMV에는 절반의 크기를 사용하는 것이 효과적이었다.

결과를 보면 아마도 텍스트가 noisy하기 때문에 VATT와 같은 복잡한 언어모델이 낮은 평가를 받는 것으로 예상된다고 한다. 단순한 선형전사를 사용하는 것이 여전히 합리적으로 작동한다고 알려져 있다.

4.4.5 Linear evaluation

전체 backbone을 고정시켰을 때 VATT의 일반화 성능을 테스트한다. 여기서, vidoe와 audio modality에 집중하고 고정된 backbone의 출력을 선형분류기로 학습시킨다. 섹션 4.3에서 설명한 LRC(low-rank classifier)에 더해 SVM 분류기 성능을 기술한다. 아래 표에서 3가지 데이터셋에 대한 결과를 볼 수 있다.

VATT

vATT가 가장 좋은 CNN 모델을 이기지는 못했다. 전체적으로, VATT의 backbone은 덜 선형 분리되는(less-linearly-separable) feature를 학습하며, 특히 비선형전사를 포함하는 contrastive estimation head에서 그렇다.

4.4.6 Feature visualization

modality-specific과 modality-agnostic vATT를 Kinetics-400에 미세조정하고 t-SNE를 사용하여 출력 feature 표현을 시각화했다.

VATT

그림 3에서, 미세조정된 VATT는 scratch로부터 학습한 모델보다 더 나은 분리 능력을 가지는 것을 볼 수 있다. 또 modality-agnostic과 modality-specific 간에는 별다른 차이가 없다.

VATT

그림 4에서, modality-agnostic 모델의 경우가 좀 더 그 출력 표현이 섞여 있는 것을 볼 수 있다. 이는 modality-agnostic backbone이 같은 concept을 묘사하는 다른 symbol을 다른 modality로 본다는 뜻이다. 이는 여러 언어를 지원하는 통합 자연어처리 모델과 유사하다.

VATT가 positive video-text 쌍을 어떻게 잘 구별하는지 확인하기 위해, pair-wise 유사도를 모든 가능한 쌍에 대해 계산하고 Kernel Density Estimation(KDE)를 사용하여 시각화했다.

VATT

modality-specific/agnostic VATT 둘 모두 잘 구분해 내는 것을 볼 수 있다.


4.5. Ablation study

4.5.1 Inputs

VATT가 raw multimodal signal을 입력으로 받기 때문에 입력 크기와 어떻게 patch되는지 등이 최종 성능에 큰 영향을 끼친다. 먼저 patch 크기를 $5 \times 16 \times 16$으로 고정하고 각 video clip당 frame crop size와 샘플링되는 frame 수를 변화시켜 보았다.

VATT

크기가 $4 \times 16 \times 16$ 이하인 경우는 계산시간이 많이 증가하여 제외하였다.

patch size를 다르게 했을 때 결과는 아래와 같다. 128일 때가 가장 좋다.

VATT

audio를 waveform 형태로 할지, spectrogram 형태로 할지는 아래 결과에 나와 있다. raw waveform이 유용할 수 있음을 보인다.

VATT

4.5.2 DropToken

frame이나 waveform의 일정 비율을 임의로 drop하여 입력으로 주는 방법의 성능 및 학습시간을 평가한다. 이렇게 drop하는 비율을 각각 75%, 50%, 25%, 0%일 때를 나누어 계산량과 성능을 평가하였다.

VATT

위의 표를 보면 50%인 경우가 계산량 대비 가장 좋은 성능을 갖추었다고 말할 수 있다. 아래는 DropToken 방식과 해상도 조절 방식을 비교한 표이다.

VATT

DropToken이 계산량 대비 성능이 해상도를 낮추는 방식과 비슷하거나 더 나은 것을 밝혔다.


5. 결론(Conclusion)

Transformer에 기반한 자기지도 multimodal 표현 학습 framework를 본 논문에서 제안하였다. Multimodal 영상 입력에서 작동하는 순수 attention 기반 모델과 함께, 본 연구는 대규모 자기지도 사전학습이 Transformer 구조의 데이터 부족 문제를 해결하면서 여러 downstream task에서 CNN과 비교해 성능이 좋다는 것을 밝혔다. 또한 간단하지만 효과적인 방식 DropToken을 사용하여 입력 길이의 제곱에 비례하는 Transformer의 연산량을 획기적으로 줄여 계산량 대비 성능을 끌어올렸다.
그리고 여러 downstream task에서 좋은 성능을 거두었고 일반적인 multimodal 모델을 개발하는 포문을 열었다. 추후에는 Transformer를 학습시키는 데이터 증강기법과 다양한 multimodal task에서 modality-agnostic backbone을 적절히 정규화하는 방법을 연구할 계획이다.


참고문헌(References)

논문 참조!


Comment  Read more

ERNIE 논문 설명(ERNIE 3.0 - Large-Scale Knowledge Enhanced Pre-Training For Language Understanding And Generation)

|

이 글에서는 Baidu에서 만든 모델 시리즈 ERNIE 중 다섯 번째(ERNIE 3.0: Large-Scale Knowledge Enhanced Pre-Training For Language Understanding And Generation)를 살펴보고자 한다.

ERNIE 시리즈는 다음과 같다. 참고로 2번째는 Baidu가 아닌 Tshinghus University에서 발표한 논문이다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


ERNIE 3.0: Large-Scale Knowledge Enhanced Pre-Training For Language Understanding And Generation

논문 링크: ERNIE 3.0: Large-Scale Knowledge Enhanced Pre-Training For Language Understanding And Generation

초록(Abstract)

사전학습 모델은 다양한 자연어처리 문제에서 SOTA 결과를 얻었다. T5, GPT3은 사전학습 모델을 크게 키우는 것이 그 일반화 성능을 높일 수 있음을 보였다. 특히 GPT3 모델은 175B개의 parameter를 사용, task-agnostic zero/few-shot 학습능력이 강력함을 보였다. 이러한 성공에도 불구하고 이러한 대규모 모델은 언어적/실제 세계의 지식에 대한 정보 없이 plain text에서 학습되었으며 대부분 자동회귀 방식으로 학습된다. 그 결과로 전통적인 미세조정 접근법은 downstream 언어이해 문제를 풀 때 상대적으로 낮은 성능을 보인다. 이러한 문제를 해결하기 위해, 대규모 지식강화 모델을 사전학습하기 위한 통합 framework ERNIE 3.0을 제안한다. 이는 자동회귀 및 자동인코딩 network를 결합하여 학습된 모델이 언어이해 및 생성 문제에서 zero/few-shot 학습 및 미세조정에서 더 쉽게 조정될 수 있다. 본 논문에서 4TB의 말뭉치 및 지식 그래프를 갖고 10B의 parameter를 가지는 모델을 학습하였다. 실험 결과는 54개의 중국어 자연어처리 문제와 영어에서는 SuperGLUE에서 1등을 달성하였으며 이는 사람과 비교하여 0.8%만큼의 우위를 보인다(90.6% vs. 89.8%).

ERNIE

1. 서론(Introduction)

ELMo, GPT, BERT, ERNIE 1.0과 같은 사전학습 모델은 감정분류, 자연어추론, 텍스트 요약, 명명 객체 인식 등의 다양한 자연어처리 문제에서 효과적으로 성능을 높였다. 일반적으로, 사전학습 모델은 대규모 텍스트 데이터로부터 선학습한 뒤 downstream task에서 미세조정하거나 바로 zero/few-shot 학습에 사용된다. 이러한 사전학습 모델은 자연어처리 문제에서 새로운 패러다임이 되었다.

최근의 연구 동향은 이러한 모델의 크기를 크게 키워 perplexity를 낮추고 더 좋은 성능을 얻는 것이었다. Megatron-LM, T5, GPT3 등은 단순하면서도 효율적인 (거대한) layer를 여러 개 쌓아 만든 것으로 10B, 175B 정도의 parameter를 갖는다. 후에 나온 Switch-Transformer는 1T(1조) parameter 정도 크기를 갖는다.

그러나 이러한 모델은 단지 plain text에서 학습된다. 단순 텍스트는 언어적 지식과 실제 세계의 지식이 부족하여 이러한 데이터로 학습하는 것은 성능이 많이 좋아지지 않는다.

본 연구에서는 이러한 하나의 자동회귀 framework로 인해 발생하는 문제를 해결하고 지식을 추가한 사전학습 모델의 성능을 탐색하는 것으로 대규모 단순 텍스트(4TB)와 대규모 지식 그래프를 사용하여 학습하는 통합 framework인 ERNIE 3.0을 제안한다. 이는 자연어처리 및 생성 문제, zero/few-shot 학습을 모두 다루며 여러 task에도 적용될 수 있다. 이 방법은 여러 task에서 기능하는 어휘적, 구문, 의미적 정보를 인코딩하는 것이 가능하며 새로운 task가 추가되면 이 framework는 이전에 학습된 parameter에 기초하여 분산표현을 점층적으로 학습시켜 사용하며 이는 scratch로부터 새로 학습할 필요가 없음을 의미한다.

요약하면, 이 논문이 기여한 바는:

  1. 통합 framework ERNIE 3.0을 제안한다. 자동회귀 및 자동 인코딩 network를 결합하여 학습된 모델이 zero/few-shot 학습 혹은 미세조정을 통해 자연어이해 및 생성 문제를 다룰 수 있게 한다.
  2. 10B개의 parameter를 갖는 지식 강화된 모델을 사전학습하여 자연어이해 및 생성 task에서 실험하였다. 결과는 ERNIE 3.0이 54개의 중국어 task 및 SueprGLUE에서 일관되게 타 모델을 능가함을 보여준다.

2. 관련 연구(Related Work)

2.1 Large-scale Pre-trained Models

BERT 이후로 자연어이해 문제에서는 사전학습 모델이 새로운 패러다임이 되었다. 이후로는 더 낮은 perplexity를 지니는 더욱 더 큰 모델이 계속해서 나오게 되었다. 그러나 GPT3과 같은 모델은 일반상식이 부족하다. 1T개의 parameter를 갖는 Switch Transformer는 더 적은 학습 비용으로 모델을 향상시키고자 했으며 다른 연구에서는 학습 복잡도, 통신비용, 학습 불안정성 등을 해결하고자 하였다. 위의 모델들 이외에도 Chinese Pre-trained Language Model(CPM), M6, PangGu-$\alpha$ 등 비 영어 모델이 여럿 제안되었다. 중국어 모델 이외에도 204B개의 parameter를 가지는 한국어 모델 HyperCLOVA가 제안되어 GPT3보다 6500배 많은 한국어 데이터를 사용하여 학습하였다.

종합적으로 대규모 사전학습 모델이 학계와 산업계에서 높은 성능을 보이며 주목받고 있다.

2.2 Knowledge Enhanced Models

사전학습 언어모델은 대규모 말뭉치로부터 구문, 의미적 지식을 학습하지만 실세계의 지식은 부족하다. 최근, 사전학습 모델에 이러한 상식을 부여하고자 하는 시도가 여럿 있었는데 대표적으로 지식 그래프를 사용하는 방법이 있다. WKLM, KEPLER, CoLAKE, ERNIE 1.0, CALM, K-Adapter 등이 발표되었다.


3. ERNIE 3.0

ERNIE

ERNIE, ERNIE 2.0, SpanBERT 등은 base/large 모델을 각각 12/24 layer의 Transformer로 구성하고 있다. 대규모 말뭉치와 지식 그래프로 사전학습한 모델 ERNIE 3.0 framework를 제안한다. 서로 다른 수준의 지식을 얻기 위해 다양한 사전학습 task를 구성하였다. ERNIE 3.0은 Continual Multi-Paradigms Unified Pre-training Framework이다.

3.1 Overview of ERNIE 3.0 Framework

일반적인 사전학습 방식은 cloze task를 위해 공유 Transformer 네트워크를 사용하고 예측 조건이 어떤 문맥에 있는지 제어하기 위해 특정 self-attention mask를 사용하지만 ERNIE 3.0은 새로운 연속 다중 패러다임 통합 사전 훈련을 설계한다.
어휘, 구문 정보를 일관되게 추출할 수 있는 방식에 의존하지만 top-level feature의 요구사항은 양립할 수 없다. 전통적인 방식에서 하단 layer는 모든 task에서 공유되고 상단 layer는 task에 특화된 방식으로 사용되며, 이에 착안하여 ERNIE 3.0은 공유 network에서 학습된 추상 feature를 공유하고 task-specific feature는 task-specific network에서 학습된 것을 사용한다. 모델이 표현을 더 잘 사용할 수 있도록 ERNIE 2.0에서 제시한 연속적 multi-task 학습 framework를 사용한다.
Downstream task로의 응용은 ERNIE 3.0을 사전학습된 공유 네트워크 및 task-specific 네트워크를 결합한 것으로 최적화하여 특정 task의 data를 사용하여 실행하는 과정을 따른다.

ERNIE 3.0에서 Backbone 공유 네트워크와 task-specific 네트워크는 Universal Representation ModuleTask-specific Representation Modules으로 칭한다.

  • Universal Representation Module은 범용 semantic feature 추출기로서 작동하며(multi-layer Transformer가 될 수 있다) 모든 task에서 공유되는 parameter이다.
  • Task-specific Representation Modules는 task-specific feature를 추출하는 부분으로 task마다 다른 parameter를 가진다.

이러한 방식으로 대규모 사전학습 모델은 제한된 시간과 자원 하에서 사용하기 어려운 것을 ERNIE 3.0은 task-specific 네트워크 부분만 업데이트함으로써 이를 가능케 한다. ERNIE 3.0은 1개의 Universal 모듈과 2개의 Task-specific 모듈(NLU & NLG specific representation module)을 사용한다.

3.1.1 Universal Representation Module

XLNet, Segatron, ERNIE-Doc과 같이 Multi-layer Transformer-XL을 backbone으로 사용한다. 일반적으로, Transformer는 self-attention을 통해 sequence의 각 token에서 문맥 정보를 잡아낼 수 있고 문맥 임베딩의 sequence를 생성할 수 있다. 그 크기가 커질수록 더 많고 더 다양한 많은 정보를 담을 수 있다. 따라서 ERNIE 3.0은 다양한 사전학습 task의 학습 데이터로부터 어휘적, 구문 정보를 잡아내기 위해 큰 크기의 universal 표현 모듈을 사용한다. 그리고 특히 attention이 필요한 부분은 attention mask matrix를 제어하는 동안 자연어생성 task에만 유효한 메모리 모듈이다.

3.1.2 Task-specific Representation Module

범용모듈과 비슷하게 multi-layer Transformer-XL을 사용하며 이는 서로 다른 task paradigm을 위한 상단부 의미표현을 잡아내기 위한 것이다. 기본 모델로 MLP나 shallow Transformer 대신 적정 크기의(manageable) 표현 모듈을 사용하였는데 이는 3가지 장점을 갖는다:

  1. 의미정보를 잡아내는 능력이 더 뛰어나다.
  2. Parameter의 수를 크게 늘리지 않고도 서로 다른 task paradigm 중에서 상단부 의미정보를 구별할 수 있도록 해 준다.
  3. 공유 네트워크보다 더 작은 크기의 task-specific 네트워크는 task-specific 표현모듈만을 미세조정했을 때보다 대규모 사전학습 모델을 위한 실용적, 실제적 응용에 더 적합하다.

ERNIE 3.0에서는 2개의 task-specific 표현모듈을 사용하였고 이는 각각 NLU 및 NLG specific representation module인데, 전자는 양방향 모델이고 후자는 단방향이다.

3.2 Pre-training Tasks

학습 말뭉치로부터 여러 방면의 정보를 얻기 위해 다양한 task paradigm을 구성하여 이해/생성/추론능력을 증가시켰다.

3.2.1 Word-aware Pre-training Tasks

Knowledge Masked Language Modeling: ERNIE 1.0에서 지식통합을 통해 표현을 증강시키는 효율적인 방법으로 제시되었다.

Document Language Modeling: 생성적 사전학습 모델은 보통 전통적인 언어모델이나 seq-to-seq 언어모델을 사전학습 task로 사용하는데, 후자는 auxiliary decoder 구조와 같이 네트워크를 학습한다. ERNIE 3.0은 전통적 언어모델을 선택하여 모델복잡도를 낮추고 통합 사전학습의 효율성을 높였다. 추가로, ERNIE 3.0의 NLG 네트워크를 모델의 더 긴 텍스트에 활용하기 위해 ERNIE-DOc에서 제안된 Enhanced Recurrence Memory Mechanism을 사용, shifting-one-layer-downwards recurrence를 same-layer recurrence로 바꿈으로써 전통적인 재귀 Transformer보다 더 효율적인 문맥길이를 모델링한다.

3.2.2 Structure-aware Pre-training Tasks

Sentence Reordering: ERNIE 2.0에서 제안된 task로 모델은 순서가 뒤바뀐(permuted) 문장들의 원래 순서를 찾아내야 한다.

Sentence Distance: NSP(Next Sentence Prediction) task의 확장판으로 문장 간의 관계를 3가지 분류(인접 문장/인접하지는 않았으나 같은 문서 내에 존재/서로 다른 문서에 존재) 중 하나로 특정해야 한다.

3.2.3 Knowledge-aware Pre-training Tasks

Universal Knowledge-Text Prediction: 하나의 사전학습된 언어모델에 지식을 통합하기 위해, 지식 마스크 언어모델링의 확장판인 UKTP(Universal Knowledge-Text Prediction) task를 도입하였다. 지식 마스크 언어 모델링에는 plain text만 필요하지만 범용 지식 텍스트 예측 작업에는 plain text와 지식 그래프가 모두 필요하다.
범용 지식 텍스트 예측 작업은 아래 그림에서 볼 수 있다.

ERNIE

지식 그래프의 triplet 쌍과 백과사전에서 얻은 대응되는 문장이 주어지면, 모델은 head/Tail Entity를 탐지하고 대응 문장에서 그것들의 관계를 판별해야 한다. 이 과정의 본질은 관계 추출 task에서 distant 지도 알고리즘과 비슷하다. Distant 지도 알고리즘은 두 entity가 어떤 관계에 참여하면, 해당 entity를 포함하는 어떤 문장이든 그 관계를 표현할 것이라고 가정한다.
한편, 대응 문장에서 단어를 예측하기 위해, 모델은 문장 내에서 의존정보뿐 아니라 triple 안에서 논리적 관계를 고려해야 한다. 구체적으로, triple과 해당 문장의 쌍을 구하는 과정은 다음과 같다: 백과사전에서 문서가 주어지면, 지식 그래프에서 head/tail entity에 대한 언급이 문서의 제목이 되는 후보 triple을 먼저 찾은 다음, 문서의 동일한 문장에서 해당 entity들이 언급된 후보 triple 중에서 선택한다.

ERNIE 3.0은 지식 마스크 언어 모델링을 통해 NLU 네트워크를 훈련하여 어휘 정보 캡처 능력을 향상시키고, sentence reordering task와 sentence distance discerning task를 훈련하여 구문 정보 캡처 능력을 강화하고, 지식 기억 및 추론능력을 향상시기키 위해 UKTP task를 통해 모델을 최적화한다.
한편, ERNIE 3.0은 다양한 생성 스타일을 갖추도록 문서 언어 모델링 작업으로 NLG 네트워크를 학습시킨다.

3.3 Pre-training Process

3.3.1 Pre-training Algorithm

점진적 학습은 원래 효율적이고 작은 모델에서 시작하여 점차적으로 용량을 늘리는 안정성 향상을 위해 제안된 방법으로 최근 연구에서는 이 패러다임을 활용하여 모델 학습을 가속화한다. 대규모 사전학습이 계속해서 SOTA를 발전시키면서 그 엄청난 계산량은 강력한 모델을 개발함에 있어 더 큰 부담이 되고 있다.
Transformer에서 점진적 사전학습의 적용이 이루어졌는데, BERT는 처음 90%의 업데이트 동안 sequence의 길이를 줄인 2단계 학습 방법을 적용하고, batch size를 점차 큰 크기로 늘려가는 방법을 사용하였다.

또한 input 크기와 관련하여 정규화 인자를 조절하는 것도 학습 속도를 높이는 데 도움을 주는 것이 알려져 있다. 본 논문에서는 수렴 속도를 향상시키기 위해 sequence 길이, batch size, learning rate, dropout rate 등을 점진적으로 동시에 조정하는 것을 제안한다.

3.3.2 Pre-training Data

대규모, 다양성, 고품질의 중국어 데이터를 11개의 다른 종류, 4TB의 용량에 달하는 텍스트 말뭉치를 구성하였다. 이는 CLUECorpus2020(100GB), WuDaoCorpus2.0(2.3TB), PanGu Corpus(1.1TB) 등보다 더 큰, 가장 대규모의 데이터셋이다.

구체적으로, ERNIE 2.0에 기반하여, Baidu Search, Web text, QA-long/short, Poetry & Couplet, 의학/법/경제 영역 데이터 등에서 데이터를 수집하였고, 품질을 높이기 위해 다음 전처리를 수행하였다.

  • 중복을 제거하기 위해,
    • 문자 단위에서 연속적으로 동일한 문자(공백, 특수문자 등)을 하나로 통합하였다.
    • 문단 단위에서 $N$개의 문장으로 구성된 연속 문장을 포함하는 2개의 동일한 문단을 하나로 통합한다.
    • Message Digest Algorithm5(MD5)를 사용, 가장 긴 top-3 문장의 합을 비교, 중복 문서를 제거한다.
  • 10개 단어보다 적은 문장은 불완전할 수 있기 때문에 제거되었다.
  • Baidu의 단어 분절 도구를 사용, 문장 segmentation 작업을 수행하였다. 이는 문장 및 명명 객체의 경계를 학습하는 데 도움을 줄 것이다.
ERNIE

3.3.3 Pre-training Settings

Backbone network로 Transformer-XL을 사용한다.

  • Universal representation module의 경우 48 layers, 4096 hidden units, 64 heads이다.
  • Task-specific representation module의 경우 12 layers, 768 hidden units, 12 heads이다.

전체 parameter 수는 10B이다.

활성함수는 GeLU, 문맥의 최대길이는 512, 생성 문장의 최대길이는 128, 모든 사전학습 task의 총 batch size는 6144, Adam($lr=1e-4, \beta_1=0.9, \beta_2=0.999$), L2($decay=0.01$), lr warmup은 1만 step이다.

모델은 PaddlePaddle framework 하에서 384개의 NVIDIA v100 GPU를 사용하여 총 375B개의 token을 학습하였다. Parameter 공유를 통해 모델의 크기를 줄이고 하나의 GPU에 들어갈 수 있도록 하였다.


4. 실험(Experiments)

SOTA와 비교, 4.2.1에서 자연어이해, 4.2.2에서 자연어생성, 4.3에서 zero-shot 학습을 살펴본다.

4.1 Evaluation Tasks

54개의 자연어처리 문제를 비교한다.

4.1.1 Natural Language Understanding Tasks

14종류의 45개의 데이터셋을 사용하였다.

  • Sentiment Analysis: NLPCC2014-SC 6, SE-ABSA16_PHNS 7, SE-ABSA16_CAME, BDCI2019 8.
  • Opinion extraction: COTE-BD, COTE-DP, COTE-MFW.
  • Natural Language Inference: XNLI, OCNLI, CMNLI.
  • Winograd Schema Challenge CLUEWSC2020.
  • Relation Extraction: FinRE, SanWen.
  • Event Extraction: CCKS2020 9.
  • Semantic Similarity: AFQMC, LCQMC, CSL, PAWS-X, BQ Corpus.
  • Chinese News Classification: TNEWS 10, IFLYTEK, THUCNEWS 11, CNSE, CNSS.
  • Closed-Book Question Answering: NLPCC-DBQA 12, CHIP2019, cMedQA, cMedQA2, CKBQA 13, WebQA.
  • Named Entity Recognition: CLUENER, Weibo, OntoNotes, CCKS2019 14.
  • Machine Reading Comprehension: CMRC 2018, CMRC2019, DRCD, DuReader, Dureaderrobust, Dureaderchecklist, Dureaderyesno 15, C3, CHID.
  • Legal Documents Analysis: CAIL2018-Task1, CAIL2018-Task2.
  • Cant Understanding: DogWhistle Insider, DogWhistle Outsider.
  • Document Retrieval: Sogou-log.

4.1.2 Natural Language Generation Tasks

7종류의 9개의 데이터셋을 사용하였다.

  • Text Summarization: LCSTS
  • Question Generation: KBQG 16, DuReader-QG, DuReaderrobust-QG.
  • Closed-Book Question Answering: MATINF-QA.
  • Math: Math23K.
  • Advertisement Generation: AdGen.
  • Translation: WMT20-enzh.
  • Dialogue Generation: KdConv.

4.2 Experiments on Fine-tuning Tasks

4.2.1 Fine-tuning on Natural Language Understanding Tasks

ERNIE
ERNIE

원 논문에는 각 task별로 간단한 설명이 있는데, 각 task가 어떤 task인지를 한 문장 정도로 설명하고 나머지는 ERNIE 3.0이 얼마의 차이로 가장 좋은 성능을 내었다는 설명이 있다. 자세한 내용은 위 표를 보면 알 수 있기 때문에 여기서는 생략한다.

4.2.2 Fine-tuning on Natural Language Generation Tasks

참고로 Math는 간단한 산술연산을 수행하는 능력을 평가한다. 이는 계산기를 구현한 것이 아니라 모델이 실제로 식을 보고 답을 계산하는 것을 평가하는 것이다. 실제로 데이터셋이 이렇게 구성되어 있지는 않지만, 주어지는 문제가 1+3=?이 아니라 1에다가 3을 더하면 얼마인가?를 이해하고 푸는 문제라고 대략 이해하면 된다.

ERNIE

4.2.3 LUGE benchmark

Language Understanding and Generation Evaluation Benchmark라는 벤치마크로 여기서는 6개의 representative task를 사용하였다.

ERNIE

ERNIE 2.0과 RoBERTa에 비해 5.36%의 차이를 보인다.

4.3 Experiments on Zero-shot Learning

어떤 gradient 업데이트나 미세조정 없이 zero-shot만으로 ERNIE 3.0이 얼마만큼의 성능을 내는지를 평가한다.

4.3.1 Evaluation

크게 2가지로 평가 방법을 나눌 수 있다.

  • Perplexity-based Method: 다지선다형 문제에서 구문 내에서 빈칸을 각 선택지로 채웠을 때 token당 perplexity 점수를 비교한다. 물론 정답일 때 perplexity 점수가 가장 낮은 값을 가진다. 분류 문제의 경우, 좀 더 의미가 있는 이름을 각 분류에 붙인 뒤 multi-choice task로 취급하여 평가한다.
  • Generation-based Method: Closed-book QA와 같이 자유양식 문제의 경우 beam width 8의 beam search를 사용한다. 최대 생성 길이는 데이터셋의 상위 95%의 정답 길이로 제한된다. 이후 metric은 EM(exact match), F1, Rouge-1이 사용된다.

4.3.2 Results

ERNIE

C3 task를 제외하고는 모든 부분에서 가장 좋은 성능을 보인다.

4.3.3 Case Study

QA, Interpretation, Dialogue, Text Generation, Summarization 5종류의 13개 task에서 450개의 case를 모아 zero-shot 생성능력을 평가하였다. coherence, fluency, accuracy는 표 6에서 확인할 수 있고, 일부 예시는 아래 표 7에서 볼 수 있다. (중국어이다..) 세부는 표 8에서 볼 수 있다.

ERNIE
ERNIE
ERNIE

4.4 Experiments on SuperGLUE

ERNIE

절반 정도에 해당하는 task에서 GLUE benchmark 1위 자리에 올랐다고 한다.


5. 분석(Analysis)

The Effectiveness of the Task-specific Representation Modules

다양한 사전학습 task 하에서 parameter를 공유하는 모델(원래는 공유하지 않는 모델)과 비교하였다. 통합 모델은 12 layers, 768 dims, 12 attention heads를 갖지만 원래 모델은 각 task당 3 layers, 256 dims, 4 attention heads를 갖는다. 이 두 모델을 갖고 사전학습 단계에서 NLG task의 perplexity를 비교한 결과가 아래 그림과 같다.

ERNIE

학습이 진행됨에 따라 task-specific module을 갖고 있는 것이 통합 모듈을 갖는 것보다 PPL이 점점 더 낮아지는 것을 볼 수 있다.

Universal Knowledge-Text Prediction

관계추출 task는 전형적인 지식 기반 task로 주어진 문장에서 언급된 2개의 entity 간의 관계를 예측하는 것이다. 구체적으로, 4개의 특수 token [HD], [\HD], [TL], [\TL]을 추가하여 head/tail entity를 구별할 수 있게 하고, 관계 분류기는 전술한 4개의 특수 token의 최종 표현의 합으로 수행된다. SanWen과 FinRE에서 측정한 결과 지식 강화전략은 관계추출에서 좋은 성능 향상을 보여준다.

ERNIE

추가로, CKBQA에서 수행한 zero-shot 생성 실험도 UKTP task의 효과를 보여준다. KBQA task는 모델이 지식 그래프에 기반해서 정답과 그 이유를 들도록 요구하는 task로 지식학습 능력을 평가하는 데 적합하다. zero-shot 세팅으로 "QUESTION: $QUESTION? ANSWER:" 형식을 사용, CKBQA데이터셋에서 SOTA 모델과 ERNIE 3.0을 비교하였다. 표 5에서 보듯이 ERNIE 3.0은 타 모델을 능가한다.

Progressive Learning to Speed up Convergence

학습 수렴속도를 보기 위해 ERNIE-Base, ERNIE-1.5B와 비교한다. ERNIE-1.5B는 48 layers, 1536 dims, 24 attention heads를 갖는다. 학습 시간은 ERNIE 3.0의 loss 값과 동일해질 때까지의 시간으로 측정하였다. 표 11에서 보듯이 ERNIE-Base는 65.21%의 감소를, ERNIE-1.5B는 48.2%만큼 감소하있다. 2개의 세팅에서 모두 8개의 NVIDIA Tesla V100 GPU를 사용하였다.

  • ERNIE-Base의 경우, batch size를 8에서 2048로 늘리고 sequence 길이는 128에서 512로 증가사킸고, learning rate는 0에서 1e-4로 선형 증가, dropout은 warmup stage 동안 0으로 고정하였다. ERNIE 1.5
  • ERNIE-1.5B의 경우, batch size를 8에서 8192로 늘리고 learning rate는 0에서 6e-4로 선형 증가, dropout은 warmup stage 동안 0으로 고정하였다.

나머지 세팅은 ERNIE-Base와 같다.

ERNIE

6. 결론(Conclusion)

4TB의 대규모 말뭉치, 10B개의 parameter를 갖는 사전학습 framework ERNIE 3.0을 제안하였다. ERNIE 3.0은 auto-encoder, auto-regressive 네트워크를 통합한 사전학습 framework로 자연어이해, 생성, zero-shot 학습에서 모두 좋은 성능을 보였다.


참고문헌(References)

논문 참조!


Comment  Read more