Y Tech Blog search

DropoutNet(Addressing Cold Start in Recommender Systems) 요약 설명

|

이번 글에서는 DropoutNet 논문의 핵심 포인트만 메모해 둡니다.

  • 논문 링크

  • cold start 문제를 좀 더 잘 풀기 위해 dropout 구조를 활용함
  • denosing autoencoder에서 영감을 받았다고 하며, 무작위로 user 혹은 item의 content feature를 0으로 masking하여 학습함
  • 위 방법 자체를 dropout 구조라고 명명하며, cold start 문제를 더 잘 풀기 위해 objective function에 항을 추가하는 이전의 여러 방법보다 간단한 방법이라고 함
  • 학습/예측을 위한 추천 모델 자체에는 특별한 부분은 없음
Comment  Read more

Linformer(Self-Attention with Linear Complexity) 요약 설명

|

이번 글에서는 Linformer 논문의 핵심 포인트만 간추려서 기술합니다.

논문에서는 self-attention이 O(n^2)의 time & space complexity를 갖기 때문에 seq가 길수록 bottleneck의 원인이 된다고 지적합니다.

경험적으로 그리고 수식적으로 증명해보면, attention matrix는 low-rank matrix로 분해할 수 있다고 설명합니다. k « seq_len인 k의 size를 갖는 matrix E를 K, V에 곱함으로써 이를 구현할 수 있습니다. (seq_len, d) -> (seq_len, k)

실험 결과를 보면 Linformer는 대체적으로 standard Transformer와 비견할 만한 성능을 보입니다.

요약해보면, sequence의 길이가 꽤 길거나 하는 등의 이유로 training speed를 향상시키면서도 model의 representational capacity를 유지하고 싶을 때, 특별한 제약 조건이 없다면 충분히 시도해 볼 수 있는 방법이라고 판단됩니다. 물론 실제로 데이터에 적용해보기 전까지는 이에 대한 효과를 장담하기는 어렵습니다.

Comment  Read more

Fastformer(Additive Attention Can Be All You Need) 요약 설명

|

이번 글에서는 Fastformer 논문에 대해 간략히 다뤄 보겠습니다.

본 논문은 self-attention의 pairwise interaction 모델링 구조가 굳이 필요한 것인가에 대해 의문을 제시하고 중첩된 additive attention 메커니즘을 통해 충분히 경쟁력 있는 모델을 구현할 수 있다고 주장합니다.

논문 도입부에 나온 줄 글만 봤을 때는 복잡한 과정을 거치는 것으로 생각이 들 수 있지만 실제로는 매우 쉬운 연산의 연속입니다.

중요 아이디어는 다음과 같습니다.

  • 모든 query X key 에 대해 interaction을 계산할 필요가 없다.
  • global query vector와 global key vector를 만든 후 이를 value vector 들과 다시 결합하면 충분하다.
  • global query 및 key vector는 각 query 혹은 key vector 들의 가중합으로 이루어진다.

global query vector는 아래와 같이 구합니다.

[\mathbf{q} = \Sigma_{i=1}^N \alpha_i \mathbf{q}_i]

[\alpha_i = \frac{exp(\mathbf{w}q^t / \sqrt{d})}{\Sigma{j=1}^N exp(\mathbf{w}_q^T \mathbf{q}_j / \sqrt{d})}]

그런데 이는 사실 상 self-attention 메커니즘을 구현한 것과 다름 없습니다. 같은 방식으로 global key vector도 구하고 최종적으로 value vector들과 곱합니다. 마지막 output vector를 만들기 이전에 query vector 값들을 다시 더합니다. 이는 일종의 residual connection 역할을 하는 것으로 보이는데 이러한 구조가 만들어진 것에 대한 논리적 설명이 없는 부분은 매우 아쉽습니다.

일단 연산의 구조로 보았을 때 Vanilla Transformer보다 속도는 빠를 가능성이 높다고 추론해 볼 수 있습니다. 논문에서 제시한 실험 결과도 이를 뒷받침합니다. 그리도 만약 token 사이의 순서가 아주 중요하지 않고 일종의 global context가 중요한 역할을 수행하는, 예를 들어 classificaion task에서는 이러한 구조가 더 적합할 수도 있겠다는 판단이 듭니다. 물론 실제 실험을 진행해봐야 아는 부분이겠지만 구현 자체가 까다로운 알고리즘이 아니기 때문에 하나의 옵션으로 고려할 수 있을 것으로 보입니다.

다만 global vector를 생성하는 부분 외에는 특별히 논리적/수식적 근거를 제시하지 않았다는 점과 Fastformer가 잘 통하는 종류의 실험들을 선별한 것이 아닌가 하는 의문이 든다는 점은 아쉬운 부분이라고 할 수 있겠습니다.

Comment  Read more

Synthesizer(Rethinking self-attention for transformer models) 요약 설명

|

앞으로 Paper Review 카테고리에는 논문들을 비교적 짧고 가볍게 요약하여 정리하는 글들을 올려보고자 합니다.

첫 타자는 Synthesizer라는 논문입니다.

본 논문은 dot-product based self-attention이 정말 필요한가?에 대한 물음을 던지고 대안을 제시한 논문입니다. 논문에서 dot product self-attention은 sequence 내에서 single token이 다른 token과의 관계에서 갖는 상대적인 중요성을 결정하는 역할을 수행한다고 설명하며 (당연히 맞는 이야기) 이러한 역할은 논문에서 제시하는 구조로도 충분히 달성할 수 있음을 여러 종류의 실험을 통해 증명하고자 노력합니다. token과 token 사이의 interaction을 굳이 고려하지 않고도 fully global attention weight를 통해 충분히 주요 정보를 포착할 수 있다고 이야기 합니다.

굉장히 흥미로운 아이디어이지만 그 구조가 설명에 있어 아쉬운 부분이 많습니다. 일단 논문에서는 크게 2가지 구조를 제안합니다. Dense SynthesizerRandom Synthesizer가 바로 그것입니다.

[Y_{h, l} = softmax(B_{h, l}) G_{h, l}(X_{h, l})]

대단히 복잡한 식이 아닙니다. 사실 $G$ 함수는 linear transformation 역할을 수행하며 기존의 dot-product attention matrix를 단지 $B$ 라는 parameter matrix로 대체하는 것일 뿐입니다. 이 $B$ 를 계산하기 위해 input token에 의존적으로 학습된다면 이를 Dense Synthesizer라고 하며 어떠한 input token에도 영향 받지 않는 attention weight를 구성한다면 이를 Random Synthesizer라고 합니다. 이 때 이 행렬은 trainable 할 수도 있고, 그저 고정된 상수 값일 수도 있습니다. 논문에서는 행렬을 factorize 한 버전 역시 제시합니다.

자세한 설명은 글 상단에 있는 youtube 영상을 참고하기를 추천합니다. 실험 부분에 대해 자세히 설명하고 있고, 본 논문의 한계점에 대해 명확하게 설명하고 있습니다.

간단히 이 부분에 대해 언급하면 아래와 같습니다.

  • 사실상 synthesizer는 self-attention layer를 feed-forward layer로 치환한 것과 다름 없음
  • 언어 구조가 비슷한 언어 간의 번역 task는 이러한 구조가 잘 기능할 가능성이 높은 task이기 때문에 논문에서 제시하는 구조가 과대 평가되었을 가능성이 높음
  • 아이디어 자체는 좋지만 실질적으로 어떻게 self-attention layer를 대체할 수 있는지 그 장점이 명확하지 않음. 결국 dot-product self-atttention과 mix 한 것이 성능이 가장 좋다고 나옴
Comment  Read more

Learning to Retrieve Videos by Asking Questions 논문 설명

|

이 글에서는 Learning to Retrieve Videos by Asking Questions 논문을 간략하게 정리한다.


Learning to Retrieve Videos by Asking Questions

논문 링크: Learning to Retrieve Videos by Asking Questions

  • 2022년 6월(Arxiv)
  • Avinash Madasu, Junier Oliva, Gedas Bertasius

Abstract

전통적인 text-to-video retrieval은 정적인(static) 환경에서만 진행되어 왔다(첫 query가 주어지고 나면 답을 찾을 때까지 유저와 어떠한 상호작용도 없다). 이는 query가 모호한 경우 적절한 영상을 찾아오는 데 있어 특히 문제될 수 있다. 이 한계를 극복하기 위해 본 논문에서는 Video Retrieval using Dialog(ViReD)를 위한 새로운 framework를 제시하여 유저가 여러 턴에 걸쳐 agent와 상호작용(질문 및 응답)할 수 있게 하여 유저가 정말로 원하는 영상을 찾을 수 있도록 한다.

본 논문에서 제안하는 multimodal question generator는 다음을 사용하여 차후 video retrieval 성능을 높인다:

  1. 유저와의 상호작용 중 마지막 round 동안 얻은 video 후보들
  2. 이전의 모든 상호작용에서 얻은 텍스트 대화 history

이를 조합하여 video retrieval과 연관된 시각적/언어적 단서를 찾는다.

또한 질문을 통해 최대한 많은 정보를 얻기 위해 question generator가 더 의미 있는 질문을 생성하도록 Information-Guided Supervision(IGS) 라는 방법을 제안한다.

AVSD 데이터셋에서 제안하는 모델을 평가하여 괜찮은 성능을 얻고 video retrieval에서 효과가 있음을 보인다.

CCS CONCEPTS

Computing methodologies → Visual content-based indexing and retrieval.

KEYWORDS

interactive video retrieval, dialog generation, multi-modal learning


1. Introduction

처음에 query만 하나 던져주고 원하는 video를 찾아오는 것은 query 자체가 정보가 부족하거나 모호할 수 있기 때문에 제약사항이 많다. 그래서 본 논문에서는 단 한번의 query만 받는 것이 아닌 여러 차례 상호작용을 수행하여 좀 더 정확하게 video retrieval task를 수행하는 것을 목표로 한다.

예를 들어 어떤 “요리하는 영상”을 찾는다는 query를 생각해보자. 전통적인 방식으로는 요리 영상이라면 그냥 다 찾아오고 말겠지만 다음과 같이 지속적인 상호작용을 통해:

  • Q1: “어떤 요리?”
  • A1: “지중해식 요리”
  • Q2: “육류? 채소류?”
  • A2: “채소류”

유저가 더 원할만한 영상을 더 정확하게 찾을 수 있을 것이다.

물론 기존에도 상호작용을 포함한 연구들은 있었다. 그러나 보통은 지나치게 많은 round를 (e.g. >5) 요구하는 등의 문제가 있었다. 저자들은 본 연구에서는 2~3번의 상호작용만으로 목적을 달성할 수 있다고 한다. 여기서 초록에서 언급한 Information-Guided Supervision(IGS) 가 중요한 역할을 한다.


2.1 Multimodal Conversational Agents

특히 image-based visual dialog에서 많은 진척이 있었다. 그러나 대체로 정적인 환경에서 이루어졌다는 단점이 있다.

2.2 Video Question Answering

이미지에 이어 VQA는 영상 또한 다루며 시간적인 정보가 포함되므로 더 도전적인 과제이다. 최근에는 Vx2Text라는 Transformer 기반 multi-modal generative network가 제안되었다.

2.3 Multimodal Video Retrieval

DNN에 기반한 연구, Transformer 기반 모델 등이 제안되어 왔다. 역시 보통은 정적인 환경에서 수행되었다. (계속 본 논문이 상호작용이 있으므로 더 좋다는 주장. 논문에서 필요한 부분이기도 함)

2.4 Interactive Modeling Techniques

  • Ishan et al. 의 논문에서는 VQA를 위한 상호작용 학습 framework를 제안하였다. visual question에 대답하기 위한 정보를 oracle에게 능동적으로 요구한다.
  • 이미지뿐 아니라 비디오에서도 interactive한 모델들이 video browser showdown (VBS) benchmark를 위해 제안되었다.
  • 이러한 연구들은 original search query와 연관된 추가적인 정보를 유저로부터 얻기 위해 interactive한 interfaces를 사용하였다. 이는 attribute-like sketches, temporal context, color, spatial position, cues from the Kinect sensors 등의 정보를 포함한다.
  • 이와 비교하여, 본 논문에서 제시하는 대화 기반 video retrieval framework에서 이들 접근법에 대해 상호보완적이다. 특히, 위에 나열한 단서들(sketches 등)과 대화 내용을 결합하는 것은 분명히 video retrieval 정확도를 높여 줄 것이라 믿는다고 저자들은 밝히고 있다.

3. Video Retrieval using Dialog

여기서는 본 논문에서 제시하는 framework인 ViReD를 소개한다.

task의 목표는

  • 유저의 initial text query $T$와
  • 직전까지 생성된 dialogue history $H_{t-1}$가 주어지면
  • 가장 연관성이 높은 $k$개의 영상 $V_1, V_2, …, V_k$ 을 찾는 것

이전 연구들과의 차이점을 간단히 아래 그림에 나타내었다.

요약하면, video retrieval 모델은 처음 query만 갖고 영상을 찾는 것이 아니라 query와 이전 history를 참조해서 도움이 될 만한 정보를 얻기 위한 질문을 생성하고, 거기에 맞는 답을 생성하고, 이를 여러 차례 반복한 뒤 최종적으로 관련성 있는 영상을 찾는 방식이다.

3.1 Question Generator

Question Generator는 다음 입력을 가지고 있다.

  • initial text query $T$
  • $t-1$ 시점에 찾아놓은 top $k$의 영상
  • 직전까지 생성된 대화 로그(dialogue history) $H_{t-1}$

영상 정보를 매번 처리하긴 힘드니 AVSD 데이터셋에서 학습된 Vid2Sum video caption model을 사용하여 비디오에 대한 요약문을 생성한다. 즉 영상 $V_1, …, V_k$를 요약문 $S_1, …, S_k$로 치환한다.

이들(query, $k$개의 영상 요약문, 대화 로그)을 모두 붙여서 새로운 입력을 얻고,

[X_q = \text{Concat}(T, S_1, …, S_k, H_{t-1})]

이를 autoregressive language model인 BART의 생성 모델에 집어넣는다.

[q_t = \text{BART}_q(X_q)]

3.2 Answer Generation Oracle

사람이 상호작용하며 대답하는 상황을 모방하려 하였다. 여기서 사용하는 방식은 꽤 폭넓게 쓰일 수 있다.

Answer Generator는 다음 입력을 갖고 있다.

  • $i$번째 영상 $V_i$
  • 이 영상에 대해 Question Generator가 생성한 질문 $q_t$

Question Generator와 비슷하게 Vid2Sum을 사용하여 요약문 $S_i$를 얻고, 이어 붙인 다음 역시 BART에 집어넣는다.

[X_a = \text{Concat}(S_i, q_t)]

[a_t = \text{BART}_a(X_a)]

note: BART는 동일한 구조를 갖지만 weights는 다른 question generator와 answer generator, 두 가지 모델이 있다.

이렇게 각 질문 $q$와 대답 $a$를 $t$ round에 걸쳐서 수행하면 dialogue history를 얻을 수 있다.

[H_t = (\lbrace q_1, a_1 \rbrace, \lbrace q_2, a_2 \rbrace, …, \lbrace q_t, a_t \rbrace).]

생성된 dialog history $H_t$는 이후 video retrieval framework의 추가 입력으로 들어가게 된다.

3.3 Text-to-Video Retrieval Model

VRM(video retrieval model) 은 다음 입력을 받는다.

  • initial text query $T$
  • 이전 dialog history $H_t$

출력은

  • $[T, H_t]$와 각 영상 $V^{(i)}$와의 (정규화된) 유사도를 encode하는 확률분포 $p \in \mathbb{R}^N$

[p = \text{VRM}(T, H_t)]

$p_i$는 $i$번째 영상 $V^{(i)}$이 입력된 textual query $[T, H_t]$가 얼마나 연관되어 있는지를 나타낸다.

VRM은 2가지 주요 구성요소를 가진다. $\theta$는 학습가능한 parameter이다.

  1. visual encoder $F(V; \theta_v)$
  2. textual encoder $G(T, H_t; \theta_t)$

학습하는 동안, 수동으로 labeling된 video retrieval 데이터셋 $\mathcal{X} = \lbrace(V^{(1)}, T^{(1)}, H_t^{(1)}), …, (V^{(N)}, T^{(N)}, H_t^{(N)}))$이 있다고 가정한다. $T^{(i)}, H_t^{(i)}$는 각각 영상 $V^{(i)}$에 대한 text query와 dialog history를 나타낸다.

  • visual encoder는 video transformer encoder를 사용하여 visual representation $f^{(i)} = F(V^{(i)}; \theta_v), f^{(i)} \in \mathbb{R}^d$를 얻는다.
  • textual encoder는 DistilBERT를 사용하여 textual representation $g^{(i)} = G(T^{(i)}, H_t^{(i)}; \theta_t), g^{(i)} \in \mathbb{R}^d$를 얻는다.

visual과 textual encoder를 같이 학습시키는데, 목적함수는 video-to-text와 text-to-video matching loss의 합을 최소화하는 것을 사용한다.

  • $B$는 batch size
  • $f^{(i)}, g^{(j)}$는 $i$번째 영상, $j$번째 영상에 대한 text embedding을 나타낸다.

여기서 각 batch 내의 text-video($i, i$) 쌍은 positive, 나머지 전부($i, j$)는 negative로 사용하였다.

추론하는 동안에는,

  • 학습된 textual encoder로 $g = G(T, H_t; \theta_t), g \in \mathbb{R}^{1 \times d}$를 추출한다.
  • $N$개의 모든 영상 $V^{(i)}$에 대해 visual embedding $f^{(i)} = F(V^{(i)}; \theta_v)$를 얻는다.
  • visual embedding들을 전부 쌓아서 single feature matrix $Y = [f^{(1)}, …, f^{(N)}],Y \in \mathbb{R}^{N \times d}$를 얻는다.
  • single textual embedding $g$와 visual embeddings $Y$를 normalized dot product하여 video retrieval 확률분포 $p \in \mathbb{R}^{1 \times N}$을 계산한다.

즉,

[p = \text{Softmax}(gY^\top)]

앞으로는 단순하게 나타내기 위해 $p = \text{VRM}(T, H_t)$와 같이 쓴다.


4. Information-Guided Supervision for Question Generation

상호작용 중 질문을 함으로써 최대한 많은 정보를 얻으려는 노력은 반드시 필요하다. 이때 Question Generator는 다음에 대한 이해를 하고 있어야 한다:

  1. 이미 얻은 정보(e.g. initial query와 dialogue history)
  2. 유저에게 전달할, 잠재적인 가능성이 있는 영상들에 대한 현재 belief 및 모호성(이는 현재까지 찾아놓은 top $k$개의 후보 영상들을 통해 얻는다)
  3. 새로운 질문을 통해 얻게 된 잠재적인 정보 획득(e.g. 특정 질문을 함으로써 획득하게 될 것이라고 기대되는 성능 향상)

이를 위해 RL 방법 등이 도입되었으나 본 문제에서 다루는, 취할 수 있는 action이 너무 많고(자유형식 자연어 질문은 무한하다) 얻을 수 있는 피드백은 한정적인(성능이 몇 %나 향상되었는가) 상황에서는 큰 도움이 되지 못한다. 그래서 본 논문에서는 information-guided question generation supervision (IGS) 를 제안한다.

각 영상 $V^{(1)}, i \in \lbrace 1, …, N \rbrace$에 대해서 사람이 만든 QA가 각 $m$개씩 있다고 가정한다.

[D^{(i)} = \lbrace D_1^{(i)}, …, D_m^{(i)} \rbrace]

AVSD 데이터셋처럼 각 영상에 대해 독립적으로 데이터가 모아져 있다.

여기서 IGS를 통해 “가장 많은 정보를 얻을 수 있는” 질문을 고르는 과정을 거친다.

$T^{(i)}$를 $V^{(i)}$에 대한 textual initial query라 하자. 그리고 $t$번째 round의 dialogue history $H_t^{(i)}$를 얻은 이후 지금까지 골라 놓은 top-$k$ 영상에 대한 요약문 $S_{t, 1}^{(i)}, …, S_{t, k}^{(i)}$을 얻는다.

여기서, 질문/답변 생성기에서 생성한 $(q, a)$를 $D^{(i)}$에 그대로 넣지 않고, retrieval 성능을 가장 높일 수 있을 만한 qa 쌍을 찾아 history에 추가한다.

여기서 argmax의 항은 $p_i$와 같다. 이 과정을 통해 얻은 “best question”은 $t+1$번째 round에서 생성할 question의 target이 된다.

$T, S, H$를 concat해서 $\text{BART}_q$의 입력으로 주게 된다.

target 질문/대답은

[H_{t+1}^{(i)} = H_t^{(i)} \cup \lbrace(q_{t+1}^{(i)}, a_{t+1}^{(i)}) \rbrace]

로 추가되며 $t+2$ round도 비슷하게 진행된다.

여기서 $\mathcal{D}_{t+1} $는

$\mathcal{D}_{t}$에 의존하므로 질문을 생성할 때는 이전 history를 고려하며 생성하게 된다.
즉 각 round마다 이전 기록을 고려하며 가장 informative한 질문을 생성할 수 있게 된다.

또 $\mathcal{D}_1 \cup \mathcal{D}_2 \cup … \cup \mathcal{D}_M $은
question generator($\text{BART}_q$)의 supervised 데이터셋으로 작용한다.


5. Experiments

5.1 Dataset

  • AVSD 데이터셋 사용
  • 7,985 train, 863 val, 1,000 test video

5.2 Implementation Details

5.2.1 Question Generator

  • $\text{BART}_{\text{large}}$ 사용
  • 질문 최대 길이 120
  • size 10의 beam search
  • batch size 32
  • 5 epochs

5.2.2 Answer Generator

  • $\text{BART}_{\text{large}}$ 사용
  • 답변 최대 길이 135
  • size 8의 beam search
  • batch size 32
  • 2 epochs

5.2.3 Video Retrieval Model

  • Frozen-in-Time(FiT) codebase 사용
  • 20 epochs, batch size 16, early stopping for 10 epochs
  • AdamW optimizer($3e^{-5}$)

5.2.4 Vid2Sum Captioning Model

  • 5 epochs, 문장 최대길이 25

5.3 Evaluation Metrics

  • Recall@k($k = 1, 5, 10$), MedianR, MeanR 사용
  • Recall@k는 $k$개의 후보 영상 중 실제 정답 영상이 포함되는지를 가지고 평가함(높을수록 좋다)
  • MeanR과 MedianR은 실제 정답 영상이 후보 영상 중 몇 번째에 나타냈는지 평균과 중간값을 내는 것으로 낮을수록 좋다.
  • 3번씩 실험하여 평균함

5.4 Video Retrieval Baselines

  • LSTM
  • Frozen-in-Time
  • Frozen-in-Time w/ Ground Truth Human Dialog

6. Results and Discussion

6.1 Quantitative Video Retrieval Results

  • Pretraining한 FiT가 LSTM을 크게 앞선다.
  • Dialog의 존재 유무는 차이가 상당히 크다.
  • 몇 턴의 대화(qa)를 사용해야 하는지 실험한 결과 3번이 가장 좋았다. (그래서 표 1에서는 3번으로 실험함)

6.2 Video Question Answering Results

  • VX2TEXT와 ViReD가 좋은 성능을 보인다.
  • Question Generator를 Human subject로 대체하였을 때 성능을 아래 표에서 비교하였다. Human subject로 대체하였을 때도 비슷하게 작동한다는 것은 본 논문에서 제안하는 시스템이 실제 상황과 잘 맞으며 신뢰도 있게 작동한다는 것을 의미한다고 한다.

6.3 Ablation Studies

  1. IGS가 있을 때는 없을 때보다 R1 metric으로 4.3%만큼 좋다.
  2. Question Gnerator에서 Retrieved Video를 사용한 경우 R1에서 3.9%만큼 향상되었다.
  3. Question Gnerator에서 Video input은 4개가 적당하다.
  4. 언어모델은 BART large가 가장 좋았다.

6.4 Qualitative Results

요건 그림을 살짝 보는 것이 낫다.

각 round별 dialog는 video retrieval 성능을 높이고 있음을 주장하고 있다.


7. Conclusions

  • dialog를 사용한 비디오 검색을 위한 대화형 프레임워크인 ViReD를 제안하였다.
  • dialog를 사용했을 때가 그렇지 않을 때보다 훨씬 효과적임을 보였다.

요약하면, 이 논문의 방법은

  1. 개념적으로 간단하고,
  2. AVSD 데이터셋에 대한 대화형 비디오 검색 작업에 대한 SOTA를 달성하고
  3. human subject와 같은 실제 환경으로 일반화할 수 있다.

추후 연구는 다른 VL task로도 확장하는 것이다.


Comment  Read more