-
[Model_Architecture] [parts] CRF networksData miner/Information Retrieval 2020. 4. 3. 17:50728x90
- Kaggle의 랭커들의 전략을 보면, 많이들 CRF layer를 활용했다. 사용자가 설정한 모델에 CRF layer을 추가적으로 붙이는 것은 'from keras_contrib.layers import CRF로 한 줄이면 활용하면 간단하게 끝나지만, 이 CRF가 왜 다양한 NLP문제에서 활용되고 있는지, 왜 이 CRF layer가 효과적인지 평소에 궁금하여 이번 포스팅에 다루게 되었다.
- CRF(Conditional Random Field) 는 Sequence tagging task를 위한 graphical model 중 하나이다. Sequence tagging task에서 가장 널리 알려진 개체명인식 문제 NER(Name Entity Recognition)에 CRF는 자주 적용되고 있기도 하다. CRF는 데이터 X가 주어졌을 때 레이블 Y가 나타날 확률을 직접적으로 계산하기 때문에 Discriminative model이다. CRF의 모델 파라미터들은 실제의 P(Y|X)를 최대화 시키는 쪽으로 학습하게 된다. P(X)를 genrate하지 않아도 된다.
- CRF는 현재 tag를 예측하는데 있어서 주변 이웃 tag 정보를 활용할 수 있는 방식 중에 하나이다. 예측 당시에 token 위치에 초점을 맞추는 것이 아니라 문장 단에서 집중하는 것이다. CRF의 네트워크는 LSTM, bi-LSTM과 달리 input과 output 노드가 직접적으로 연결되어 있다(undirected graph).
- Maximum Entropy Markov model(MEMM)과 많이 비교되며, Maximum Entropy Markov model과 달리 x와 y를 연결하는 에지의 방향이 정해져 있지 않다. (수식을 살펴보면, HEMM보다 normalization이 sequence에 속한 모든 토큰과 y label들을 고려하여 분산 정규화 과정이 일어나기 때문에, 계산이 더 복잡하다. 이에 HEMM보다 자연스럽게 학습속도가 조금 더 걸린다. 이와 다르게, HEMM는 각 토큰 시점별 국지적인 정규화를 거친다.
- CRF모델이 Sequence를 고려하여 y 레이블을 예측하는 데 있어서 더 적합하다.
참고 :
https://arxiv.org/pdf/1508.01991.pdf http://www.cs.columbia.edu/~smaskey/CS6998/slides/statnlp_week10.pdf
'Data miner > Information Retrieval' 카테고리의 다른 글
[논문리뷰] Cold-start aware user and product attention for sentiment classification (0) 2020.09.23 [논문리뷰] Neural Graph Collaborative Filtering (1) 2020.08.04 #The Positional Encoding 를 어떻게 하는 것인가? #Transformer_모델 (5) 2020.03.14 [논문리뷰] Personal Knowledge Base Construction from Text-based Lifelogs (0) 2020.03.11 #[논문리뷰] Soft Representation Learning for Sparse Transfer (0) 2019.12.16