2017-11-07 10 views
2

다음 입력에서 출력까지의 매핑을 배우기 위해 뉴럴 네트워크 모델을 학습한다고 가정합니다. 여기서 출력은 Name Entity (NE)입니다.NLP - 문장 토큰의 '시작'과 '끝'선택

입력 : 유럽 연합 (EU)은 독일 양고기에 불매 운동을하는 영국의 전화를 거부합니다.

출력 : ORG MISC O O O O O O MISC

슬라이딩 윈도우가 콘텍스트 정보를 수집하기 위해 생성되고, 그 결과는 model_input로 훈련 모델로 공급된다. 슬라이딩 윈도우는 다음과 같은 결과를 생성

[['<s>', '<s>', 'EU', 'rejects', 'German'],\ 
['<s>', 'EU', 'rejects', 'German', 'call'],\ 
['EU', 'rejects', 'German', 'call', 'to'],\ 
['rejects', 'German', 'call', 'to', 'boycott'],\ 
['German', 'call', 'to', 'boycott', 'British'],\ 
['call', 'to', 'boycott', 'British', 'lamb'],\ 
['to', 'boycott', 'British', 'lamb', '.'],\ 
['boycott', 'British', 'lamb', '.', '</s>'],\ 
['British', 'lamb', '.', '</s>', '</s>']] 

<s> 토큰 문장의 시작을 나타내고, </s>는 문장 토큰의 단부이고, 각 슬라이딩 윈도우가 출력 한 NE에 대응한다.

이러한 토큰을 처리하기 위해 단어를 벡터 (예 : 글러브)로 변환하기 위해 사전 훈련 된 포함 모델이 사용되지만이 사전 훈련 된 모델은 <s></s>과 같은 토큰을 포함하지 않습니다. 랜덤 초기화 <s></s> 같은 좋은 결과는 다른 임의의 결과의 스케일이 다른 글러브 삽입과 일치하지 않을 수 있기 때문에 바람직하지 않습니다.

질문 : 무엇 <s></s> 이유에 대한 묻어을 설정하는 방법은?

답변

2

일반적으로 대답은 작업에서 포함을 사용하려는 방법에 따라 다릅니다.

<s></s> 토큰의 사용은 LSTM 또는 임베디드 레이어 이후의 기타 반복적 인 신경망에 의해 결정됩니다. 단어 삽입을 직접 훈련하는 경우이 토큰을 제거하는 것이 좋습니다. 왜냐하면 이러한 토큰을 추가하지 않기 때문입니다. 토큰을 시작하고 중지하는 것은 LSTM에서 중요하지만 (항상 그런 것은 아니지만) 단어 삽입은 임의적 일 수 있습니다. 작은 벡터는 모든 "정상적인"벡터와 똑같이 떨어져 있기 때문에 작은 임의 번호가 문제가 없습니다.

사전 훈련 된 GloVe 벡터를 엉망으로 만들고 싶지 않은 경우 임베딩 레이어를 동결하는 것이 좋습니다. 예를 들어, 텐서 흐름에서 이것은 임베디드 룩업 직후에 tf.stop_gradient op에 의해 달성 될 수 있습니다. 이 방법은 네트워크가 <s>과 다른 단어 사이의 관계를 배우지는 않지만 완전히 좋으며 기존 관계는 변경되지 않습니다.