단어 기반 및 문자 기반 텍스트 생성 RNN의 차이점은 무엇입니까?


15

Recurrent Neural Networks로 텍스트 생성에 대해 읽는 동안 실제로 단어를 말하지 않고 문자별로 단어 를 생성 하고 문자별로 문자 를 생성하기 위해 일부 예가 구현되었음을 알았습니다 .

그래서, 텍스트를 예측 RNN 모델 사이의 차이가 무엇 단어 당 기준 및 텍스트 예측 사람 당 문자 근거는? 단어 기반 RNN이 더 큰 코퍼스 크기를 필요로합니까? 문자 기반 RNN이 일반화됩니까? 어쩌면 유일한 차이점은 입력 표현 (one-hot encoding, word embedding)입니까? 텍스트 생성을 위해 어떤 것을 선택해야합니까?

답변:


15

최근에 배운 내용이 있습니다.

분명히 텍스트 생성 RNN에 관해 이야기 할 때 우리는 RNN 언어 모델에 대해 이야기하고 있습니다. 단어 / 문자 기반 텍스트 생성 RNN 에 대해 질문 할 때 단어 / 문자 기반 RNN 언어 모델 (LM)에 대해 묻습니다 .

워드 기반의 LMS 표시 높은 정확도낮은 계산 비용 이상의 문자 기반의 LMS를.

LSTM (Long Short Term Memory) 반복 네트워크도 단어 기반 입력에서 더 잘 작동하기 때문에 문자 수준 모델이 장기 단기 메모리를 캡처하기가 어렵 기 때문에 이러한 성능 저하는 거의 없습니다 .

이는 문자 기반 RNN LM이 장기 종속성을 성공적으로 모델링하기 위해 훨씬 더 큰 숨겨진 계층을 필요로하기 때문에 계산 비용이 높아집니다.

그러므로 우리는 말할 수 있습니다

중 하나 근본적인 차이 사이 단어 수준캐릭터 레벨 모델에 매개 변수의 수 RNN은 훈련과 테스트 동안 액세스 있습니다. RNN의 입력 및 출력 계층이 작을수록 완전히 연결된 숨겨진 계층이어야하므로 모델 교육 비용이 많이 듭니다.

그러나 문자 기반 RNN LM은 Finish, Turkish, Russian 등의 풍부한 형태를 사용하여 언어를 더 잘 모델링합니다. 단어 기반 RNN LM을 사용하여 이러한 언어를 모델링하는 것은 가능하면 어려우 므로 권장되지 않습니다.

위의 분석은 문자 기반 RNN에 의해 생성 된 출력 텍스트를 볼 때 특히 의미가 있습니다 .

투자자들의 놀람은 돈을 모으지 않을 것입니다. 나는 모든 흥미로운 시간이 빨리있는 회사가 아니며, 같은 프로그래머를 떠날 필요가 없습니다.

13 자 윈도우가 있는 간단한 문자 기반 최대 가능성 LM 이 다음을 제공합니다.

그리고 그녀가 많은 단단한 벽돌을 만들었을 때. 그는 더미에 그것들을 쌓아 놓고 발을 밟았습니다. 의사는 그를 박쥐로 진단했습니다. 소녀와 남자 친구가 그녀에게 물었다.

물론 나는 예제를 선택했습니다 (실제로 대부분의 ML LM 예제는 지금까지 읽은 RNN 생성 텍스트보다 더 좋았습니다).이 작은 ML LM은 더 간단한 모음에 대해 훈련되었지만 아이디어를 얻습니다. 조건부 확률 확률 이 더 좋습니다. 훨씬 복잡한 문자 기반 RNN 보다 텍스트 .

문자 기반 RNN LM은 넓은 범위의 언어에 대한 문법적으로 시퀀스를 모방 할 수 있으며, 더 큰 숨겨진 레이어가 필요하고 계산 비용이 많이 드는 반면 단어 기반 RNN LM은 더 빠르게 학습하고 더 일관된 텍스트를 생성하지만 이러한 생성 된 텍스트는 실제 의미가 없습니다 .


1
훌륭한 의견. 일부 문제의 경우 계산 문제와 상관없이 하나 또는 다른 문제가 더 합리적 일 수 있습니다. 예를 들어, 단어 간의 관계를 찾기 위해 단어 벡터를 연구하거나 단어 주제를 기반으로 텍스트를 생성하려는 경우 단어 기반 RNN을 사용해야합니다. 반대로, 문자 기반 RNN이가는 길에는 문제가있을 수 있습니다. 또한 사용자가 수행하려는 작업에 따라 다릅니다.
Ricardo Cruz

당신의 마지막 의견을 이해하지 못했습니다 : "Char-based RNN LM (...)은 실제로 이해하기에는 부족합니다." 나는 단어 기반 RNN도 이해하지 못했습니다. 여기서 숯 기반 모델을 분리 한 이유는 무엇입니까?
Ricardo Cruz

모호한 결말을 업데이트했습니다.
미네랄

좋은 대답입니다! 실제로 누군가는 관련 작업, 데이터 세트의 크기, 언어 및 원하는 전처리 수준에 따라 크게 달라진다는 것을 쉽게 추가 할 수 있습니다. 예를 들어,보다 풍부한 형태의 언어를 처리하고 어휘 (OOV)를 벗어난 단어를 관리하기 위해, 단어 모델을 사용하여 표식, 위치 태그 지정 및 접두사, 접미사 등을 추가 할 수 있습니다.
Claude COULOMBE

5

언어 모델링에 관한 10 억 단어 에 대한 좋은 글이 있습니다 . 다음은 일부 발췌문입니다.

단어 수준 모델은 문자 수준 모델보다 중요한 이점이 있습니다.
다음 순서를 예로 들어 보자 (Robert A. Heinlein의 인용).

초기 라이저는 진보를 이루지 않습니다. 게으른 사람들이 무언가를하는 쉬운 방법을 찾으려고 노력했습니다.

토큰 화 후 단어 수준 모델은이 시퀀스에 22 개의 토큰이 포함 된 것으로 볼 수 있습니다. 반면에 캐릭터 레벨은이 시퀀스를 102 개의 토큰을 포함하는 것으로 간주합니다. 이 긴 시퀀스는 문자 모델의 작업을 단어 모델보다 어렵게 만듭니다. 더 많은 시간 단계에 걸쳐 더 많은 토큰 간의 종속성을 고려해야하기 때문입니다. 문자 언어 모델의 또 다른 문제는 구문, 의미 체계 외에도 철자를 배울 필요가 있다는 것입니다. 어쨌든 단어 언어 모델은 일반적으로 문자 모델보다 오류가 적습니다.

단어 언어 모델보다 문자 의 주요 장점은 단어가 매우 작다는 것입니다. 예를 들어 GBW 데이터 세트에는 800,000 단어와 비교하여 약 800자가 포함됩니다 (저주파 토큰 정리 후). 실제로 이것은 캐릭터 모델이 워드보다 메모리가 적고 추론이 빠르다는 의미입니다. 또 다른 장점은 전처리 단계로서 토큰 화가 필요하지 않다는 것입니다.


1

제 생각에는 캐릭터 기반 RNN도 더 잘 수행되지만 단어 기반 모델 및 캐릭터 기반 모델이 훨씬 더 오랜 기간 훈련 해야하는 것보다 훨씬 많은 데이터가 필요합니다. 나는 그것이 시행 착오에 더 가깝고 데이터와 계산 능력 사이의 트레이드 오프라고 말할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.