Mintz, Mike, et al (2009)가 텍스트들을 감독하기 위해 제안한 Distant Supervision은 관계 추출을 위한 데이터 레이블이 비교적 큰 데이터를 생성하는데 효과적인 방법이다. 이는 미리 구축된 Frebase나 도메인에 특화된 데이터 베이스의 사실 정보에 기반해 트리플의 주어와 목적어가 포함된 문장을 수집해 학습 셋을 생성해 내는 방법이다. 여기서 Distant Supervision의 가정은 주어와 목적어가 포함되면 관계의 의미를 내포할 것이다라는 가정을 가지고 있다. 만약 프리베이스를 이용해 버락 오바마와 미첼 오바마가 같이 등장했다면 해당 문장은 '결혼 했다는 사실'이 포함되어 있다는 가정으로 해당 문장을 학습데이터로 추출해 내는 것 입니다. 이 방법은 대량의 학습 셋을 추출해 낼 수 있다는 장점이 있다. 하지만 이 방법은 엔티티의 쌍이 지식그래프에서 다수의 관계를 가질 경우 매우 불필요한 정보를 가지는 레이블들을 발산할 수 있다. 예를 들어 아래 그림과 같이 지식 베이스에 Donald Trump, Born-in, America 라는 관계가 저장되어 있을 때 Donald Trump와 America만 연결하고 America의 대통령이라고 잘못 표현할 수 있다.
그래서 이러한 문제를 해결하기 위해 여러가지 방법들이 제안되었다. MIL로 표현되는 하나의 방식으로 각 벡터의 레이블이 잘 표현된 문장을 선택하게 만드는 방법(Zeng et al., 2016)이라던가 실제 레이블에서 노이즈 레이블이 나오는 패턴을 포착하고 해당 패턴을 모델링해서 실제 분포를 학습하는 방법도 제안(Redel et al., 2010)되었다. 반면 일부 참신한 방법으로 전체 문장 집합에서 진정한 레이블 문장을 선택하는 인스턴스 선택부를 강화학습으로 최적화하는 방법(Feng et al., 2017)도 활용되었다. 하지만 어떤 추가적인 모델을 쌓는 것으로는 기존의 Distant Supervision이 갖는 문제를 해결하지 못한다. 이에 Wang, Guanying, et al. (2018)은 레이블이 없는 Distant Supervision을 제안한다. 이는 부적절하다는 가정 하에서 관계형 레이블을 사용하지 않고 지식그래프에서 도출한 사전 지식만을 활용해서 관계를 추출하는 방식이다. 즉 기존의 딱딱하고 엄격하다고 느껴지던 Distant Supervision의 관리 방식을 지양하고 KG(Knowledge Graph)의 사전 지식을 최대한 부드럽게 활용하는 방식을 지향한다. 여기서 저자는 Bordes (2013)이 제안한 TransE모델을 차용해서 적용한다. 여기서 TransE모델은 $h+r\approx t$로 KG의 관계를 연속적인 저차원의 공간에 인코딩하는 점에 주목했다. 그리고 이 TransE 모델에 영감을 받아 구체적인 관계 레이블 $r$대신 $t-h$를 Vision Signal로 활용하고 문장을 저장시켰다.
Label-Free Distant Supervision의 예시
여기서 저자의 가정은 KG의 각 관계를 표현하는 $r$은 그 의미를 설명할 수 있는 하나 이상의 문장 패턴을 지니고 있다는 것이다. 위 그림을 예로 문장의 엔티티를 KG에서 정렬된 엔티티 유형으로 대체해 문장 패턴을 형성한다. 예를 들어 "Guadalajara, Mexico"는 "B는 A와B를 포함한다"라는 의미를 전달하고 이러한 관계를 나타내는 문장 패턴인 "in A, B"로 대체될 것이다. 이 문장 패턴의 경우 동일한 패턴을 공유하고 있지만 서로 다른 엔티티 쌍이 있는 문장이 있을 수 있다. 이에 첫 번째 문장 "The talks, in Ankara, Turkey, continued late into the evening"의 (Turkey - Ankara)는 "/location/location/contains"와 "/locaition/country/capital" 둘 다를 의미한다. 하지만 "She raised the family comfortably in Guadalajara, Mexico"에서 (Mexico - Guadalajara)는 "/location/location/contains"는 가지지만 "/location/country/capital"을 KG안에서 찾을 수 없게 된다. 물론 두 경우 모두 "in A, B"의 형태를 가지므로 결과적으로 "/location/country/capital"이라는 잘못된 관계를 대신 "/location/location/contains"를 관계로 저장하게 된다. 이 부분을 조금 더 이해하기 쉽게 표현하자면 "터키 앙카라에서 열린 회담이 저녁 늦게까지 지속되었다."에서 터키와 앙카라가 갖는 관계에는 수도가 포함되지만 "그녀는 멕시코의 과달라하라에서 가족을 편히 키웠다."의 멕시코와 과달라하라는 수도라는 관계가 포함되면 안된다는 의미이다.
그래서 이러한 잘못된 레이블 생성과 관련해 잡음을 제거하기 위해 이 논문은 다음과 같은 내용으로 요약할 수 있다.
- 관계 추출을 위한 기존의 Distant Supervision과 비교해 잘못된 레이블링 문제를 해결하기 위해 KG에서 도출된 사전 지식을 활용한다.
- 이 방법은 지도 학습의 프로세스를 직접적으로 따르지만 보다 부드럽게 정보의 타입을 처리하고 변환하는 법칙을 마련한다. 그리고 이 둘은 KG를 따르며 노이즈 감소 모델에는 하드 레이블링을 수행하지 않는다 (이 부분은 원문 이해가 잘 안된다ㅠ)
- 이를 검증하는 실험에서 label-free 접근법이 현재의 장거리의 Distant Supervision 데이터셋에 유의미하게 수행된다는 것을 확인했다.
그리고 최종적으로는 LFDS(Label-free Distance Supervision)이라고 부르는 방법을 제안하는데 이 방법은 먼저 일반적인 KG모델에 내장되는 $h+r\approx t$에 근거해 집단과 각각의 관계에 대한 선입견이 될 만한 사항들을 준비한다. 이후 각 문장의 엔티티 부분을 KG안에 포함된 엔티티로 바꿔서 학습 셋(train set)에 포함한다. 이후 다음의 메커니즘을 적용해 문장 패턴과 관련한 단어의 중요도를 계산한다. 그리고 $t-h$와 문장 사이의 여백 손실을 막기위해 sentence encoder를 학습하고 마지막으로 예측 구현을 위해 테스트 문장을 넣어 계산한 뒤 해당 문장을 TransE에서 학습한 모든 관계들과 비교하고 예측 결과로 가장 가까운 관계를 선택하게 한다.
이 전반적인 프로세스에 세부적인 내용들을 살펴보면 아래와 같다.
KG Embedding
엔티티와 관계를 사전에 학습하기 위해 TransE와 같은 일반적인 KG모델을 사용한다. 지도학습을 위해 관계 레이블 $r$을 포함하는 $t-h$를 수행했다. 이때 TransE의 관계는 $h+r\approx t$를 공식으로 하며 $h,r,t$는 주제 엔티티와 관계 및 후미 실체를 표현하는 것으로 해석한다. 이 모형은 주체와 관계를 지정할 때 뒤에 나올 요소를 예측하는데 성능이 우수하다고 입증되었다. 다만 문제는 $t$와 $h$ 사이의 관계가 여러가지 일 수 있다는 것이다. 하지만 TransE가 갖는 이러한 특성에 특정 관계 $r$을 모르는 경우 고정 관계 형식 $r$과 독립적으로 작동할 수 있어 KG모델의 다른 TransH나 TransR과 같은 내장 모델 대신 본 연구에서는 TransE를 활용한다.
Sentence Embedding
- word embedding
문장을 더 잘 표현하기 위해 Bi-LSTM(Zhou et al., 2016)과 SDP-LSTM(Yan et al., 2015)와 같은 다양한 NRE모델을 사용해보았고 최종적으로 가장 좋은 결과를 보여준 문장 인코딩을 위해 PCNNN(Zeng et al., 2015)을 선택했다.
문장을 직접 인코딩하는 대신, 문장 내의 엔티티가 해당되는 $e$를 KG의 해당 엔티티 유형으로 바꾼다. 이후 Word2Vec으로 내부의 단어들을 미리 학습한다. Attention 메커니즘은 더 중요한 정보라고 판단되는 정보가 포착될 때 작동한다.
먼저 각 단어의 $w^j$와 두 엔티티 유형 간의 유사도를 다음과 같이 계산한다.
$A_1^j=f(type_{e1}, w^j)$
$A_2^j=f(type_{e2}, w^j)$
여기서 $f(type_e, w^j)$는 유사도 함수이고 이는 코싸인 유사도로 이 논문에서는 정의한다. $type_{e1}$과 $type_{e2}$는 두 개의 엔티티 타입을 내장한 것이다. 이후 각 단어의 가중치 분포는 지수 함수에 의해 도출될 수 있다.
$\alpha _{ 1 }^{ j }=\frac { exp(A_1^j) }{ \sum {_{i=1}^n}{ exp(A_1^i) } } $
$\alpha _{ 2 }^{ j }=\frac { exp(A_2^j) }{ \sum {_{i=1}^n}{ exp(A_2^i) } } $
그리고 $w^j$의 attention으로 두 개의 엔티티의 평균 가중치를 구한다. 최종적으로 word embedding된 $WF^j$는 다음과 같다.
$WF^j = \frac {\alpha_1^j+\alpha_2^j} {2}*w^j$
- position embedding
Zeng(2014)은 PFs를 제안해 엔티티의 한 쌍을 특정할 수 있게 했다. PF는 현재 단어에서 두 엔티티까지의 거리를 계산하는 시리즈물이다. 예를 들어 "Damascus, the capital of Syria" 의 경우 "수도" 에서 두 엔티티까지의 거리는 각각 3과 -2로 측정된다. 초기 임베딩 매트릭스는 임의로 생성되게 되는데 그 후 두 거리를 기준으로 상대적인 행렬의 벡터를 찾는다. 임베딩 최종 위치는 [PF1, PF2]의 연결점이며 이는 다음과 같이 표현된다.
$w^j = [WF^j, PF_1^j, PF_2^j]$
그리고 입력 문장은 다음과 같다.
$x = w^1, w^2, ..., w^n$
- Piecewise-CNN
Zeng(2014)은 관계를 추출할 때 부분적으로 최대 풀링 레이어가 잘 수행한다는 것을 증명했으며 이는 두 엔티티 사이의 구조 정보를 잘 포착하는 경향이 있다는 것을 알 수 있다. 각 문장에 대해 우리는 CNN을 활용해 두 개의 엔티티 색인을 세 부분으로 나눈다. 각 부분에서 최대 풀링 레이어를 수행해 3차원 벡터를 얻을 수 있다.
$p_i = [p_{i1}, p_{i2}, p_{i3}]$
최종적으로 벡터의 모양은 $(bz, dc * 3)$이 될 것이다. 여기서 $bz$는 배치의 크기를 나타내며 $dc$는 채널 수를 나타낸다. 이 전체의 모델은 아래 그림과 같다.
Margin loss
PCNN 모델로 인코딩된 문장과 번역법에 따라 $t-h$로 지정된 관계의 삽입을 최대한 가깝게 지정하기 위해 우리는 Softmax Layer로 cross-entropy loss 대신 linear layer로 margin loss를 사용했다. 이때 PCNN 레이어를 통해 삽입된 문장의 경우 linear layer를 통과해 해당 결과를 관계 표현과 동일하게 만든다.
$s_e = W * PCNN(x) + b$
위 식에서 $W$는 매트릭스 전환 각도로 $(dc*3, embedding_dim)$이다. 이러면 $t-h$와 $s_e$ 사이의 margin loss를 다음 식으로 확인할 수 있다.
$L=\sum _{ s_{ e } }^{ }{ [t-h-s_{ e }+\curlyvee -(rand(t^{ ' }-h,t-h^{ ' })-s_{ e }))] } $
여기서 $rand(a,b)$는 a 또는 b를 선택하는 것을 의미한다. $t^{'}-h$는 $t-h$의 부정적인 예이며 이는무작위로 KG의 다른 엔티티로 대체하여 생성된다. $t-h^{'}$도 차만가지이다. 각 문장에서 우리는 $t-h$와 $s_e$ 사이의 거리가 줄이는 동시에 부정적인 사례와 $s_e$사이의 거리를 증가시켰다. 그리고 $\curlyvee$는 양성 트리플과 음수 트리플 사이의 합리적 margin을 표현한다. 만약 margin이 $\curlyvee$보다 이미 크다면 문장의 loss는 0일 것이다.
또 다른 주목할 부분은 데이터셋의 특수 레이블인 NA이다. 이는 결국 KG 내의 두 엔티티 사이에 관계가 없음을 의미하는데 이 경우 $t-h$가 무의미해 인코더에 혼란을 줄 수 있다. 이러한 문제를 해결하기 위해, NA에 대한 고정된 관계를 생성하게끔 구성하고 이런 관계를 가지는 문장에 대해 부정적 관계로 사용했다. NA에서 다른 관계까지의 거리는 $2*\curlyvee$ 보다 커야하며 여기서 $\curlyvee$는 손실 함수(loss function)이다. 예측 모형을 사용할 때는 NA도 포함한다.
Prediction
우리는 문장 인코더를 임베딩된 관계와 동일 차원으로 문장을 출력할 수 있게 만들었다. 새 시험문장의 경우, 우리는 이를 모델로 인코딩하고 임베딩된 문장과 후보가 될 수 있는 모든 관계와 유사도 분석을 수행한다. 그리고 가장 유사한 관계를 나타내는 범주가 되는 문장을 추출한다.
$r= arg \max_i\left (f \right| (S_e,r_i))$
Experiments
이 연구에서는 다음 두 가지 중요한 연구 질문에 긍정적 근거를 제시하는 것을 목표로 한다.
1. 문장 패턴이 문장의 필수적인 부분을 표현할 수 있는가?
2. 잘못된 레이블 문장 속의 KG 신호가 진짜 레이블을 예측하는게 도움이 된다.
그리고 이를 검증하기 위해 Distant Supervision에서 널리 사용되는 데이터 셋을 소개하고 데이터 셋의 성능을 평가한다. 그리고 노이즈가 많은 데이터를 이용해 모델의 효과를 추가로 조사하고 해당 데이터 셋의 문장을 다른 범주로 나누어 특정한 상황에서의 사례를 연구한다.
(연구 결과 부분은 간결하게 정리한다.)
위 table과 같은 형태로 각각의 파라미터를 설정하고 Word2Vec을 활용해 NYT 말뭉치 단어를 삽입하는 훈련을 실행했다. Word2Vec 모델의 window 크기는 5로 설정했으며 임베딩 크기는 50으로 설정했다. 그리고 우리는 이 단어들이 10번 이상 어휘로 나타나게끔 보존 가능하게 했다. KG 완료를 위해 생성되는 FB40K1 (Lin et al., 2015)에 대해 4만개의 엔티티 및 1318개의 관계를 학습시켰다. 임베딩 크기는 50 대신 100개 정도로 구성함으로서 연구 결과가 더 괜찮았다. 또한 margin을 1로 설정하고 learning rate를 0.01로 훈련시켰다. 그리고 벡터 성능 테스트를 위해 완성된 KG모델에서 모델을 평가했다. 최종적으로 10번을 수행한 결과 TransE 모델은 0.67로 지정된 주요 엔티티 및 관계를 가진 가장 가까운 10개의 꼬리 엔티티를 예측하며 평가했다.
Distant Supervision에 의해 생산된 레이블이 정확하지 않을 수 있으므로 보편적으로 held-out 평가를 활용하게 되는데 이는 precision-recall curve로 표현되므로 본 연구의 테스트에도 적합하여 테스트 데이터에 대해 직접 held-out평가를 수행했다. 그리고 선별된 5가지의 다른 모델들과 비교했을 때 상기의 그래프처럼 LFDS 방법이 Recall이 증가해 비교적 우수한 성능을 가지고 있다고 볼 수 있었다. 이는 문장 패턴이 문장보다 관계의 의미를 더 잘 포착하기 때문인데 우리는 이 모델이 전반적으로 좋은 분류 능력을 가지고 있다고 평가한다.
Distant Supervision에 의해 잘못된 레이블이 생산된 경우 우리 평가에는 많은 오류가 있을 것이다. 이에 따라 모델을 보다 정확하게 평가하려면 수동적인 평가가 불가피하다. 이에 예상 신뢰도에 따라 상위 100개, 200개, 500개의 문장을 선택한 뒤 인위적으로 정밀도를 평가한 결과가 상기의 표과 같다. 결과적으로 Distant Supervision에서 노이즈 처리에 관련한 문제는 KG의 불완전한 사용에 기인한다고 이야기 한다. 이에 label-free의 방법을 제안해 기존의 관계 레이블을 활용하는 대신 $t-h$와 엔티티 유형별로 문장 패턴을 지도하게 했다. 그리고 다른 널리 사용되는 관계 추출 데이터셋에 대한 실험을 실시했고 우수한 결과가 나와 이러한 접근이 관계 추출을 위한 노이즈 제거와 문장 패턴을 효과적으로 다룰 수 있다고 생각한다.
KG에 대해 모르는게 많아서 다소 어렵게 느껴진 논문이었는데 의역을 하면서 조금씩 이해할 수 있었다.
다만 이 방식은 다른 방법들보다 절차가 복잡하게 구성되어 있고 중앙 서버에서 별개로 분석할 수 있는 형태가 아닐 때에도 적용해서 지금과 같은 퍼포먼스를 낼 수 있는지 의문이다.
특히 마지막 성능 테스트 부분은 수동평가를 수행하기 위해 몇가지 자신들의 합리적 근거를 제시했는데 단일 데이터셋에서만 작동한 것이라서 그 근거가 충분히 make sense한지는 더 많은 데이터셋에 적용 가능하게 직접 구현해보고 테스트해보는 방법밖에 없을 것 같다.
'코드와 오류 기록' 카테고리의 다른 글
xcode bitbucket 수정 (0) | 2019.02.03 |
---|---|
error: src refspec master does not match any. 해결방법 (2) | 2019.01.28 |
Attention and Augmented Recurrent Neural Networks (0) | 2018.11.15 |
신경망을 이용한 이미지 분류 (MNIST와 CIFAR 데모 포함) (0) | 2018.11.15 |
심층학습 기반의 사춘기 연령 골연령 측정 방법에 관한 연구 (0) | 2018.11.15 |