문자 임베딩
- 문자 레벨 표현 벡터는 어떤 단어이든 기본적으로 문자 레벨로 쪼개지므로
기존 워드 임베딩의 접근에서 OOV라고 하더라고 벡터를 얻을 수 있음 - 예) 'mis-' + 'understimate'
두 단어를 합쳤을 때 실존하는 단어가 아님에도 단어의 뜻을 '잘못 판단하는-' + '과소평가하다' = '잘못 과소평가하다'라고 추측 - 문자 임베딩은 사람의 이해 능력을 흉내내는 알고리즘으로 CNN과 RNN을 이용한 두 가지 방법을 제시
1D CNN을 이용한 문자 임베딩
- 1D CNN은 전체 시퀀스 입력 안의 더 작은 시퀀스(단어가 문자 단위로 쪼개진 입력)에 집중하여
정보를 얻어내는 동작을 하는 알고리즘 - 1D CNN을 문자 임베딩에 사용할 경우 문자의 N-gram으로부터 정보를 얻어내게 됨
- 예) 단어 'have'에 대해서 1D CNN을 통해서 단어 표현 벡터를 얻는 과정
1) 단어 'have'를 'h', 'a', 'v', 'e'와 같이 문자 단위로 분리
2) 임베딩을 단어에 대해서 하는 것이 아니라 문자에 대해서 하게 됨
3) 커널 사이즈가 4인 커널 2개, 3인 커널 2개, 2인 커널 2개를 사용하여 1D CNN을 적용
4) 벡터가 6개이므로 맥스 풀링을 한 후 6개의 스칼라값들을 전부 연결하여 하나의 벡터로 만들어줌
5) 최종적으로 얻은 벡터를 단어 'have'의 벡터로 사용하게 됨

BiLSTM을 이용한 문자 임베딩
- 1D CNN과 마찬가지로 단어를 문자로 쪼갠 후, 임베딩 층을 사용하여 문자 임베딩을 입력으로 사용함
- 예) 단어 'have'에 대해서 양방향 LSTM을 통해서 단어 표현 벡터를 얻는 과정
1) 단어 'have'를 'h', 'a', 'v', 'e'와 같이 문자 단위로 분리
2) 임베딩을 단어에 대해서 하는 것이 아니라 문자에 대해서 하게 됨
3) 순방향 LSTM은 단어 순방향으로 순차적으로 문자 임베딩 벡터를 읽고
역방향 LSTM은 단어 역방향으로 순차적으로 문자 임베딩 벡터를 읽음
4) 순방향 LSTM의 마지막 시점의 은닉 상태와 역방향 LSTM의 첫 번째 시점의 은닉 상태를 연결하여 하나의 벡터로 만들어줌
5) 최종적으로 얻은 벡터를 단어 'have'의 벡터로 사용하게 됨

'ML > 딥 러닝을 이용한 자연어 처리' 카테고리의 다른 글
[딥 러닝을 이용한 자연어 처리 입문] 12. 태깅 작업 - 개체명 인식 (0) | 2022.12.31 |
---|---|
[딥 러닝을 이용한 자연어 처리 입문] 12. 태깅 작업 - 케라스를 이용한 태깅 작업 (0) | 2022.12.30 |
[딥 러닝을 이용한 자연어 처리 입문] 11. NLP를 위한 합성곱 신경망 - 사전 훈련된 워드 임베딩을 이용한 의도 분류 (0) | 2022.12.29 |
[딥 러닝을 이용한 자연어 처리 입문] 11. NLP를 위한 합성곱 신경망 - 자연어 처리를 위한 1D CNN (0) | 2022.12.29 |
[딥 러닝을 이용한 자연어 처리 입문] 11. NLP를 위한 합성곱 신경망 - 합성곱 신경망 (0) | 2022.12.28 |
문자 임베딩
- 문자 레벨 표현 벡터는 어떤 단어이든 기본적으로 문자 레벨로 쪼개지므로
기존 워드 임베딩의 접근에서 OOV라고 하더라고 벡터를 얻을 수 있음 - 예) 'mis-' + 'understimate'
두 단어를 합쳤을 때 실존하는 단어가 아님에도 단어의 뜻을 '잘못 판단하는-' + '과소평가하다' = '잘못 과소평가하다'라고 추측 - 문자 임베딩은 사람의 이해 능력을 흉내내는 알고리즘으로 CNN과 RNN을 이용한 두 가지 방법을 제시
1D CNN을 이용한 문자 임베딩
- 1D CNN은 전체 시퀀스 입력 안의 더 작은 시퀀스(단어가 문자 단위로 쪼개진 입력)에 집중하여
정보를 얻어내는 동작을 하는 알고리즘 - 1D CNN을 문자 임베딩에 사용할 경우 문자의 N-gram으로부터 정보를 얻어내게 됨
- 예) 단어 'have'에 대해서 1D CNN을 통해서 단어 표현 벡터를 얻는 과정
1) 단어 'have'를 'h', 'a', 'v', 'e'와 같이 문자 단위로 분리
2) 임베딩을 단어에 대해서 하는 것이 아니라 문자에 대해서 하게 됨
3) 커널 사이즈가 4인 커널 2개, 3인 커널 2개, 2인 커널 2개를 사용하여 1D CNN을 적용
4) 벡터가 6개이므로 맥스 풀링을 한 후 6개의 스칼라값들을 전부 연결하여 하나의 벡터로 만들어줌
5) 최종적으로 얻은 벡터를 단어 'have'의 벡터로 사용하게 됨

BiLSTM을 이용한 문자 임베딩
- 1D CNN과 마찬가지로 단어를 문자로 쪼갠 후, 임베딩 층을 사용하여 문자 임베딩을 입력으로 사용함
- 예) 단어 'have'에 대해서 양방향 LSTM을 통해서 단어 표현 벡터를 얻는 과정
1) 단어 'have'를 'h', 'a', 'v', 'e'와 같이 문자 단위로 분리
2) 임베딩을 단어에 대해서 하는 것이 아니라 문자에 대해서 하게 됨
3) 순방향 LSTM은 단어 순방향으로 순차적으로 문자 임베딩 벡터를 읽고
역방향 LSTM은 단어 역방향으로 순차적으로 문자 임베딩 벡터를 읽음
4) 순방향 LSTM의 마지막 시점의 은닉 상태와 역방향 LSTM의 첫 번째 시점의 은닉 상태를 연결하여 하나의 벡터로 만들어줌
5) 최종적으로 얻은 벡터를 단어 'have'의 벡터로 사용하게 됨

'ML > 딥 러닝을 이용한 자연어 처리' 카테고리의 다른 글
[딥 러닝을 이용한 자연어 처리 입문] 12. 태깅 작업 - 개체명 인식 (0) | 2022.12.31 |
---|---|
[딥 러닝을 이용한 자연어 처리 입문] 12. 태깅 작업 - 케라스를 이용한 태깅 작업 (0) | 2022.12.30 |
[딥 러닝을 이용한 자연어 처리 입문] 11. NLP를 위한 합성곱 신경망 - 사전 훈련된 워드 임베딩을 이용한 의도 분류 (0) | 2022.12.29 |
[딥 러닝을 이용한 자연어 처리 입문] 11. NLP를 위한 합성곱 신경망 - 자연어 처리를 위한 1D CNN (0) | 2022.12.29 |
[딥 러닝을 이용한 자연어 처리 입문] 11. NLP를 위한 합성곱 신경망 - 합성곱 신경망 (0) | 2022.12.28 |