pocca2048 / ML-paper-reading

Daily ML paper reading
0 stars 0 forks source link

Representing Numbers in NLP: a survey and a vision #2

Open pocca2048 opened 3 years ago

pocca2048 commented 3 years ago

Conference : NAACL 2021 Link : https://arxiv.org/abs/2103.13136 Authors' Affiliation : University of Southern California TL;DR : 아직 합의된 holistic한 방법은 없다. string-based에서 그나마 좋다고 밝혀진 것은

Summary :

1. Introduction

"11시에 일어났다"와 "11불을 벌었다"에서 11은 큰 차이가 있다. 11을 10으로 바꾸는건 되지만 25로 바꾸는건 안되는 일이다.

quantity와 갯수에 대해서 이해하는 것은 세계를 이해함에 있어서 중요하다.

우리 조상은 numeracy를 언어의 발전과 독립적으로 발전시켜왔다.

하지만 NLP에서는 전처리때 아예 지워버리거나 word와 같은 취급을 하거나, UNK로 붕괴시켜 버린다.

wordpiece같은 데서는 없애진 않지만 임의의 토큰들로 분리시킨다.

최근 논문들에서는 이들이 suboptimal number representation 이란 것을 밝혔다.

BERT는 정답이 숫자이면 span of text일때보다 5배 못한다.

단순히 subword에서 char-level tokenization으로 바꾸는 것이나 decimal 을 scientific notation으로 바꾸는 것만으로 성능이 향상된다.

이 논문에서는 numeracy task에 대한 taxonomy와 (section2) number representation (section3)를 제공한다.

2. Tasks

granularity와 unit라는 2가지 차원에 기반해서 분류한다.

  1. granularity = number의 encoding이 정확한가 아니면 approximate한가 (새는 2개의 다리를 갖는다 vs 존은 대략 180cm이다.)
  2. UInits = number가 abstract (2+3 = 5)한가 아니면 grounded인가 (2 apples + 3 apples = 5 apples). 대충 단위가 있는지인듯.

3. Methods

string-based vs real-based

real-based에서는 computation을 해서 한다.

string-based에서는 number를 surface form으로 본다. 임의의 token id를 assign해서 임베딩을 look up해야한다.

3.1 Taxonomy

3.1.1 String based

LM에서는 디폴트로 number를 string으로 다룬다 (word와 똑같이).

3.1.2 Real based

number encoder를 $f: R \rightarrow R^d$ 로 나타낼 수 있다. 디코더 g는 반대.

3.2 survey of existing methods

3.2.1 string-based

3.2.2 Real-based

4 Results

5 Recommendations

6 Vision for Unified Numeracy in NLP