728x90
위키피디아의 HTML 문서에서 <Table> 형식의 태그만 뽑아내
해당 테이블에 대한 질의응답을 처리하는 것이 목표이다.
원래는 BERT 와 Memory Network 를 통해 QA 를 하려 헀으나 TAPAS 라는 모델이 나와서 이걸 쓰기로 했다.
TAPAS
Weakly Supervised Table Parsing via Pre-Training
테이블에 대해 logical form 없이 질의응답을 처리할 수 있는 모델
TAPAS 정답 타입
- Cell Selection: 정답이 Cell 안에 그대로 있는 부분
- Scalar answer: 정답이 테이블 안에 없고 계산을 통해 정답을 도출
- Ambigous Answer: 정답이 숫자이고 테이블 안에 있는 데이터인데 동일한 값이 있는 경우
예시)3번의 경우 Dory Funk Jr. 와 Gene Kiniski 로 2이지만 Dan Severn 의 No. of reigns 에 2가 있어 같은 2라도 하나는 맞고 하나는 틀린 경우
TAPAS 모델 처리 과정
- Table 과 Question 을 input 으로 받는다.
- Mode 를 선택한다. (Cell Selection or Compute)
- Cell Selection 일 경우 cell select 를 하는 component 만 있다.
- Compute 의 경우 어떤 걸 계산할지 하는 부분이 추가된다.
- 자연어로 질문이 입력된다.
- 모델은 Aggregation Prediction을 통해 compute 일지 cell selection 일지를 결정한다.
- 모델은 Cell Selection 을 통해 테이블에서 cell 을 선택한다.
TAPAS - Input Token
- 입력을 Token 으로 전부 split 한다.
- query 를 문자로 받아 tokenize 한다. 테이블 또한 Tokenize 한다.(첫번째 줄)
- 테이블 데이터가 하나의 String 으로 표현된다. [SEP] ~ 끝까지 - Position Embedding: 단순히 0, 1, 2, 3.. 의 순서이다.
- Segment Embedding: 토큰이 어디 소속되있는지 표시한다.
– SEG0 일 경우 쿼리, SEG1 일 경우 테이블 데이터 이다. - Column Embedding, Row Embedding: (새롭게 도입된것) – 모델에게 테이블이 어떻게 생겼는지 보여준다.
- Rank Embedding: 모델에게 cell 마다 ranking 을 주어 빠른 시간안에 Top, Worst, Best, Highest 와 같은 질문을 처리하게 해준다.
BERT 와 비교
BERT와 TAPAS 의 차이점은 Input Token 이다.
TAPAS의 경우 특수하게 Table data 에 대해 QA 를 처리할 수 있는 모델이다 보니 Table 에 대한 token 이 추가되어있다.
- Row Embedding
- Column Embedding
- Rank Embedding
728x90
'ETC' 카테고리의 다른 글
앱스토어 개발자 계정 승인받았다. (0) | 2020.08.24 |
---|---|
🎓 졸업과제 - Flask Server, Mock Tensorflow Model (0) | 2020.08.07 |
🎓 졸업과제 - Python3, Pycharm, Homebrew update (0) | 2020.07.16 |
WWDC2020 미모지 만들기 (0) | 2020.06.25 |
🍺 BDD - Beer Driven Development (4) | 2020.06.18 |
댓글