의미 체계 언어 모델
비고
자세한 내용은 텍스트 및 이미지 탭을 참조하세요.
NLP에 대한 최첨단이 발전함에 따라 토큰 간의 의미 체계 관계를 캡슐화하는 모델을 학습시키는 기능이 강력한 딥 러닝 언어 모델의 출현으로 이어졌습니다. 이러한 모델의 핵심은 언어 토큰을 포함이라고 하는 벡터(숫자의 다중값 배열)로 인코딩하는 것입니다.
텍스트 모델링에 대한 이 벡터 기반 접근 방식은 텍스트 토큰이 여러 차원의 조밀한 벡터로 표현되는 Word2Vec 및 GloVe와 같은 기술에서 일반화되었습니다. 모델 학습 중에 차원 값은 학습 텍스트의 사용량에 따라 각 토큰의 의미 체계 특성을 반영하도록 할당됩니다. 그런 다음 벡터 간의 수학 관계를 활용하여 일반적인 텍스트 분석 작업을 이전 순수 통계 기법보다 더 효율적으로 수행할 수 있습니다. 이 방법의 최근 발전은 주의 라는 기술을 사용하여 컨텍스트에서 각 토큰을 고려하고 그 주변의 토큰의 영향을 계산하는 것입니다. GPT 모델군의 맥락화된 결과 임베딩은 최신 생성 AI의 기반을 제공합니다.
텍스트를 벡터로 표현
벡터는 여러 축을 따라 좌표로 정의된 다차원 공간의 점을 나타냅니다. 각 벡터는 원점으로부터의 방향과 거리를 설명합니다. 의미상 유사한 토큰은 벡터의 방향이 비슷해야 합니다. 즉, 유사한 방향을 가리켜야 합니다.
예를 들어 몇 가지 일반적인 단어에 대해 다음 3차원 포함을 고려합니다.
| 단어 | Vector |
|---|---|
dog |
[0.8, 0.6, 0.1] |
puppy |
[0.9, 0.7, 0.4] |
cat |
[0.7, 0.5, 0.2] |
kitten |
[0.8, 0.6, 0.5] |
young |
[0.1, 0.1, 0.3] |
ball |
[0.3, 0.9, 0.1] |
tree |
[0.2, 0.1, 0.9] |
다음과 같이 이러한 벡터를 3차원 공간으로 시각화할 수 있습니다.
벡터 "dog"와 "cat"는 유사하며(두 동물 모두 가축입니다), "puppy"와 "kitten"도 유사합니다(두 동물 모두 어린 개체입니다). 단어 "tree", "young", ball"는 각각 서로 다른 의미를 반영하며, 이에 따라 벡터 방향도 뚜렷하게 다릅니다.
벡터에 인코딩된 의미 체계 특성을 사용하면 단어를 비교하고 분석 비교를 가능하게 하는 벡터 기반 작업을 사용할 수 있습니다.
관련 용어 찾기
벡터의 방향은 차원 값에 따라 결정되므로 의미 체계 의미가 비슷한 단어는 비슷한 방향을 갖는 경향이 있습니다. 즉, 벡터 간의 코사인 유사성 과 같은 계산을 사용하여 의미 있는 비교를 수행할 수 있습니다.
예를 들어 , 및 "dog", "cat"사이의 "tree""홀수 아웃"을 확인하려면 벡터 쌍 간의 코사인 유사성을 계산할 수 있습니다. 코사인 유사성은 다음과 같이 계산됩니다.
cosine_similarity(A, B) = (A · B) / (||A|| * ||B||)
A · B는 점곱이며 ||A||는 벡터 A의 크기입니다.
세 단어 사이의 유사점 계산:
dog[0.8, 0.6, 0.1] 및cat[0.7, 0.5, 0.2]:- 점 제품: (0.8 × 0.7) + (0.6 × 0.5) + (0.1 × 0.2) = 0.56 + 0.30 + 0.02 = 0.88
-
dog의 크기: √(0.8² + 0.6² + 0.1²) = √(0.64 + 0.36 + 0.01) = √1.01 ≈ 1.005 - 벡터의 크기
cat: √(0.7² + 0.5² + 0.2²) = √(0.49 + 0.25 + 0.04) = √0.78 ≈ 0.883 - 코사인 유사성: 0.88/ (1.005 × 0.883) ≈ 0.992 (높은 유사성)
dog[0.8, 0.6, 0.1] 및tree[0.2, 0.1, 0.9]:- 점 제품: (0.8 × 0.2) + (0.6 × 0.1) + (0.1 × 0.9) = 0.16 + 0.06 + 0.09 = 0.31
-
tree크기: √(0.2² + 0.1² + 0.9²) = √(0.04 + 0.01 + 0.81) = √0.86 ≈ 0.927 - 코사인 유사성: 0.31/ (1.005 × 0.927) ≈ 0.333 (낮은 유사성)
cat[0.7, 0.5, 0.2] 및tree[0.2, 0.1, 0.9]:- 점 제품: (0.7 × 0.2) + (0.5 × 0.1) + (0.2 × 0.9) = 0.14 + 0.05 + 0.18 = 0.37
- 코사인 유사성: 0.37 / (0.883 × 0.927) ≈ 0.452 (낮은 유사성)
결과는 "dog"와 "cat"이 매우 유사하며 (0.992), "tree"는 "dog" (0.333) 및 "cat" (0.452)에 비해 유사성이 더 낮다는 것을 보여줍니다. 따라서 tree은 분명히 눈에 띄는 항목입니다.
더하기 및 빼기로 벡터 변환
벡터를 추가하거나 빼서 새 벡터 기반 결과를 생성할 수 있습니다. 그러면 일치하는 벡터가 있는 토큰을 찾는 데 사용할 수 있습니다. 이 기술을 사용하면 직관적인 산술 기반 논리가 언어 관계를 기반으로 적절한 용어를 결정할 수 있습니다.
예를 들어 이전의 벡터를 사용합니다.
-
dog+young= [0.8, 0.6, 0.1] + [0.1, 0.1, 0.3] = [0.9, 0.7, 0.4] =puppy -
cat+young= [0.7, 0.5, 0.2] + [0.1, 0.1, 0.3] = [0.8, 0.6, 0.5] =kitten
이러한 작업은 "young" 벡터가 성체 동물을 어린 동물로 변환하는 의미적 변화를 인코딩하기 때문에 작동합니다.
비고
실제로 벡터 산술 연산은 거의 정확한 일치를 생성하지 않습니다. 대신 벡터가 결과와 가장 가까운 (가장 유사한) 단어를 검색합니다.
산술 연산은 역방향으로 작동합니다.
-
puppy-young= [0.9, 0.7, 0.4] - [0.1, 0.1, 0.3] = [0.8, 0.6, 0.1] =dog -
kitten-young= [0.8, 0.6, 0.5] - [0.1, 0.1, 0.3] = [0.7, 0.5, 0.2] =cat
아날로그 추론
벡터 산술 연산은 "puppy가 dog에 해당하는 것처럼 kitten가 에 해당하나요?"와 같은 유추 질문에 답할 수도 있습니다.
이 문제를 해결하려면 다음을 계산합니다. kitten - puppy + dog
- [0.8, 0.6, 0.5] - [0.9, 0.7, 0.4] + [0.8, 0.6, 0.1]
- = [-0.1, -0.1, 0.1] + [0.8, 0.6, 0.1]
- = [0.7, 0.5, 0.2]
- =
cat
이러한 예제에서는 벡터 작업이 언어 관계를 캡처하고 의미 체계 패턴에 대한 추론을 사용하도록 설정하는 방법을 보여 줍니다.
텍스트 분석에 의미 체계 모델 사용
벡터 기반 의미 체계 모델은 많은 일반적인 텍스트 분석 작업에 강력한 기능을 제공합니다.
텍스트 요약
의미 체계 포함은 전체 문서를 가장 대표하는 벡터로 문장을 식별하여 추출 요약 을 가능하게 합니다. 각 문장을 벡터로 인코딩하여(종종 해당 구성 단어의 포함을 평균 또는 풀링하여) 문서의 의미에 가장 중심이 되는 문장을 계산할 수 있습니다. 이러한 중앙 문장을 추출하여 주요 테마를 캡처하는 요약을 구성할 수 있습니다.
키워드 추출
벡터 유사성은 각 단어의 포함을 문서의 전체 의미 체계 표현과 비교하여 문서에서 가장 중요한 용어를 식별할 수 있습니다. 벡터가 문서 벡터와 가장 유사하거나 문서의 모든 단어 벡터를 고려할 때 가장 중심이 되는 단어는 주요 항목을 나타내는 핵심 용어일 수 있습니다.
명명된 엔터티 인식
의미 체계 모델은 유사한 엔터티 형식을 함께 클러스터링하는 벡터 표현을 학습하여 명명된 엔터티(사람, 조직, 위치 등)를 인식하도록 미세 조정할 수 있습니다. 유추 중에 모델은 각 토큰의 포함 및 해당 컨텍스트를 검사하여 명명된 엔터티를 나타내는지 여부와 형식을 결정합니다.
텍스트 분류
감정 분석 또는 토픽 분류와 같은 작업의 경우 문서를 집계 벡터(예: 문서의 모든 단어 포함 평균)로 나타낼 수 있습니다. 그런 다음 이러한 문서 벡터를 기계 학습 분류자를 위한 기능으로 사용하거나 클래스 프로토타입 벡터와 직접 비교하여 범주를 할당할 수 있습니다. 의미상 유사한 문서에는 비슷한 벡터 방향이 있으므로 이 방법은 관련 콘텐츠를 효과적으로 그룹화하고 다른 범주를 구분합니다.