딥러닝(DL)/논문 리뷰

Table-to-Text Generation with Effective Hierarchical Encoder on Three Dimensions (Row, Column and Time) (IJCNLP 2019 )

Song 컴퓨터공학 2024. 1. 17. 01:19

Table-to-Text generation을 위한 Efficient Hierachical Encoder을 제안하는 논문입니다.

이번 논문의 모델은 3개의 Layer로 구성되어 있습니다.

1) Record Encoder 2) Record Fusion gate 3) Row-level Encoder (content selection gate) 로 구성됩니다.

 

1) 행 차원, 열 차원, 시간 차원 총 3차원에 대해 self-attention 등의 기법을 사용해 정보를 추출하여 각 context vector 생성

2) 이를 Record Fusion gate에서 통합하여 하나의 Cell representation을 만듭니다.

3) Row-level Encoder에서는 Cell representation 들에 대해 mean-pooling을 하여 Row-Representation을 뽑아내고,

4) 마지막 최종적으로 디코더에서 Row attention과 Cell attention을 종합하여(Dual attention)

5) Attention distribution에 따른 Table-to-text generation을 수행합니다.

 

논문에서 사용되는 Baseline model은 Seq2Seq with attention 모델의 디코더와 조건부 복사가 사용됩니다.

 

틀린 부분이 있을 수 있으니 틀린 부분 발견하시면 댓글로 남겨주세요!

행 차원, 열 차원, 시간 차원의 정보를 통합하는 계층적 인코더의 아키텍처


Table-to-text Generation with Effective Hierarchical Encoder on Three Dimensions (Row, Column and Time)

Abstract

Table-to-text generation을 위한 Seq2Seq 모델은 눈에 띄는 발전을 이루었지만, one dimension 모델링에는 부적합합니다. 이는 테이블은 여러 행과 열로 구성되어 있기 때문입니다. 즉, 테이블 인코딩이 일차원 시퀸스나 레코드 집합에만 의존하면 안된다는 것을 의미합니다. 두 번째로 대부분의 테이블은 시계열 데이터이기 때문입니다. 이는 현재 테이블에 대한 설명이 과거 데이터의 영향을 받을 수 있다는 것을 의미합니다.  

본 논문은 앞서 언급한 문제들을 해결하기 위해 동일한 행에 있는 다른 레코드들을 고려하여 각 테이블 셀을 모델링할 뿐 아니라 동일한 열에 있는 다른 셀의 context에서, 혹은 각각의 time dimension에 대한 기록 데이터를 사용해 각 테이블 셀을 모델링하여 테이블 표현을 강화합니다. 

또한, table cell fusion gate를 제안합니다. 이는 각 차원의 행, 열 및 시간 차원의 표현을 하나의 밀집 벡터로 결합하는 역할을 합니다.

1 Introduction

Table-to-text generation은 numerical table의 요약을 생성하는 것을 목표로 하는 자연어 처리의 한 분야입니다. 관련 메서드는 2개의 카테고리, 파이프라인 모델End-to-end model 로 나눌 수 있습니다. 

  • Pipeline model
    • 파이프라인 모델은 여러 단계로 구성되며, 각 단계는 특정한 부분 작업을 처리
    • 예를 들어, 표를 구문 분석하고, 표의 각 행과 열을 이해하며, 이 정보를 기반으로 텍스트를 생성하는 단계 등
    • 장점:
      • 모델 설계 용이성: 각 단계는 특정 작업에 중점을 둠으로써 모델 설계가 상대적으로 용이
      • 해석 가능성: 각 단계의 출력이 명확하게 해석 가능하며, 각 부분의 성능을 개별적으로 조정 가능
    • 단점:
      • 오류 전파: 각 단계에서 발생한 오류가 다음 단계로 전파될 수 있다.
      • 최적화 어려움: 각 단계를 개별적으로 최적화하기 어렵다.
  • End-to-end model
    • 하나의 통합된 아키텍처에서 모든 작업을 처리. 표의 입력을 받아 즉시 텍스트를 생성
    • 장점:
      • 간단한 아키텍처 : 하나의 모델이 모든 작업을 처리하기에 구현이 간단할 수 있다.
      • 오류 전파 감소 : 전체 시스템의 최적화가 쉽다.
    • 단점:
      • 복잡성 : 다양한 task를 한 모델이 수행하기 때문에 복잡도가 올라갈 수 있다.
      • 해석의 어려움 : 전체 모델의 내부 동작을 해석하기 어렵다.

 

해당 논문은 NBA 선수 및 팀의 통계 테이블을 요약하여 제공하는 ROTOWIRE 데이터셋을 사용합니다. 위 Figure 1은 그 Table의 예시와 그에 상응하는 생성 요약의 예시를 보여줍니다. 테이블은 테이블 행 헤더, 테이블 열 헤더, 테이블 셀을 포함하는 형식적인 구조를 가지고 있습니다. 예를 들어 "AI Jefferson"은 플레이어를 나타내는 테이블 행 헤더이고, "PTS"는 점수를 나타내는 테이블 열 헤더이며, "18"은 테이블 셀의 값, 즉 "AI Jefferson이 18점을 획득함" 을 나타냅니다.

 

이와 관련된 여러 모델이 제안되었는데, 일반적으로 테이블의 레코드를 개별적으로, 혹은 긴 시퀸스로 인코딩하고 약간의 수정을 거친 Standard Seq2Seq 디코더에 의해 요약을 생성합니다. 기존의 선행연구들은 레코드 set이나 긴 시퀸스로 테이블을 인코딩하는 방식을 사용해왔지만, 본 논문에서는 긴 시퀸스나 레코드 세트로 테이블을 인코딩하는 것은 적합하지 않다고 주장합니다. 왜냐하면 테이블은 Figure 1에서 보이는 것처럼 여러 플레이어와 다양한 유형의 정보로 구성되어 있기 때문입니다. 이전의 인코딩 접근 방식은 테이블을 레코드 세트, 혹은 1차원 시퀸스로만 간주했으며 이로 인해 다른 (열)차원의 정보가 손실되었습니다.

2번째 이유로 테이블 셀은 시간에 따라 변하는 시계열 데이터로 구성되기 때문입니다. 즉, 때로는 과거 데이터가 모델이 콘텐츠를 선택하는데 있어 도움이 될 수 있습니다.

게다가 인간이 농구 리포트를 작성할 때, 그는 현재 경기에서 선수들의 뛰어난 활약에 중점을 둘 뿐 아니라, 최근 경기에서 선수들의 활약들도 요약하게 될 것입니다. Figure 1 의 gold texts 를 확인해보면 이번 경기에서의 Al Jefferson의 뛰어난 활약이 언급될 뿐 아니라 "지난 3경기 중 그가 double-double을 기록한 것이 이번이 두 번째" 라고 적혀있습니다. 또한 Gold text는 John wall 의 double-double 퍼포먼스도 비슷한 방식으로 요약합니다. 최근 경기에서 플레이어의 성과를 요약하려면 기본 모델에는 없는 기록 데이터(시간 차원)과 관련된 테이블 셀 모델링이 필요합니다. 기본 모델 CC(Conditional Copy)는 Gerald henderson에 대해 이를 요약하려 시도하지만 이번 경기에서 double-double을 얻지 못했기 때문에 잘못된 진술을 생성한다는 것을 확인할 수 있습니다.

 

앞서 언급한 문제를 해결하기 위해, 행, 열 및 시간 차원 정보를 동시에 모델링하는 계층적 인코더(hicrarchical encoder)를 제안합니다. 좀 더 자세히, 모델은 3개의 레이어로 나누어져 있습니다. 첫 번째 레이어는 테이블 셀의 표현을 학습하는 데 사용됩니다. 구체적으로 행, 열 및 시간 차원에서 테이블 셀의 3가지 표현을 얻기 위해 3개의 self-attention model을 사용합니다.

두 번째 레이어에서는 record fusion gate를 설계하여 이러한 3차원에서 더 중요한 표현들을 식별하고, dence vector로 결합합니다. 

세 번째 레이어에서는 mean pooling을 사용해 동일한 행에서 이전에 얻은 테이블 셀 표현을 테이블 행 표현으로 병합합니다. 그 후 content selection gate (선행연구) 와 함께 self-attention을 사용하여 이를 통해 중요하지 않은 행 정보를 필터링합니다.

 

이러한 시도는 neural table-to-text generation에서 열과 시간 차원에 대한 정보까지 고려하여 모델링한 첫 번째 시도입니다. ROTOWIRE에 대해 실험을 진행하고, 기존 시스템 및 SOTA보다 성능이 뛰어난 결과를 얻어냈습니다. 

 

 

2 Preliminaries

2.1 Notations

모델에 대한 입력 : $S=\{ s^1, s^2, s^3 \}$ 이고 $s^i$들에는 각각 홈팀 선수의 성적, 원정팀 선수의 성적, 팀 전체 성적에 대한 기록이 포함됩니다.

또한 테이블의 각 셀을 레코드로 간주합니다. 각 레코드가 $r$일 때 노테이션은 다음과 같습니다.

  • value, 값 $r.v$,                 Ex) 18
  • Entity, 엔터티 $r.e$           Ex) Al Jefferson
  • type, 유형 $r.c$                Ex) POINTS
  • feature $r.f$                     Ex) visiting

4번째의 feature은 선수 혹은 팀이 홈에서 하는지 원정인지를 나타내는 정보입니다. 이처럼 4가지 유형의 정보로 구성이 됩니다.

각 플레이어 또는 팀은 테이블에서 한 행을 차지하고 각 열에는 포인트, 어시스트 등과 같은 기록 유형이 포함됩니다. 또한 테이블에는 경기가 발생한 날짜가 포함되어 있으며 $k$는 기록 날짜를 나타냅니다. 기록을 위한 타임라인도 있는데 이의 구성은 Section 2.2에 자세히 설명되어 있습니다.

단순화를 위해 다음 섹션에서는 테이블 아이디 $l$, 그리고 기록 날짜 $k$를 생략하고 $r_{i,j}$ 로 테이블의 $i$번째 행과 $j$번째 열의 레코드를 나타냅니다. 

레코드가 동일한 테이블에서 왔다고 하고 $k$는 언급된 레코드의 날짜라 가정합니다. 이런 정보가 주어지면 테이블을 설명하는 텍스트 $y=(y_1, ... , y_t, ..., y_T)$를 생성할 것입니다. $T$는 텍스트의 길이를 나타냅니다.

 

2.2 Record Timeline Constrcution

본 논문에서는 레코드에 대한 타임라인 $tl = \{ tl_{e, c}\}_{e=1, c=1}^{E,C}$을 구성합니다. $E$는 개별 레코드 개체 수를 나타내고, $C$는 레코드 유형의 수를 나타냅니다. 각 타임라인 $tl_{e,c}$에 대해 먼저 데이터 세트에서 동일한 entity $e$와 type $c$를 사용하여 레코드를 추출합니다. 그 다음 레코드 날짜에 따라 오래된 것부터 새로운 것까지 순서대로 정렬합니다. 이 시퀸스는 타임라인 $tl_{e,c}$로 간주됩니다. 예를 들어 아래 그림의 왼쪽 하단의 Timeline 부분은 Al Jefferson 엔터티와 PTS(포인트) 유형에 대한 타임라인을 나타냅니다.

2.3 Baseline Model

Seq2Seq with attention 모델과 조건부 복사 모델을 Baseline으로 사용합니다. 학습 중 테이블 $S$와 해당 참조 텍스트 $y$가 주어지면 모델은 조건부 확률 $P(y|S)=\prod_{t=1}^T P(y_t|y_{<t}, S)$를 최대화합니다. 이 때 $t$는 디코더의 timestep을 의미합니다. 

먼저, 테이블의 $i$번째 행과 $j$번째 열의 각 레코드에 대해 1-layer MLP를 활용하여 각 레코드의 4가지 유형 정보 임베딩을 밀집 벡터 $r_{i,j}$로 인코딩 합니다. [$r_{i,j}= ReLU(\mathbf{W}_a [r_{i,j}·e;r_{i,j}·c; r_{i,j}·v; r_{i,j}·f; ]+\mathbf{b}_a$]

이 때 $\mathbf{W}_a , \mathbf{b}_a$는 훈련 가능한 파라미터입니다. 각 정보 유형에 대한 단어 임베딩은 훈련이 가능하며, 훈련 전에 무작위로 초기화됩니다. $[;]$는 vector concatenation을 의미합니다.

그 후 조건부 확률 $P(y_t|y_{<t},S)$를 모델링하기 위해 Attention 및 조건부 복사가 포함된 LSTM 디코더를 사용합니다.

Baseline 모델은 어텐션 메커니즘을 사용해 입력 테이블에서 관련 레코드를 찾고 이를 context vector로 표현합니다. 

Baseline 모델은 3개의 테이블 구조를 사용하지 않으며, 모든 테이블의 모든 레코드에서 attention weight $\alpha_{y, i',j'}$를 정규화합니다.

 

그 다음으로 context vector를 디코더의 hidden state $d_t$와 결합하고 Vocabulary로부터 단어를 생성하는 데 사용되는 새로운 attentional hidden state $\tilde{d_t}$를 형성합니다. [ $P_{gen}(y_t|y_{<t},S) = softmax(\mathbf{W}_d \tilde{d_t}+ \mathbf{b}_d )$ ]

또한 Baseline model에는 조건부 복사 메커니즘도 적용됩니다. 테이블에서 복사할지 아니면 Vocabulary에서 생성해낼지를 결정하기 위해 변수 $z_t$를 도입합니다. 테이블에서 복사하는 확률은 $P(z_t=1|y_{<t},S)=sigmoid(w_e·d_t+b_e)$ 입니다. 그 다음 테이블 $S$와 이전에 생성된 단어 $y_{<t}$가 주어지면 $t$번째 단어를 생성할 조건부 확률 $P(y_t|y_{<t}, S)$를 다음과 같이 decompose 합니다.

 

 

3 Approach

본 섹션에서는 테이블 표현을 향상시키기 위해 입력 데이터의 3차원 구조를 활용하는 효과적인 계층적 인코더를 제안합니다. 이 3가지 차원에는 행, 열 및 시간이 포함됩니다. Figure 2에서 볼 수 있듯 인코딩 중 model은 record encoders, record fusion gate, row-level encoder을 포함한 3개의 레이어로 구성됩니다. 섹션 2.1에 설명한대로 테이블 $S$가 주어지면 먼저 각 차원의 레코드를 각각 인코딩합니다. 그 후 record fusion gate를 사용해 이를 dense vector로 결합합니다. 그 후, content selection gate를 사용해 평균 풀링 및 self-attention을 통해 row-level 표현을 얻습니다. 디코딩 단계에서 디코더는 먼저 중요한 행을 찾은 다음 텍스트를 생성할 때 중요한 레코드를 참조합니다.

3.1 Layer 1: Record Encoders

3.1.1 Row Dimension Encoder

레코드를 모델링할 때, 동일한 행에 있는 다른 레코드가 유용할 수 있습니다. 행의 레코드가 순차적이지 않기 때문에 선행 연구와 유사한 self-attention 네트워크를 사용하여 다른 레코드의 맥락에서 레코드를 모델링합니다.

$i$번째 행과 $j$번째 열의 레코드에 대한 행 차원 표현을 $r_{i,j}^{row}$라고 표기합니다.

행 차원에 대한 context vector $c_{i,j}^{row}$를 얻어야 하는데 이는 동일한 행 차원의 다른 레코드들까지 고려하여 생성합니다. 같은 행 $i$에 있는 레코드들에 대해 $\alpha_{i,j,j'}^{row} ∝ exp(r_{i,j}^T\mathbf{W}_or_{i,j'})$ 로 전체적으로 정규화됩니다.

 

$$ c_{i,j}^{row}= \sum_{j',j'≠j} \alpha_{i,j,j'}^{row}r_{i,j'} $$

 

그 이후 레코드의 표현을 $c_{i,j}$와 결합하고 행 차원 레코드 표현 $r_{i,j}^{row}=tanh(\mathbf{W}_f[r_{i,j};c_{i,j}^{row}]$를 얻습니다. 이 때 $\mathbf{W}_o, \mathbf{W}_f$는 모두 훈련 가능한 파라미터들입니다.

3.1.2 Column Dimension Encoder

각 입력 테이블은 여러 행과 열로 구성됩니다. 표의 각 열에는 포인트와 같은 한 가지 유형의 정보가 포함됩니다. 행에 있는 정보 중 적은 수 만이 높은 점수나 다른 유형의 정보를 갖고 있고, 이는 중요한 정보가 될 수 있습니다. 예를 들어 Figure 2 의 Column Dimenstion 부분에서 "Al Jefferson"이 "Gary Neal"보다 더 중요한데, 이는 전자가 더 중요한 포인트를 가지고 있기 때문입니다.

따라서, 레코드를 인코딩할 때 열의 다른 기록과 비교하면 해당 기록이 행에게 반영하는 성과 수준을 이해하는 데 도움이 됩니다. 3.1.1에서 사용된 것과 유사한 self-attention을 사용합니다. 

$r_{i,j}^{col}$ 을 $i$번째 행과 $j$번째 열의 레코드에 대한 열 표현으로 표기합니다. 열 차원의 context vector $c_{i,j}^{col}$를 얻기 위해서 위와 비슷한 과정을 따릅니다. 아래 식에서 $\alpha_{j,i,i'}$은 다른 행인 $i'$으로부터 오지만 같은 $j$열에 있는 레코드 전체에서 정규화됩니다. 열차원 표현 $r_{i,j}^{col}$는 행 차원과 유사하게 얻어집니다.

 

$$ c_{i,j}^{col}= \sum_{i',i'≠i} \alpha_{i,j,j'}^{col}r_{i,j'} $$

 

3.1.3 Time Dimension Encoder

일부 표현에는 과거(시간 차원)에 대한 정보가 필요합니다. 따라서 레코드 $r_{i,j}$의 이력 정보(history information)이 중요합니다. Section 2-2에서 구성한 것 처럼 타임라인이 구성됩니다. 타임라인을 형성하는 방법을 다시 간단히 언급하자면 레코드 $r_{i,j}$와 동일한 엔터티의 동일한 유형에 대한 정보를 날짜 $k$이전의 레코드들을 모두 수집합니다. 그냥 한 정보를 시간에 따라 모두 수집한다는 말과 동일합니다. 이 때 일부 기록의 경우 이력 정보가 너무 길어질 수 있기 때문에 범위(window)를 지정합니다. 가장 최근의 Timeline 을 history 창 내에 유지하고, 이를 $hist(r_{i,j}$로 표기합니다.

 

self-attention을 사용해 이런 종류이 정보를 시간 차원에서 모델링합니다. 그러나 행과 열에서는 순서가 지정되지 않았지만, history information은 순차적, 즉 순서에 영향을 받습니다. 따라서 학습이 가능한 위치를 지정하는 position embedding $emb_{pos}(k')$ 이 필요하고 이를 레코드 표현에 추가하여 새로운 레코드 표현 $rp_{k'}$을 얻어냅니다.

새로운 레코드 표현 $rp_{k'}$는 $r_{i,j}$와 동일한 엔티티, 유형을 갖지만 $k$이전의 날짜 $k'$의 레코드에 대한 표현을 의미합니다.

$r_{i,j}^{time}$을 $i$번째 행과 $j$번째 열의 레코드에 대한 history 표현으로 표기합니다. history 차원의 context vector는 window 내의 history records를 참고하여 얻습니다. 이 때는 1-layer MLP를 스코어 함수로 사용하고, $\alpha_{k,k'}^{time}$은 history window 내에서 정규화됩니다. 이 후 과정은 행 차원과 유사하게 시간 차원에 대한 표현 $r_{i,j}^{time}$을 얻어낼 수 있습니다.

 

$$ \begin{align*} \alpha_{k,k'}^{time} ∝ exp(score(rp_k, rp_{k'})) & \\ c_{i,j}^{time}= \sum_{k'<k} \alpha_{k,k'}^{time}rp_{k'} & \end{align*} $$

 

 

3.2 Layer 2: Record Fusion Gate

3차원에 대한 레코드 표현을 얻은 후, 어떤 표현이 기록의 정보를 반영할 때 더 중요한 역할을 하는지 파악하는 것은 중요합니다. 레코드가 만약 동일한 열의 다른 행 레코드보다 뛰어난(매우 높거나 낮은 수치?로 이해하고 있습니다 아무튼 영향력이 열이 큰 경우에 대해) 경우, 열 차원에 대한 표현은 전체 레코드 표현을 구성할 때 더 높은 가중치를 가질 수 있습니다.

혹은 레코드가 이전의 일치 항목과 크게 달라지는 경우(값이나 수치가 급하게 변동하는 것을 캐치하는 경우) 시간 차원에 대한 표현의 가중치가 더 높을 수 있습니다. 또한 일부 유형의 정보는 행 차원 표현에 반영될 수 있는 텍스트에 더 자주 나타날 수도 있습니다.

=> 한 문장으로 요약하면, 3가지 차원에 대해 각각 중요한 정도가 다를 수 있고, 이에 대한 가중치 정리(계산)가 필요하다

 

따라서 본 논문에서는 3가지 차원 표현을 모두 적응적으로 결합(adaptively combine)하는 record fusion gate를 제안합니다. 가장 먼저, $ r_{i,j}^{row}, r_{i,j}^{col}, r_{i,j}^{time} $을 모두 concatenate 합니다. 그 이후 1-layer MLP를 사용해 레코드 정보에 대한 기본 표현, $ r_{i,j}^{gen} $을 얻습니다. 그런 다음 각 차원에 대한 표현들과 $ r_{i,j}^{gen} $을 각각 비교하면서 최종적인 레코드 표현을 위한 가중치를 얻어냅니다. 

score function으로 1-layer MLP를 사용하며 다음과 같은 수식들로 각 차원 표현에 대한 가중치를 계산합니다.

$$ \begin{align*} \alpha_{fus}^{col} ∝ exp(score(r_{i,j}^{col}, r_{i,j}^{gen})) \\ \alpha_{fus}^{row} ∝ exp(score(r_{i,j}^{row}, r_{i,j}^{gen})) \\ \alpha_{fus}^{time} ∝ exp(score(r_{i,j}^{time}, r_{i,j}^{gen})) \end{align*} $$

 

그리고 최종적으로 fusion 레코드 표현(Cell representation) $\tilde{r}_{i,j}$를 3 차원에 대한 가중합으로 구합니다.

 

$$ \tilde{r}_{i,j}= \alpha_{fus}^{row} r_{i,j}^{row} + \alpha_{fus}^{col} r_{i,j}^{col} + \alpha_{fus}^{time} r_{i,j}^{time} $$

 

=> 요약: 3차원에 대한 정보 concat 하고, 1-layer MLP로 임베딩 시켜서 일반적인 표현 하나 만든 다음에, 그거랑 각 차원의 표현들과 score function(이것도 1-layer MLP)으로 연산해서 가중치 계산하고, 최종적인 가중합으로 Cell representation $\tilde{r}_{i,j}$를 반환

 

3.3 Layer 3: Row-level Encoder

각 행에 대해 행의 전반적인 performance를 반영하기 위해 mean pooling을 통해 결합합니다. $C$는 열 수를 나타냅니다.

$$ row_i = MeanPooling(\tilde{r}_{i,1}, \tilde{r}_{i,1} , ..., \tilde{r}_{i,C})$$  

 

그 후, content selection gate $g_i$를 채택하여 새로운 표현 $\tilde{row}_i = g_i ⊙ row_i$를 얻어냅니다. $\tilde{row_i}$는 $row_i$에서 각 행의 context에 따라 더 중요한 정보를 뽑아낸 것으로 이해하면 될 것 같습니다. (좀 더 자세한 내용은 "Data-to-text generation with content selection and planning" 논문을 참조. 해당 논문에서 나온 개념이 context selection gate)

 

3.4 Decoder with Dual Attention

레코드 fusion gate가 있는 Record-encoder는 레코드 수준(Cell 수준)의 표현을 제공하고, Row-level encoder는 행 수준의 표현을 제공합니다. 본 논문에서 제시하는 모델은 디코더를 살짝 수정해서 먼저 중요한 행을 선택한 다음, 각 단어를 생성할 때 레코드를 어텐션할 수 있도록 합니다(Dual attention).

 

Sectoin 2.3의 표기에 따라 각 행에 대한 Attention 가중치를 $\beta_{t,i} ∝ exp(score(d_t, row_i))$로 얻을 수 있습니다. $\beta_{t, i}$는 3 테이블 모두의 모든 행 수준의 표현에서 정규화됩니다. 

 

그리고 각 레코드(Cell)에 대한 Attention 가중치를 $\gamma_{t,i,j} ∝ exp(score(d_t, \tilde{r}_{i,j}$로 얻을 수 있습니다. $ \gamma_{t,i,j}$는 같은 행의 레코드에 대해 정규화 됩니다.

 

Row-level attention $\beta_{t, i}$ 를 guidance로 사용하여 행의 일반적인 표현을 선택하는데 사용합니다. 그 이후 이를Record-level attention $ \gamma_{t,i,j}$ 를 re-weight 하는 데 사용하고, Base model의 attention 을 $\tilde{\alpha_{t, i, j}}$로 변경합니다. 모든 테이블의 모든 레코드에서 $\tilde{\alpha_{t, i, j}}$의 합은 1이 됩니다.

 

$$\tilde{\alpha_{t, i, j}}=  \beta_{t, i} \gamma_{t,i,j} $$

 

=> 뭔가 복잡해보이지만, 결론적으로 Dual attention을 취한다는 것과 같다. 행에 대한 attention과 Cell에 대한 attention을 종합하여 Cell에 대한 최종적인 Attention을 업데이트 한다는 의미로 해석했습니다.

 

3.5 Training

입력 테이블의 배치를 $\{S\}_G$로, reference output 을 $\{Y\}_G$로 주어지면, negative log-likelihood를 모델의 loss function으로 사용합니다. $L$을 최소화하며 모델을 학습하고, 이 때 $G$는 배치 내의 examples의 수, $T_g$는 $g$번째 reference 길이를 나타냅니다.

 

$$ L=-\dfrac{1}{G}\sum_{g=1}^G\sum_{t=1}^{T_g} logP(y_{t,g}|y_{<t,g}, S_g)$$

 

 

4 Experiments

4.2 Implementation Details

  • Word Embedding / LSTM decoder hidden size : 600
  • decoder's layer : 2
  • dropout 0.3
  • Input feeding
  • Training
    • lr : 0.15
    • Truncated BPTT(Block length 100)
    • batch size : 5
    • lr decay 0.97
  • Inference
    • beam size : 5
    • history window size : {3, 5, 7}

More Details : https://github.com/ernestgong/data2text-three-dimensions/

 

GitHub - ErnestGong/data2text-three-dimensions

Contribute to ErnestGong/data2text-three-dimensions development by creating an account on GitHub.

github.com

4.3 Results

4.3.3 Qualitative Example

6 Conclusion

이 연구에서는 행, 열 및 시간 차원에서 테이블 표현을 학습하는 Table-to-text generation을 위한 효과적인 계층적 인코더를 제안합니다. 세부적으로 모델은 3차원에서 레코드 표현을 학습하고, 해당 표현을 결합하고 레코드 표현을 기반으로 행 수준의 표현을 얻습니다. 그 다음 디코딩 중에는 중요한 테이블 행을 선택해 Dual attention을 진행합니다. NBA 게임의 벤치마크 데이터셋인 ROTOWIRE를 대상으로 실험을 진행하였고 자동 및 인간 평가 결과 모두 SOTA를 달성했음을 보여줍니다.

 

 

Reference:

https://arxiv.org/abs/1909.02304

 

Table-to-Text Generation with Effective Hierarchical Encoder on Three Dimensions (Row, Column and Time)

Although Seq2Seq models for table-to-text generation have achieved remarkable progress, modeling table representation in one dimension is inadequate. This is because (1) the table consists of multiple rows and columns, which means that encoding a table sho

arxiv.org