2017-11-01 9 views
1

두 단어 임베딩이 있습니다. 미리 훈련 된 장갑과 내가 의료 관련 문서에 대해 훈련 한 장갑. 사전 훈련 된 벡터는 더 많은 단어를 포함하지만 내 단어 벡터는 의학 용어를 더 잘 나타냅니다. 두 가지 임베딩 세트를 융합했습니다.훈련 된 단어 임베딩을 위해 전문 주제에 대해 훈련 된 단어 임베드 병합

글러브 (200d)에는 4 백만 단어가 있으며, 약 10 %는 제 자신의 퍼가기 (또한 200d)에서 발견됩니다. 두 가지를 연결하는 것과 같은 단순한 것 (0을 많이 발생시키는 것) 대신, 글러브 공간에서 내 자신의 임베딩 공간으로 벡터를 매핑하는 신경망을 만드는 것이 도움이되는지 궁금합니다. 특히 :

from keras.models import Sequential 
from keras.layers import Dense, Activation 

model = Sequential() 
model.add(Dense(units=100, input_dim=200)) 
model.add(Activation('sigmoid')) 
model.add(Dense(units=50)) 
model.add(Activation('sigmoid')) 
model.add(Dense(units=100)) 
model.add(Activation('sigmoid')) 
model.add(Dense(units=200)) 
model.add(Activation('linear')) 
model.compile(optimizer='rmsprop', 
      loss='mse') 
model.fit(x_train, y_train, epochs=10, batch_size=32) 

결과는 매우 가난, 그리고 나는 방법이 올바르지 않아 또는 모델이 제대로 조정되지 않으면 그것이 궁금.

답변

0

함께 훈련되지 않은 단어 벡터 집합은 서로 필수적인 관계가 없습니다. 거리 및 방향은 상관 관계 제약 조건에 따라 개발 된 벡터 집합 내에서만 해석 할 수 있습니다. (간단한 예로서 : 단어 벡터 집합을 가져 와서 모든 좌표를 부정한다면, 각 집합은 관련 단어를 찾거나 유추를 해결하는 것과 똑같이 똑같을 것입니다. 그러나 단어 사이의 거리/방향) 두 컴퓨터 사이의 매핑 변환을 고안하는 것은 합당한 아이디어입니다. 이는 원래의 Word2Vec 논문 ("기계 번역을위한 언어 들간의 유사성 탐구") 및 "건너 뛰기 (Skip)"에 언급되어 있습니다. -Thought Vectors "논문, 2.2 절 ("어휘 확장 ").

이러한 경우에는 코드 발췌에서 제안하는 것처럼 다중 레이어 매핑이 아닌 선형 변환 매트릭스가 학습됩니다.

단어 벡터로 작업하는 (다른 것들 중에서) gensim 라이브러리는 최근 TranslationMatrix 클래스에서 이러한 변환을 적용하여 &을 학습하는 기능을 추가했습니다. 10 %의 어휘 - 중첩으로 인해 귀하의 목적에 적합 할 수 있습니다.