반응형
해당 포스트는 [WikiDocs] 딥 러닝을 이용한 자연어 처리 입문 을 보고 공부하면서 이론 위주의 요약 및 정리한 내용을 담았습니다.
자연어를 어떻게 수치화 할 것인가?
- 이산표현의 corpus 수치화 방법들
언어 모델 Language Model
다양한 단어의 표현 방법
- 국소 표현(Local) = 이산 표현(Discrete)
- 단어 그 자체만을 가지고 특정값을 매핑하여 단어를 표현 : Integer Encoding
- 분산 표현(Distributed) = 연속 표현(Continuous)
- 주변을 참고하여 단어를 표현
Part2에서 우리는 Local Representation에 대한 수치화 방법들을 알아볼 것
One Hot Vector
- 단어 개수가 늘어날 수록 벡터 차원이 너무 커져 비효율적
- 단어 간 유사성을 알 수 없음
- 해결 : 다차원 공간에 벡터화
1) count based : LSA, HAL
2) predict based : NNLM, RNNLM, Word2Vec, FastText
3) both : GloVe
SLM, Statistical Language Model
$x_1, x_2, x_3, x_4, x_5$ 이렇게 다섯개의 단어 존재할 때 조건부 확률에 대한 정의를 통해 문장의 확률을 구할 수 있다.
$P(x_1, x_2, x_3, x_4, x_5) = P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)P(x_4|x_1,x_2,x_3)P(x_5|x_1,x_2,x_3,x_4)$
전체 문장이 나올 확률은 다음 단어에 대한 예측 확률을 모두 곱하는 것
- Sparsity problem
- 충분한 데이터를 관측하지 못하여 언어를 정확히 모델링하지 못함
- 코퍼스에 확률을 계산하고 싶은 문장이나 단어가 없을 수 있음
N-gram
- 카운트에 기반한 통계적 접근으로 SLM의 일종
- 일부 단어 n개만 고려하는 접근 방법을 사용함 : n-1개만큼의 이전 단어로 n번째 단어 예측
Ex) $P(is | An adorable little boy)$ -> $P(is | little boy)$
- N-gram의 한계
1) Low Accuracy : 뒤의 단어 몇개만을 선택하기 때문에 문맥에 맞지 않는 단어가 선택될 수 있음
2) Sparsity Problem : 여전히 존재하는 희소 문제
3) Trade-off : N이 커지면 정확도는 높아질 수 있지만 Sparsity가 커짐
PPL, Perplexity
- 언어 모델을 평가하기 위한 성능 지표
- 선택할 수 있는 가능한 경우의 수를 의미하는 분기계수.
즉, PPL값 k의 의미는 모델이 단어를 예측할 때 평균 k개의 단어 중에서 고민하고 있는 것. - 수치가 낮을수록 성능이 좋다는 것을 의미
BoW, Bag of Words
- 단어의 순서는 전혀고려하지 않고 단어들의 출현 빈도에만 집중하는 텍스트 데이터의 수치화 표현 방법
- 각 단어에 고유한 정수 인덱스 부여
1) "소비는 할수록 소비가 커진다"
2) {소비:0, 는:1, 할수록:2, 가:3, 커진다:4} - 각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 벡터 생성
1) [2, 1, 1, 1, 1]
DTM, Document-Term Matrix
- 서로 다른 문서들의 BoW를 결합한 표현 방법
- 다수의 문서에서 등장하는 각 단어들의 빈도를 행렬로 표현한 것
- 한계
- Sparse representation
- 단순 빈도 수 기반 접근
TF-IDF, Term Frequency-Inverse Document Frequency
- DTM 내에 있는 각 단어에 대한 중요도를 계산할 수 있음
- DTM을 생성한 후 TF-IDF 가중치를 부여하며 다양한 작업에 쓰임
1) 문서 유서도 구하는 작업
2) 검색 결과의 중요도를 정하는 작업
3) 문서 내 특정 단어의 중요도를 구하는 작업
- $tf(d, t)$ : 특정 문서 d에서 특정 단어 t의 등장 횟수
- $df(t)$ : 특정 단어 t가 등장한 문서의 수
- $idf(d, t)$ : $df(t)$에 반비례하는 수
반응형
'Study > NLP' 카테고리의 다른 글
BERT Architecture (Transformer Encoder) (0) | 2022.05.25 |
---|---|
[NLP] Word2Vec : Skip-gram, SGNS(Skip-gram with Negative Sampling) (0) | 2022.04.20 |
[NLP] Seq2Seq, Attention Algorithm Structure (1) | 2022.04.10 |
[WikiDocs] 딥러닝 자연어 처리 입문 노트 정리, Part 1 (0) | 2022.04.05 |