(링크MS) semantic language model in natural language processing

https://learn.microsoft.com/en-us/training/modules/introduction-language/4-semantic-models?pivots=text


NLP의 최첨단이 발전함에 따라, 토큰 간의 의미적 관계를 포괄하는 모델을 학습할 수 있는 능력이 강력한 딥러닝 언어 모델의 등장으로 이어졌습니다. 이 모델들의 핵심에는 언어 토큰을 벡터(다중값 숫자 배열)로 인코딩하는 것으로, 이를 임베딩이라고 합니다.

텍스트 모델링을 위한 이 벡터 기반 접근 방식은 Word2Vec 및 GloVe와 같은 기법에서 일반화되었으며, 이 기법에서는 텍스트 토큰이 다중 차원의 조밀한 벡터로 표현됩니다. 모델 학습 중에 차원 값은 훈련 텍스트에서의 사용을 기반으로 각 토큰의 의미적 특성을 반영하도록 할당됩니다. 벡터들 간의 수학적 관계는 기존의 순수 통계 기법보다 일반적인 텍스트 분석 작업을 보다 효율적으로 수행하기 위해 활용될 수 있습니다. 이 접근법의 보다 최근의 발전은 '주의'라는 기법을 사용하여 각 토큰을 맥락 속에서 고려하고, 그 주변에 있는 토큰들의 영향을 계산하는 것입니다. 결과적으로 도출된 맥락화된 임베딩은 GPT 모델군에서 발견되는 것과 같이 현대 생성 AI의 기반을 제공합니다.

텍스트를 벡터로 표현하기

벡터는 여러 축을 따라 좌표로 정의되는 다차원 공간의 점들을 나타냅니다. 각 벡터는 원점으로부터의 방향과 거리를 설명합니다. 의미적으로 유사한 토큰은 유사한 방향을 가진 벡터를 생성해야 합니다. 즉, 유사한 방향을 가리키는 벡터를 의미합니다.

예를 들어, 일반적인 단어에 대해 다음과 같은 3차원 임베딩을 고려하십시오.

단어벡터
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차원 공간에서 이러한 벡터들을 시각화할 수 있습니다.

단어 벡터의 3D 시각화 다이어그램.

The vectors for "dog" and "cat" are similar (both domestic animals), as are "puppy" and "kitten" (both young animals). The words "tree""young", and ball" have distinctly different vector orientations, reflecting their different semantic meanings.

벡터에 인코딩된 의미적 특성은 단어를 비교하고 분석적 비교를 가능하게 하는 벡터 기반 연산을 가능하게 합니다.

벡터의 방향은 그들의 차원값에 의해 결정되므로, 의미가 유사한 단어들은 유사한 방향을 갖는 경향이 있습니다. 이는 벡터 간의 코사인 유사도와 같은 계산을 사용하여 의미 있는 비교를 할 수 있음을 의미합니다.

For example, to determine the "odd one out" between "dog""cat", and "tree", you can calculate the cosine similarity between pairs of vectors. The cosine similarity is calculated as:

cosine_similarity(A, B) = (A · B) / (||A|| * ||B||)

여기서 A · B는 점곱이고 ||A||는 벡터 A의 크기입니다.

세 단어 간의 유사성을 계산하기:

  • dog [0.8, 0.6, 0.1] and 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
    • Magnitude of 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] and 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] and 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는?”와 같은 비유 질문에도 답할 수 있습니다.

To solve this, calculate: 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

새끼 고양이 - 강아지 + 개 = 고양이 를 나타내는 벡터 산술 도표.

이러한 예시들은 벡터 연산이 언어적 관계를 포착하고 의미 패턴에 대한 추론을 가능하게 하는 방법을 보여줍니다.

텍스트 분석을 위한 의미론적 모델 사용

벡터 기반 의미론 모델은 많은 일반적인 텍스트 분석 작업에 강력한 기능을 제공합니다.

텍스트 요약

의미적 임베딩은 전체 문서를 가장 잘 나타내는 벡터를 가진 문장을 식별함으로써 추출적 요약을 가능하게 합니다. 각 문장을 벡터로 인코딩함으로써(종종 구성 단어들의 평균을 추적하거나 결합함으로써), 문서 의미에 가장 핵심적인 문장이 어떤 것인지 계산할 수 있습니다. 이러한 핵심 문장은 핵심 주제를 포착한 요약을 만들기 위해 추출될 수 있습니다.

키워드 추출

벡터 유사성은 각 단어의 삽입을 문서 전체 의미 표현과 비교함으로써 문서에서 가장 중요한 용어를 식별할 수 있습니다. 문서 벡터와 가장 유사하거나 문서 내 모든 단어 벡터를 고려할 때 가장 중심적인 단어를 가진 단어들은 주요 주제를 나타내는 핵심 용어일 가능성이 높습니다.

명명된 엔터티 인식

시맨틱 모델은 유사한 엔티티 유형을 함께 클러스터링하는 벡터 표현을 학습함으로써 명명된 엔터티(사람, 조직, 위치 등)를 인식하도록 세밀하게 조정할 수 있습니다. 추론 중에 모델은 각 토큰의 임베딩과 그 맥락을 검토하여 해당 토큰이 명명된 엔터티를 나타내는지, 그리고 그렇다면 어떤 유형인지 판단합니다.

텍스트 분류

감정 분석이나 주제 분류와 같은 작업에서는 문서를 집계 벡터(예: 문서 내 모든 단어 삽입의 평균)로 표현할 수 있습니다. 이러한 문서 벡터는 기계 학습 분류기의 특징으로 사용할 수 있으며, 클래스 프로토타입 벡터와 직접 비교하여 카테고리를 할당할 수 있습니다. 의미적으로 유사한 문서가 유사한 벡터 방향을 가지고 있기 때문에, 이 접근 방식은 관련 콘텐츠를 효과적으로 그룹화하고 서로 다른 범주를 구분합니다.


 

댓글