방법론_WebNLG 2017 Challenge
WebNLG 데이터세트로 실험을 하는데, 엄밀히 최고의 성능을 뽑기 위해서 한 것이 아니라, E2E 데이터세트로 실험한 방법이 이곳에도 적용될 수 있다는 점을 보여주려고 한 것이다.
따라서 비교 대상은 다음과 같다.
- baseline: The WebNLG Challenge: Generating Text from RDF Data, INLG-2017
- automatic best system: Melbourne
- human best system: FORGe at SemEval-2017 Task 9: Deep sentence generation based on a sequence of graph transducers, SEMVAL WS-2017
1. Melbourne
- 자동평가에서 best system이라고 하는데 논문은 없지만, 리포트는 있으니 리포트로 파악을 해보자.
- 데이터가 다음과 같이 주어지게 된다.
- 먼저 preprocessing을 다음과 같이 한다.
- Determining the type of entity
- 각 triple의 subject and object을 type으로 매핑시킨다.
- For example:
- Donald Trump: PERSON
- 1946-06-14: DATE
- United States of America: PLACE
- 이것은 DBPedia에서 정보를 수집한 것이다.
- 우리는 정규 표현을 사용하여 숫자와 날짜를 검출에대해 특수처리을 사용한다.
- For unknown entity, we use UNKOWN type.
- Creating training data
- 이 작업에 사용되는 딥 러닝 모델은 일반적으로 기계 번역에 사용되는 인코더-디코더 아키텍처이므로 입력 및 출력은 한 쌍의 시퀀스 (소스 시퀀스 및 대상 시퀀스)입니다.
- SOURCE SEQUENCE:
- 소스 시퀀스는 triples으로부터 생성이 된다.
- 각 entites (subject and object)는 “ENTITY-[NUMBER]”로 인코딩된다.
- 예로, triples가 위처럼 주어지면, 우리는 subject와 object을 다음과 같이 인코딩한다.
- Donald Trump: ENTITY-1
- 1946-06-14: ENTITY-2
- United States of America: ENTITY-3
- 각 엔티티의 타입은 시퀀스에 append되고 property의 cammelCase는 분리되어서 시퀀스에 append되어서 딥러닝 모델에 정보를 추가하게 된다.
- 우리는 모든 triples을 하나의 시퀀스로 컨캣하고 위의 예제에서 소스 시퀀스는 다음과 같이 된다.
- ENTITY-1 PERSON birth date ENTITY-2 DATE ENTITY-1 president ENTITY-3 PLACE
- TARGET SEQUENCE
- 대상 시퀀스는 각 개체 (트리플의 대상 및 대상)에 의해 de-lexicalized됩니다.
- de-lexicalized 프로세스는 문장의 n-gram 시퀀스에서 가장 유사한 개체를 찾아 자동으로 수행됩니다.
- This is the most critical part because better delexicalization process give cleaner target sequence since the entity is not written in exact match on the target sentence.
- 예를 들어 대상 문장에서 "1946-06- 14"엔티티를 찾을 수없는 경우입니다.
- de-lexicalization 절차를 적용한 후 대상 문장을 얻습니다.
- ENTITY-1 was born on ENTITY-2 is the president of ENTITY-3
- Word-vector of vocabulary
- 사전 처리의 마지막 부분은 훈련 데이터의 어휘에 대한 단어 벡터를 만드는 것입니다.
- 사전 훈련 된 장갑 단어 벡터 (http://nlp.stanford.edu/data/glove.6B.zip)를 사용합니다.
- 우리는 모든 glove 항목을 사용하는 것이 아니라 훈련 데이터 어휘에 존재하는 단어 벡터 만 사용합니다.
- Deep learning Deep learning model specification:
- Encoder-decoder architecture with attention
- RNN type: Bidirectional LSTM with 512 hidden unit
- Dropout: 0.5
- Embedding size: 300 D.
- Re-lexicalization
- re-lexicalization process는 인코딩 "ENTITY- [NUMBER]"를 관련 엔티티로 대체하여 간단히 수행됩니다.
- 즉, 정리하면
- 이 모델은 일단 주어진 tripleset을 프리프로세싱으로 엔티티 태깅을 한다.
- 이 때 DBPedia 데이터를 이용해서 했다고 한다.
- 구해진 엔티티를 이용하여 delexicalization을 한 입력을 맞는다.
- 정확히 예제만 봐서는 이해가 안되지만, 기본적으로 subject, object을 엔티티를 이용한 입력을 만드는데, 중간에 주어진 property을 활용하는 것 같다.
- 즉 위 예제의 첫 번째 triple은 "도널드 트럼프"는 1번째 엔티티로 PERSON으로 되지만, 두 번째 triple에선 "도널드 트럼프"가 속성인 president로 되는 거 같다.
- 이에 매칭되는 타겟 문장또한 delexicalization을 하게 된다.
- 근데 여기서 말하듯이, 엔티티가 정확히 타겟 문장에서 매칭이 안되기 때문에 delexicalization에 어려움이 있는 것 같다.
- 아무튼! 중요한 것은 end-to-end 학습 모델이지만, 엔티티 태깅을 따로 해줘야하 delexicalization등의 절차가 필요하다.
2. FORGe at WebNLG 2017
- 일단 이 방법은 grammar-based 방법이다.
- 논문을 읽기는 오래걸리니 챌린지에 제출된 리포트를 보면
- WebNLG 챌린지의 경우 원래 linguistic predicate-argument (PredArg) 구조를 입력으로 사용하도록 설계된 FORGe 생성기가 (Mille et al., 2017) RDF 트리플을 입력으로 지원하기 위해 추가로 개발되었습니다.
- 제공된 데이터는 특정 범주의 DBpedia 트리플을 1 ~ 7 개 포함하는 XML 파일입니다.
- 평가 데이터의 절반은 훈련 데이터에서 발견 된 카테고리로 구성되었고 나머지 절반은 거의 보이지 않는 속성을 가진 새로운 카테고리로 구성되었습니다.
- 생성 프로세스에는 다음 단계가 포함됩니다. (i) DBpedia 속성을 PredArg 템플릿에 매핑합니다. (ii) 템플릿 모집단; (iii) 문장 계획; (iv) 언어 세대.
- (i) mapping of DBpedia properties onto PredArg templates
- (ii) template population
- (iii) sentence planning
- (iv) linguistic generation.
- 즉 간단히 확인해보면, 위 4가지 스텝을 따라서 진행이 된다.
- (1)은 이 테스크를 위해 PredArg를 이용해 FORGe 생성기가 사용된다.
- 그리고 템플릿을 이용하고 sentence planning과 언어학적 생성을 한다고 한다.
댓글
댓글 쓰기