## 1. n-gram이란 무엇인가? (What is an n-gram?)
n-gram은 아주 간단한 개념입니다.
- 정의: n개의 연속된 단어 묶음
- 목적: 문장 전체를 한 번에 다루기 어려우니, 확률 계산을 위해 문장을 n개 단위로 잘라서 분석하겠다는 의미입니다.
- 슬라이드 예시 분석: "오늘 학교에 왔다"
- Unigram (1-gram): 한 단어씩 묶은 것.
- "오늘", "학교에", "왔다"
- Bigram (2-gram): 두 단어씩 묶은 것.
- "오늘 학교에", "학교에 왔다"
- Trigram (3-gram): 세 단어씩 묶은 것.
- "오늘 학교에 왔다"
- Unigram (1-gram): 한 단어씩 묶은 것.
이처럼 n-gram은 문장을 분석하기 위한 기본 단위를 정의하는 방법입니다.
n-gram에서 n을 길게 할수록 희소성 문제는 훨씬 더 심각해집니다. 좋은 질문을 주셨는데, 많은 분들이 헷갈려 하는 부분이라 비유를 통해 명확하게 설명해 드릴게요.
핵심 원리는 **"n이 길어질수록 가능한 조합의 수가 기하급수적으로 늘어나고, 특정 조합이 내가 가진 한정된 데이터에 존재할 확률은 급격히 낮아지기 때문"**입니다.
## 도서관 비유로 이해하기 🧐
내가 가진 학습 데이터를 '도서관에 있는 모든 책'이라고 상상해 봅시다.
- n=1 (Unigram) 찾기
- 도서관에서 "the"라는 단어를 찾는 것과 같습니다.
- 결과: 너무나도 쉽게, 수백만 번 찾을 수 있습니다. 희소성 문제가 전혀 없습니다.
- n=2 (Bigram) 찾기
- 도서관에서 "the house"라는 구절을 찾는 것과 같습니다.
- 결과: 이것도 매우 흔해서, 수만 번은 찾을 수 있습니다. 희소성 문제가 거의 없습니다.
- n=5 (5-gram) 찾기
- 도서관에서 "the house is on fire"라는 구절을 찾는 것과 같습니다.
- 결과: 이제부터 찾기 어려워집니다. 소설책 몇 권에서나 간신히 찾을 수 있을 겁니다. 카운트가 급격히 줄어 희소성이 보이기 시작합니다.
- n=10 (10-gram) 찾기
- 도서관에서 "the house is on fire, said the boy"라는 구절을 찾는 것과 같습니다.
- 결과: 이 문장은 문법적으로 완벽하지만, 도서관 전체를 다 뒤져도 정확히 이 순서로 된 구절은 단 한 번도 등장하지 않을 가능성이 매우 높습니다. 이것이 바로 희소성 문제입니다.
## 수학적 관점 🔢
사용자님의 생각 "n을 길게 뽑으면 나올 가능성이 더 높아지는 거 아닌가?"는 **'문맥을 더 많이 알아서 예측이 더 정확해진다'**는 이론적인 장점만 보신 것입니다. 하지만 통계 기반 n-gram 모델은 '의미'를 이해하는 것이 아니라, **'똑같은 것을 본 적이 있는가'**를 카운트할 뿐입니다.
- 단어 종류(Vocabulary)가 10,000개라고 가정해 봅시다.
- Bigram (n=2)의 경우의 수: 10,000 × 10,000 = 1억 개
- Trigram (n=3)의 경우의 수: 10,000 × 10,000 × 10,000 = 1조 개
- 5-gram (n=5)의 경우의 수: 10,000의 5제곱 = 100,000,000,000,000,000,000개 (100경)
아무리 구글이 가진 방대한 데이터를 쓴다고 해도, 저 천문학적인 경우의 수를 모두 포함할 수는 없습니다. 따라서 n이 길어질수록, 우리가 마주칠 대부분의 문장은 학습 데이터에 한 번도 등장하지 않은 조합일 수밖에 없습니다.
## 결론
- n을 길게 한다는 것은 더 구체적인(specific) 문맥을 보겠다는 의미입니다.
- 문맥이 구체적일수록 이론적인 예측 정확도는 올라가지만, 그 구체적인 문맥을 학습 데이터에서 본 적이 있을 확률(카운트)은 0에 수렴하게 됩니다.
- 이 때문에 n-gram 모델은 정확성(높은 n)과 희소성(낮은 n) 사이의 트레이드오프(trade-off) 관계를 가지며, 스무딩이나 백오프 같은 기법으로 이 문제를 '완화'할 뿐 '해결'하지는 못합니다.
이것이 바로 단어의 의미 자체를 학습하는 신경망 언어 모델이 등장하게 된 근본적인 이유입니다.
## 2. 마르코프 가정 (The Markov Assumption) - 현실과의 타협
지난 시간에 통계 기반 모델은 희소성 문제(Sparsity Problem) 때문에 긴 문장의 확률을 계산하기 어렵다고 배웠습니다. 마르코프 가정은 이 문제를 해결하기 위한 매우 실용적인 아이디어입니다.
- 문제 인식: "나는 오늘 아침에 밥을 먹고 파란색 버스를 타고 학교에 왔다"에서 '왔다'를 예측하기 위해 문장 전체를 고려하는 것은 불가능하다. (count(나는 오늘...학교에))를 찾는 것은 거의 불가능)
- 핵심 아이디어 (가정):즉, '왔다'라는 단어는 '나는', '아침에' 같은 먼 단어보다는, 바로 앞의 '학교에'라는 단어의 영향을 훨씬 더 많이 받는다는 현실적인 가정을 하는 것입니다.
- "어떤 단어의 등장 확률은 먼 과거의 모든 단어가 아니라, 바로 앞의 몇 개 단어에만 영향을 받을 것이다."
- 수식으로 이해하기:
- ≈ (근사): 왼쪽의 '정확한 확률' 계산이 불가능하니, 오른쪽의 '단축된 확률'로 **대략 비슷할 것이라고 가정(근사)**하겠다는 의미입니다.
- w_1, ..., w_{t-1}: 단어의 전체 역사 (full history)
- w_{t-n+1}, ..., w_{t-1}: 예측할 단어(w_t) 바로 앞의 n-1개 단어 (recent history)
## 3. n-gram 모델과 마르코프 가정의 결합
이제 이 두 개념이 어떻게 함께 작동하는지 보겠습니다. n-gram 모델은 마르코프 가정을 실제로 구현하는 방법입니다.
- Bigram (n=2) 모델의 경우:
- 가정: 다음 단어는 바로 앞 1개(n-1)의 단어에만 영향을 받는다.
- 적용: P(왔다 | 오늘 학교에) 라는 어려운 계산 대신, 마르코프 가정을 적용하여 **P(왔다 | 학교에)** 라는 훨씬 간단한 문제로 바꿉니다.
- 계산: 이제 우리는 count("학교에 왔다") / count("학교에") 라는 계산 가능한 확률을 얻게 됩니다.
- Trigram (n=3) 모델의 경우:
- 가정: 다음 단어는 바로 앞 2개(n-1)의 단어에만 영향을 받는다.
- 적용: P(왔다 | 오늘 학교에)는 **P(왔다 | 오늘 학교에)**로 계산합니다. (이 문장은 짧아서 전체가 되지만, 더 긴 문장에서도 바로 앞 두 단어만 봅니다.)
- 계산: count("오늘 학교에 왔다") / count("오늘 학교에") 로 확률을 계산합니다.
## 🦉 시험 대비 최종 요약
- n-gram: 문장을 분석하기 위한 'n개의 연속된 단어 묶음'.
- 마르코프 가정: 다음 단어 예측 시, 전체 문맥 대신 '바로 앞 n-1개 단어'라는 짧은 문맥만 본다는 현실적인 가정.
- 마르코코프 가정을 쓰는 이유: 통계 기반 모델의 고질적인 희소성 문제(Sparsity Problem)를 해결하기 위해서.
- n-gram 모델의 작동 방식:
- Unigram (n=1): 문맥을 전혀 보지 않음. P(왔다)
- Bigram (n=2): 바로 앞 1개 단어만 봄. P(왔다 | 학교에)
- Trigram (n=3): 바로 앞 2개 단어만 봄. P(왔다 | 오늘 학교에)
- n-gram의 Trade-off (장단점):
- n이 커지면? 더 많은 문맥을 반영해 예측이 정확해지지만, 다시 희소성 문제가 발생할 가능성이 커진다.
- n이 작아지면? 희소성 문제는 줄어들지만, 문맥을 너무 적게 반영하여 예측의 정확도가 떨어진다.
## 1. n-gram 모델의 확률 계산: 현실적인 연쇄 법칙
n-gram 모델은 이전에 배운 '연쇄 법칙(Chain Rule)'을 그대로 사용하지 않고, 마르코프 가정에 따라 현실적으로 단순화(근사)해서 사용합니다. 슬라이드의 그림은 이 과정을 완벽하게 보여줍니다.
- 문장: "this is the house that Alice built"
- 목표: 문장 전체의 확률 p(this is the house that Alice built) 구하기
이것을 계산하기 위해 각 단어의 확률을 곱해야 하는데, n-gram 모델별로 다음과 같이 마지막 단어 built의 확률을 다르게 계산합니다.
- Chain Rule (이상적인 모델):
- p(built | this is the house that Alice)
- 의미: 'built' 이전의 모든 단어를 문맥으로 고려합니다. 현실적으로 희소성 문제 때문에 계산이 거의 불가능합니다.
- Trigram (n=3) 모델:
- p(built | that Alice)
- 의미: 'built' 바로 앞의 2개(n-1) 단어만 문맥으로 봅니다. 훨씬 현실적인 근사치입니다.
- Bigram (n=2) 모델:
- p(built | Alice)
- 의미: 'built' 바로 앞의 1개(n-1) 단어만 문맥으로 봅니다. 더 많이 단순화되었습니다.
- Unigram (n=1) 모델:
- p(built)
- 의미: 문맥을 전혀 고려하지 않고(n-1=0), 그냥 'built'라는 단어 자체의 등장 확률만 봅니다.
핵심: n-gram 모델은 긴 문맥을 n-1개의 짧은 문맥으로 잘라내어 희소성 문제를 해결하고 확률 계산을 가능하게 만드는 것입니다.
## 2. n값 선택의 중요성: Trade-off 관계
n을 얼마로 설정할지는 n-gram 모델의 성능을 결정하는 매우 중요한 문제입니다. n의 크기에 따라 명확한 장단점이 존재하며, 이를 **Trade-off(상충 관계)**라고 합니다.
n이 작은 경우 (e.g., Bigram, n=2)
- ✅ 장점 (Advantages):
- 희소성 문제 덜함: 문맥으로 보는 단어가 적기 때문에(e.g., "Alice"), 해당 문맥이 데이터에 존재할 확률이 높습니다. 즉, 웬만한 문장은 확률 계산이 가능합니다.
- 적은 데이터로 학습 가능: 카운트할 n-gram의 종류가 적으므로, 데이터가 많지 않아도 괜찮습니다.
- 계산량이 적음: 모델이 단순해서 계산이 빠릅니다.
- 😥 단점 (Disadvantages):
- 문맥 정보 활용 어려움: 바로 앞 한두 단어만 보기 때문에 문장의 전체적인 의미나 복잡한 구조를 파악하지 못합니다.
- 긴 의존성 표현 불가능: 예를 들어, "I live in a small village in the mountains and speak fluent... (나는 산속 작은 마을에 살고 유창한 ...를 구사한다)" 에서 다음에 올 'Korean'을 예측하려면 'I'라는 주어를 봐야 하지만, Bigram 모델은 'fluent'만 보기 때문에 정확한 예측이 어렵습니다.
n이 큰 경우 (e.g., 4-gram, n=4)
- ✅ 장점 (Advantages):
- 더 많은 문맥 정보 반영 → 예측 정확도 증가: 더 긴 앞부분의 내용을 참고하므로, 다음에 올 단어를 훨씬 더 정확하게 예측할 수 있습니다. 문장의 자연스러움이 향상됩니다.
- 😥 단점 (Disadvantages):
- 희소성 문제 심각: 문맥이 길어지면서(e.g., "house that Alice"), 해당 문맥이 학습 데이터에 한 번도 등장하지 않았을 확률이 기하급수적으로 높아집니다.
- 계산량이 많음: 고려해야 할 n-gram의 종류가 폭발적으로 증가하여 많은 메모리와 계산 시간이 필요합니다.
- 아주 긴 문맥은 여전히 포함 불가: n을 5나 6으로 늘려도, 결국 몇십 개 단어에 걸친 긴 의존성은 여전히 파악할 수 없습니다.
## 🦉 시험 대비 최종 요약
- n-gram 모델의 계산: 이상적인 연쇄 법칙을 '바로 앞 n-1개 단어만 보는' 현실적인 방식으로 근사하여 계산한다.
- n 선택의 Trade-off: n-gram 모델의 성능은 정확성(높은 n)과 일반화/안정성(낮은 n) 사이의 줄다리기와 같다.
- n이 작을 때 (Small n): 희소성 문제 ↓, 정확도 ↓ (문맥을 거의 못 봄)
- n이 클 때 (Large n): 정확도 ↑, 희소성 문제 ↑ (처음 보는 문장에 취약)
- 결론: 적절한 n값을 선택하는 것이 중요하며, 이 근본적인 한계 때문에 현대에는 신경망 기반 언어 모델이 주류가 되었다.
이 슬라이드들은 n-gram 모델의 치명적인 약점인 **희소성 문제(Sparsity Problem)**와 이를 해결하기 위한 스무딩(Smoothing) 기법들을 설명하고 있습니다. 시험에 단골로 출제되는 주제이니, 각 기법의 원리와 차이점을 중심으로 완벽하게 설명해 드릴게요.
## 1. 희소성 문제 (The Sparsity Problem): 왜 확률이 0이 되면 안되는가?
n-gram 모델은 학습 데이터에 등장한 횟수(카운트)를 기반으로 확률을 계산합니다. 여기서 심각한 문제가 발생합니다.
- 문제점: 학습 데이터에 단 한 번도 나오지 않은 n-gram은 확률이 0이 됩니다.
- 예시: 슬라이드처럼 단어 집합(Vocabulary)이 {a, b, c}일 때, 가능한 bigram은 "aa, ab, ac, ba, bb, bc, ca, cb, cc" 총 9가지입니다.
- 하지만 우리가 가진 데이터(Corpus)에 "ab", "bc", "ab", "ac"만 있다면, "aa"나 "bb" 같은 bigram은 한 번도 등장하지 않았으므로 count(aa)는 0이 됩니다.
- 치명적인 결과: 문장 전체의 확률은 연쇄 법칙에 따라 각 n-gram의 확률을 곱해서 계산됩니다. 이때, 단 하나의 n-gram이라도 확률이 0이면 문장 전체의 확률도 0이 되어버립니다.
- 이는 문법적으로 완벽하고 의미가 통하는 문장일지라도, 학습 데이터에서 본 적 없다는 이유만으로 "절대 나타날 수 없는 문장"이라고 잘못 판단하는 결과를 낳습니다.
## 2. 스무딩 (Smoothing): 없는 것에 확률을 나눠주는 기술
스무딩은 희소성 문제를 해결하기 위한 모든 기법을 통칭하는 말입니다.
- 핵심 아이디어:
- "학습 데이터에서 관측된 n-gram들의 확률을 조금씩 깎아서, 관측되지 않은 (unseen) n-gram들에게 아주 작은 확률이라도 나눠주자!"
- 목적:
- 관측되지 않은 n-gram의 확률이 0이 되는 것을 방지합니다.
- 전체적인 확률 분포를 더 현실적이고 부드럽게(Smooth) 보정합니다.
이제 대표적인 스무딩 기법 두 가지를 살펴보겠습니다.
## 3. 스무딩 기법 1: Add-one (Laplace) Smoothing
가장 간단하고 직관적인 스무딩 방법입니다.
- 원리: "모든 종류의 n-gram 카운트에 묻지도 따지지도 않고 그냥 1을 더하자!"
- 적용:
- count(aa)는 원래 0이었지만, Add-one 스무딩을 적용하면 0 + 1 = 1이 됩니다.
- count(ab)는 원래 2였지만, 2 + 1 = 3이 됩니다.
- 확률 계산: 분자에 1을 더했으므로, 전체 확률의 합이 1이 되도록 분모도 보정해주어야 합니다. 분모에는 **전체 단어의 개수(V, Vocabulary size)**를 더해줍니다.
- 수식:
- 장점: 구현이 매우 간단하고, 절대 0이 되는 확률을 만들지 않습니다.
- 단점: 관측되지 않은 수많은 n-gram에 너무 많은 확률을 낭비합니다. 특히 단어 수가 많아질수록(V가 커질수록) 기존에 관측된 n-gram들의 확률을 너무 많이 깎아내려 분포를 심하게 왜곡할 수 있습니다.
## 4. 스무딩 기법 2: Good-Turing Smoothing
Add-one보다 훨씬 정교하고 성능이 좋은 방법입니다.
- 핵심 아이디어:특히, **"한 번 등장한(빈도=1) n-gram들의 지분을 조금 떼어다가, 한 번도 등장하지 않은(빈도=0) n-gram들에게 나눠주자"**는 개념이 핵심입니다.
- "빈도수가 c+1번인 n-gram들의 정보를 활용해서, 빈도수가 c번인 n-gram들의 확률을 재평가하자."
- 카운트 보정 수식:
- c: 원래 카운트 (e.g., count(aa) = 0)
- N_c: 카운트가 정확히 c번인 n-gram의 종류(type) 수
- c*: 보정된 새로운 카운트
- 슬라이드 예시로 계산하기:
- 목표: 한 번도 안 나온 "aa"의 보정된 카운트 c* 구하기 (즉, c=0일 때)
- Corpus: {"ab", "bc", "ab", "ac"}
- N_c 계산:
- N_1 (카운트가 1인 bigram 종류 수): "bc", "ac" 두 종류 → N_1 = 2
- N_0 (카운트가 0인 bigram 종류 수): 전체 9개 중 3개("ab", "bc", "ac")를 제외한 여섯 종류 → N_0 = 6
- c* 계산 (c=0 대입):
- c* = (0 + 1) * (N_1 / N_0) = 1 * (2 / 6) = 1/3
- 결과: "aa", "bb" 등 한 번도 관측되지 않은 모든 bigram의 보정된 카운트는 1/3이 됩니다. 0이 아닌 값을 가지게 되었으므로 희소성 문제가 해결됩니다.
## 🦉 시험 대비 최종 요약
- 희소성 문제: 학습 데이터에 없는 n-gram의 확률이 0이 되어, 문장 전체 확률이 0이 되는 문제.
- 스무딩: 이 문제를 해결하기 위해, 본 적 없는 n-gram에 확률을 빌려주는 모든 기법.
- Add-one 스무딩: 가장 단순한 방법. 모든 카운트에 +1을 하고 분모에 +V를 한다. 간단하지만 분포 왜곡이 심할 수 있다.
- Good-Turing 스무딩: 정교한 방법. **'c+1번 나온 종류의 수'**를 이용해 **'c번 나온 것들'**의 카운트를 재조정한다. 일반적으로 Add-one보다 성능이 우수하다.
## 1. n-gram 언어 모델의 4가지 명백한 한계
n-gram 모델은 통계적 접근법의 정수이지만, 다음과 같은 4가지 명백한 한계점을 가지고 있습니다.
- 짧은 문맥 한계 (Short Context Limit)
- n-gram은 마르코프 가정에 따라 바로 앞의 n-1개 단어만 보기 때문에, 문장 전체에 걸친 긴 의존 관계(Long-distance dependencies)를 파악할 수 없습니다.
- 예시: "저 멀리 산기슭에 있는 예쁜 집에 사는 그 소녀는 행복하다." 라는 문장에서, '행복하다'의 주어는 '소녀'입니다. 하지만 Trigram 모델(n=3)은 '사는 그' 라는 단어만 보고 '행복하다'를 예측해야 하므로, 제대로 된 예측이 거의 불가능합니다.
- 희소성 문제 (Sparsity Problem)
- 이전에 배운 것처럼, n이 조금만 커져도 학습 데이터에 없는 n-gram이 나타날 확률이 매우 높습니다. 스무딩이나 백오프 같은 기법으로 완화할 수는 있지만, 근본적으로 해결되지는 않는 고질적인 문제입니다.
- 의미 파악의 어려움 (No Semantic Understanding) 😭
- n-gram 모델은 단어를 그저 기호(symbol)로 취급할 뿐, 단어의 의미나 단어 간의 유사성을 전혀 이해하지 못합니다.
- 예시: 모델이 "고양이가 귀엽다"라는 문장을 학습했더라도, "야옹이가 귀엽다"라는 문장은 완전히 새로운 n-gram으로 취급합니다. '고양이'와 '야옹이'가 의미적으로 매우 유사하다는 사실을 알지 못합니다. 이 때문에 새로운 표현에 매우 취약합니다.
- 높은 메모리/계산량 (High Memory/Computation)
- 모델은 학습 데이터에 등장한 모든 n-gram의 카운트를 사전처럼 저장해야 합니다. 데이터가 커지거나 n값이 커지면 이 사전의 크기가 기하급수적으로 커져 엄청난 메모리 공간을 차지합니다.
## 2. 희소성 문제 해결을 위한 고급 기법들
이러한 한계, 특히 희소성 문제를 해결하기 위해 다음과 같은 더 정교한 기법들이 개발되었습니다.
1) Kneser-Ney Smoothing: '맥락 다양성'의 발견
가장 성능이 좋다고 알려진 표준적인 스무딩 기법입니다.
- 핵심 아이디어: 단순히 얼마나 자주 등장했는지(카운트)만 보지 말고, 얼마나 다양한 문맥에서 등장했는지(Context Diversity)를 함께 고려하자!
- 직관적 예시:
- "Francisco": 이 단어는 거의 항상 "San" 뒤에만 나타납니다. 즉, 등장하는 문맥이 매우 한정적입니다.
- "book": 이 단어는 "read a", "interesting", "buy the" 등 매우 다양한 단어 뒤에 나타날 수 있습니다.
- 결론: Kneser-Ney 스무딩은 "book"처럼 다양한 문맥에서 등장하는 단어가, "Francisco"처럼 특정 문맥에만 갇혀있는 단어보다 새로운 문맥에서도 등장할 확률이 더 높다고 보고 확률을 보정합니다. 이로써 훨씬 더 현실적인 확률 분포를 만들어냅니다.
2) 백오프 (Backoff): '플랜 B' 전략
스무딩과는 약간 다른 접근법입니다.
- 핵심 아이디어: 일단 가장 정보가 많은 긴 n-gram(e.g., Trigram)으로 확률을 계산해보고, 만약 카운트가 0이면 더 짧은 n-gram(e.g., Bigram)으로 물러나서(back off) 확률을 추정하자.
- 작동 방식 (폭포수 모델):
- Try Trigram: P(C | A, B)를 계산 시도.
- If Fails (count=0): Back off to Bigram. P(C | B)를 대신 사용.
- If Fails (count=0): Back off to Unigram. P(C)를 대신 사용.
- 특징: 한 번에 하나의 모델만 사용합니다. 긴 n-gram이 실패했을 때를 대비한 '비상 계획'과 같습니다.
3) 내삽 (Interpolation): '전문가 믹스' 전략
백오프와 비슷하지만, 더 세련된 방식입니다.
- 핵심 아이디어: 긴 n-gram과 짧은 n-gram을 모두 사용하되, 각각의 예측 결과를 가중치를 두어 섞어주자(blend).
- 작동 방식 (가중 평균):
- 최종 확률 = λ₁ * P(Trigram) + λ₂ * P(Bigram) + λ₃ * P(Unigram)
- λ (람다)는 각 모델의 예측을 얼마나 신뢰할지를 나타내는 가중치이며, λ₁ + λ₂ + λ₃ = 1 입니다.
- 특징: 특정 n-gram 정보가 없더라도 다른 n-gram들의 정보를 모두 활용하므로, 백오프보다 더 안정적이고 부드러운 확률을 추정할 수 있습니다.
## 🦉 시험 대비 최종 요약
- n-gram의 4대 한계: 짧은 문맥, 희소성, 의미 이해 불가, 높은 메모리 사용량. 이 단점들 때문에 신경망 모델이 필요해졌습니다.
- Kneser-Ney Smoothing: 가장 정교한 스무딩. 단순 카운트가 아닌 **'맥락 다양성'**을 고려합니다.
- Backoff vs. Interpolation:
- 백오프: 하나만 선택. 긴 n-gram이 실패하면 짧은 n-gram으로 물러나는 방식.
- 내삽(Interpolation): 모두 섞어서 사용. 긴 n-gram과 짧은 n-gram의 예측 결과를 가중 평균 내는 방식.
'코딩공부 > 자연어처리' 카테고리의 다른 글
| 내가 시험공부하려고 만든 자연어처리-신경망 기반 언어 모델 (0) | 2025.10.09 |
|---|---|
| 내가 시험공부하려고 만든 자연어처리-언어모델 (0) | 2025.10.09 |
| 내가 시험공부하려고 만든 자연어처리-ELMo,BERT (1) | 2025.10.09 |
| 내가 시험공부하려고 만든 자연어처리-유도 바이어스(Inductive Bias,RNN,Transformer) (0) | 2025.10.09 |
| 내가 시험공부하려고 만든 자연어처리-동적임베딩의 필요성 (0) | 2025.10.09 |