방법론_WebNLG 2017 Challenge

 WebNLG 데이터세트로 실험을 하는데, 엄밀히 최고의 성능을 뽑기 위해서 한 것이 아니라, E2E 데이터세트로 실험한 방법이 이곳에도 적용될 수 있다는 점을 보여주려고 한 것이다.

따라서 비교 대상은 다음과 같다.

물론 챌린지 이후로 더 좋은 시스템들이 나왔으나, 일단 챌린지에서 best 시스템을 간단히만 확인해보자.

1. Melbourne

  • 자동평가에서 best system이라고 하는데 논문은 없지만, 리포트는 있으니 리포트로 파악을 해보자.
  • 데이터가 다음과 같이 주어지게 된다.
  • 먼저 preprocessing을 다음과 같이 한다.
  1. 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.
  2. 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
  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과 언어학적 생성을 한다고 한다.

댓글