-
#hierarchical softmax #Word2vec을 효과적으로 학습시키는 방법Data miner/Information Retrieval 2019. 11. 25. 21:21728x90
논문 소스 : Distributed Representations of Words and Phrases and their Compositionality
Word2vec모델에서 모델의 출력층 이전 부분에서 정답 단어의 원핫인코더 값과 cross entropy로 계산되는 값인 스코어 값은Softmax를 지나친 값이다. 하지만, 코퍼스 전체의 단어집이 일반적으로 매우 크므로(10만개 이상) 하나의 데이터에 대해서 계산을 할 때 매우 많은 계산량이 요구된다. 이에 이를 개선하고자 나온 방법 중 하나가 Hierarchical softmax기법이다. 이는 balanced binary tree을 기반으로 계산되며, 이 때문에 계산량이 log(|v|)로 줄어든다는 이점이 있다.
먼저 Balanced binary tree는 초기에 구성된 하나의 tree를 토대로 앞으로 소개할 계산 프로세스가 적용된다. 이 균형된 이진트리의 마지막에는 코퍼스 전체 단어집에 속하는 각 단어가 노드의 leaf로 들어가게 된다. 아래의 예시로 설명을 하자면, 전체 코퍼스를 다루는 단어의 수가 총 8개라고 가정해보자. Hierachical softmax방법에서는 마지막의 노드의 leaf값에 각 단어를 할당한다. 그리고 초기에 설정된 이 트리의 모양새는 모든 단어의 벡터값을 조정하는데 동일하게 사용된다.
이후에는 주어진 단어의 Word2vec의 임베딩 벡터값과 모든 노드들이 연결된다. "he have"라는 단어가 주어졌을 때, "cat"이라는 단어를 예측하고자 한다면, "he"와 "have"가 word2vec의 임베딩 메트릭스에서 추출되어 합쳐진다. 이후에는 모든 노드들(아래의 경우 7개의 노드)와 연결된다. 각 노드와 연결되는 V라는 파라미터 값과의 관계의 출력값이 각 노드에서 왼쪽 혹은 오른쪽을 갈지를 결정한다. 이를 식으로 표현하자면, 아래와 같다.
P(“cat” | context) = p(branch left at 1|context) * p(branch right at|context) * p(branch right at 5|context)
정답 leaf의 단어가 있는 쪽으로 왼쪽 혹은 왼쪽으로 branch로 뻗어나갈 확률값을 최대화하도록 학습하게 된다.
이것이 Hierarchical Softmax의 아이디어이며, 이에 대한 구체적인 수식은 위의 논문을 찾아보면 된다.
한편으로, Random으로 구성되든 외부 Wordnet을 참고해 구성되든 (이 외에 tree를 구성하는 방법 자체도 많으며, 이에 관한 논문도 따로 존재한다고 한다)
'Data miner > Information Retrieval' 카테고리의 다른 글
#[논문리뷰] Soft Representation Learning for Sparse Transfer (0) 2019.12.16 #[논문리뷰] Multiple Instance Learning Networks for Fine-Grained Sentiment Analysis (0) 2019.12.11 #딥러닝 관련 논문 읽기 팁 #End-to-End Learning (0) 2019.11.07 서치 엔진에서의 사용자의 의도에 따른 3 가지 Query 유형 (0) 2019.11.06 #Information_retrieval #Inverted_Index (0) 2019.10.22