brunch

You can make anything
by writing

- C.S.Lewis -

신경망을 사용하여 표들에서 답 찾기

2020년 4월 30일(목) - 구글 AI 리서치 블로그

전 세계 대부분의 정보는 웹이나 데이터베이스 및 문서들에서 찾을 수 있는 표 형식으로 저장됩니다. 여기에는 소비자 제품의 기술 사양에서 재무 및 국가 개발 통계, 스포츠 결과 등이 포함됩니다. 현재 질문에 대한 답변을 찾으려면 이 표들을 수동으로 보거나 특정 질문에 대한 답변을 제공하는 서비스 (예 : 스포츠 결과)를 사용해야 합니다. 이 정보는 자연어를 통해 쿼리 할 수 있는 경우 훨씬 더 접근 가능하고 유용합니다.


예를 들어, 다음 그림은 사람들이 묻고 싶은 여러 질문이 있는 표를 보여줍니다. 이 질문에 대한 답은 한 테이블에서 하나 또는 여러 개의 셀에서 발견되거나 (“Which wrestler had the most number of regins?”) 여러 테이블 셀을 집계해야 할 수도 있습니다 (“How many world champions are there with only one reign?").

[그림 1] 예상 답변이 있는 표와 질문. 답을 선택 (# 1, # 4)하거나 계산 (# 2, # 3) 할 수 있습니다. 

수많은 최근의 접근 방식이 전통적인 의미론적 구문 분석(semantic parsing)을 이 문제에 적용하는데, 여기서 자연어 질문은 데이터베이스에 대해 실행되는 답변을 제공하는 SQL과 같은 데이터베이스 쿼리로 변환됩니다. 예를 들어, "Which wrestler had the most number of regins?" "select count (*) where column ("No. of reigns ") == 1;"과 같은 쿼리에 매핑됩니다. 그런 다음 답을 만들기 위해 실행되었습니다. 이 방법은 구문적으로, 의미적으로 유효한 쿼리를 생성하기 위해 상당한 엔지니어링이 필요하며 스포츠 결과와 같은 특정 테이블에 대한 질문이 아닌 임의의 질문으로 확장하기가 어렵습니다.


ACL 2020에서 승인된 “TAPAS: Weakly Supervised Table Parsing via Pre-training” 논문에서, 우리는 BERT 아키텍처를 확장하여 테이블 형식의 데이터 구조와 함께 질문을 함께 인코딩하여 답변을 직접 가리킬 수 있는 모델을 만드는 다른 접근 방식을 취합니다. 단일 스타일의 테이블에 대해서만 작동하는 모델을 생성하는 대신 이 방법을 사용하면 광범위한 도메인의 테이블에 적용할 수 있는 모델이 생성됩니다. 수백만 개의 위키 백과 테이블에 대한 사전 훈련을 마친 후, 우리의 접근 방식이 3 가지 학문적 테이블 질문-응답(QA) 데이터셋에서 경쟁력 있는 정확성을 보여줍니다. 또한 이 분야에서보다 흥미진진한 연구를 용이하게 하기 위해 GitHub 리포지토리에서 제공되는 Wikipedia 테이블에 사전 훈련된 모델뿐만 아니라 모델 훈련 및 검증을 위한 코드를 오픈 소스로 만들었습니다.


질문을 처리하는 방법

Average time as champion for top 2 wrestlers?”과 같은 질문을 처리하기 위해 모델은 테이블 구조를 인코딩하기 위해 특수한 임베딩으로 확장된 BERT 모델을 사용하여 질문과 행 내용을 행별로 인코딩합니다.


트랜스포머 기반 BERT 모델에 추가된 주요 기능은 구조화된 입력을 인코딩하는 데 사용되는 추가 임베딩입니다. 우리는 열 인덱스, 행 인덱스 및 하나의 특수 순위 인덱스에 대해 배운 임베딩에 의존합니다. 숫자 인덱스의 요소 순서를 나타냅니다. 다음 이미지는 입력에서 이들을 모두 추가하여 트랜스포머 레이어에 공급하는 방법을 보여줍니다. 아래 그림은 왼쪽에 표시된 작은 표와 함께 질문이 어떻게 인코딩 되는지 보여줍니다. 각 셀 토큰에는 열 내에서 행, 열 및 숫자 순위를 나타내는 특수한 포함이 있습니다.

[그림 2]

[그림 2] BERT 레이어 입력 : 모든 입력 토큰은 단어, 절대 위치, 세그먼트(질문 또는 테이블에 속하는지 여부), 열 및 행 및 숫자 순위(열이 있는 경우 셀의 위치)를 포함하는 합계로 표시됩니다. 숫자 값으로 정렬되었습니다).


이 모델에는 1) 각 테이블 셀에 대해 두 개의 출력이 있습니다. 점수는 이 셀이 응답의 일부가 될 확률을 나타내고 2) 최종 응답을 생성하기 위해 적용되는 작업 (있는 경우)을 나타내는 집계 작업입니다. 다음 그림은 “Average time as champion for top2 wrestlers?”이라는 질문에 대해 모델이 “Combined days” 열의 처음 두 셀과 “AVERAGE” 작업을 높은 확률로 선택하는 방법을 보여줍니다.

[그림 3]

[그림 3] 모델 스키마 : BERT 레이어는 질문과 테이블을 모두 인코딩합니다. 모델은 모든 집계 연산에 대한 확률과 모든 테이블 셀에 대한 선택 확률을 출력합니다. "Average time as champion for top 2 wrestlers?" AVERAGE 연산과 숫자인 3,749 및 3,103의 셀은 높은 확률을 가져야 합니다.


사전 훈련

BERT가 텍스트를 학습하는 방법과 유사한 방법을 사용하여 영어 위키 백과에서 추출한 620만 개의 테이블 텍스트 쌍에 대해 모델을 사전 학습했습니다. 사전 훈련 과정에서 모델은 마스크로 교체된 표와 텍스트 모두에서 단어를 재 저장하는 방법을 배웁니다. 모델이 비교적 높은 정확도로 이 작업을 수행할 수 있음을 알았습니다.(마스크된 토큰의 71.4 %가 훈련 중에 보이지 않는 테이블에 대해 올바르게 재 저장됨).


답변만으로 배우기

미세 조정하는 동안 모델은 테이블에서 질문에 대답하는 방법을 학습합니다. 이것은 강력하거나 약한 감독 훈련을 통해 이루어집니다. 강력한 감독의 경우, 주어진 테이블과 질문에 대해 시간과 시간이 많이 걸리고 힘든 프로세스를 선택하기 위해 셀과 집계 작업을 제공해야 합니다 (예 : 합계 또는 개수). 보다 일반적으로, 정답 (예를 들어, 위의 예에서 질문에 대한 3426)만 제공되는 약한 감독을 사용하는 훈련이 있습니다. 이 경우 모델은 집계 연산과 정답에 가까운 답변을 생성하는 셀을 찾으려고 시도합니다. 가능한 모든 집계 결정에 대한 기대치를 계산하고 이를 실제 결과와 비교하면 됩니다. 약한 감독 시나리오는 전문가가 아닌 사람이 모델 교육에 필요한 데이터를 제공할 수 있고 강력한 감독보다 시간이 덜 걸리기 때문에 유리합니다.


결과

우리는 모델을 SQA, WikiTableQuestions (WTQ) 및 WikiSQL의 세 가지 데이터 집합에 적용하고 테이블 형식 데이터를 구문 분석하기 위한 최상위 3가지 최신 (SOTA) 모델의 성능과 비교했습니다. 비교 모델에는 WikiSQL에 대한 Min (공동 논문 2019), Wang (공동 논문 2019), 및 WTQ의 경우 SQA의 이전 작업 (Mueller 공동 논문, 2019)에 포함되었습니다. 모든 데이터 세트에 대해 약하게 주도된(Weakly Supervised) 훈련 설정에 대한 테스트 셋의 답변 정확도를 보고합니다. SQA 및 WIkiSQL의 경우 Wikipedia에 사전 훈련된 기본 모델을 사용했으며 WTQ의 경우 SQA 데이터에 대한 추가 사전 훈련이 도움이 되었습니다. 우리의 최고의 모델은 SQA에 대한 이전 SOTA보다 12 포인트 이상, WTQ에 대한 이전의 SOTA는 4 포인트 이상으로 성능이 우수하며 WikiSQL에 게시된 최고의 모델과 유사하게 수행됩니다.

[그림 4] 

[그림 4] 3개의 학술 TableQA 데이터셋에서 약하게 주도된(weakly-supervised) 설정에 대한 답변 정확도를 검증하십시오.


감사의 말

이 작업은 취리히의 Google AI 언어 그룹에서 Jonathan Herzig, Paweł Krzysztof Nowak, Thomas Müller, Francesco Piccinno 및 Julian Martin Eisenschlos가 수행했습니다. 유용한 의견과 제안에 대해 Yasemin Altun, Srini Narayanan, Slav Petrov, William Cohen, Massimo Nicosia, Syrine Krichene 및 Jordan Boyd-Graber에게 감사드립니다.


원본 제목: 신경망을 사용하여 표들에서 답 찾기(Using Neural Networks to Find Answers in Tables)
게시자 : Google Research 소프트웨어 엔지니어 Thomas Müller
원본 링크: https://ai.googleblog.com/2020/04/using-neural-networks-to-find-answers.html
Iterative Search for Weakly Supervised Semantic Parsing 논문: https://www.aclweb.org/anthology/N19-1273/
TAble PArSing (TAPAS) 오픈소스: https://github.com/google-research/tapas
Microsoft Research Sequential Question Answering(SQA) Dataset: https://www.microsoft.com/en-us/download/details.aspx?id=54253
TAPAS: Weakly Supervised Table Parsing via Pre-training 논문: https://arxiv.org/abs/2004.02349
ACL 2020: https://acl2020.org
블로그(영문): https://ai.googleblog.com/2018/11/open-sourcing-bert-state-of-art-pre.html
Salesforce 팀의 WikiSQL 오픈소스: https://github.com/salesforce/WikiSQL
A Discrete Hard EM Approach for Weakly Supervised Question Answering 논문: https://www.aclweb.org/anthology/D19-1284/
Learning Semantic Parsers from Denotations with Latent Structured Alignments and Abstract 논문: https://www.aclweb.org/anthology/D19-1391/
Answering Conversational Questions on Structured Data without Logical Forms 논문: https://www.aclweb.org/anthology/D19-1603/
WikiTableQuestions: a Complex Real-World Question Understanding Dataset 리서치 블로그: https://nlp.stanford.edu/blog/wikitablequestions-a-complex-real-world-question-understanding-dataset/


이 블로그는 2020년 4월 30일(목), Google AI 리서치 블로그 기사를 영한 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)
매거진의 이전글 제7회 세밀한 시각적 분류 워크샵 발표

매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari