맨위로가기

Word2vec

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Word2vec은 단어의 의미를 벡터로 표현하는 단어 임베딩을 생성하는 데 사용되는 딥러닝 모델이다. 얕은 2계층 신경망으로, 대규모 텍스트 데이터를 입력받아 각 단어에 대응하는 벡터를 생성한다. Word2vec은 CBOW와 Skip-gram 두 가지 아키텍처를 사용하며, CBOW는 주변 단어를 통해 중심 단어를 예측하고, Skip-gram은 중심 단어를 통해 주변 단어를 예측한다. Skip-gram은 빈도가 낮은 단어에 더 적합하며, 모델의 품질은 다양한 매개변수에 따라 달라진다. Word2vec은 단어 간의 의미적, 구문적 관계를 포착하여 기계 번역 등 다양한 분야에 활용되며, Doc2vec, Top2vec, BioVectors 등 여러 확장 모델이 개발되었다.

더 읽어볼만한 페이지

  • 자유 과학 소프트웨어 - BOINC
    BOINC는 분산 컴퓨팅 프로젝트를 위한 오픈 소스 플랫폼으로, 개인 컴퓨터의 유휴 자원을 활용하여 과학 연구에 기여하도록 설계되었으며, GPU를 활용하여 계산 속도를 향상시키고 크레딧 시스템을 통해 기여도를 측정한다.
  • 자유 과학 소프트웨어 - SciPy
    SciPy는 NumPy 배열 구조를 기반으로 수치 적분, 선형 대수, 최적화, 통계 등 과학 및 공학 계산에 사용되는 다양한 기능을 제공하는 파이썬 과학 컴퓨팅 라이브러리이다.
  • 의미 유사도 - 반의어
    반의어는 의미가 반대되는 낱말이나 어구로, 한자 구성 방식이나 의미상 관계에 따라 분류되지만, 품사가 항상 같지 않고 문맥에 따라 관계가 달라지는 모호성을 지니며, 언어의 문화적 배경과 사용 문맥에 의존한다.
  • 의미 유사도 - 시맨틱 네트워크
    시맨틱 네트워크는 개념 간의 관계를 표현하는 지식 표현 방법으로, 노드와 링크를 사용하여 지식을 구조화하며 인공지능, 언어학 등 다양한 분야에서 활용된다.
  • 인공신경망 - 인공 뉴런
    인공 뉴런은 인공신경망의 기본 요소로서, 입력 신호에 가중치를 곱하고 합산하여 활성화 함수를 거쳐 출력을 생성하며, 생물학적 뉴런을 모방하여 설계되었다.
  • 인공신경망 - 퍼셉트론
    퍼셉트론은 프랭크 로젠블랫이 고안한 인공신경망 모델로, 입력 벡터에 가중치를 곱하고 편향을 더한 값을 활성화 함수에 통과시켜 이진 분류를 수행하는 선형 분류기 학습 알고리즘이며, 초기 신경망 연구의 중요한 모델로서 역사적 의미를 가진다.
Word2vec - [IT 관련 정보]에 관한 문서
기본 정보
CBOW 모델 아키텍처
CBOW 모델 아키텍처
Skip-gram 모델 아키텍처
Skip-gram 모델 아키텍처
유형단어 임베딩
개발사Google
최초 출시일2013년 7월 29일
라이선스아파치 라이선스 2.0
웹사이트word2vec 프로젝트 페이지
개요
설명word2vec은 단어 임베딩을 생성하는 데 사용되는 모델 그룹이다.
종류언어 모델
단어 임베딩
프로그래밍 언어C
특징
모델 아키텍처CBOW (Continuous Bag-of-Words)
Skip-gram
목표단어 간의 의미론적 관계를 학습하여 단어를 벡터 공간에 표현
작동 방식대규모 텍스트 코퍼스에서 단어의 문맥을 예측하거나, 주어진 단어로부터 문맥을 예측하는 방식으로 학습
활용 분야자연어 처리
정보 검색
텍스트 마이닝
참고 문헌
논문Efficient Estimation of Word Representations in Vector Space
word2vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method
강연Word2vec and friends

2. 접근 방식

Word2vec은 단어 임베딩을 생성하기 위한 모델 그룹이다. 이 모델은 얕은 2계층 신경망을 사용하여 단어의 언어적 문맥을 재구성하도록 훈련된다. Word2vec은 대규모 텍스트 말뭉치를 입력으로 받아, 일반적으로 수백 개의 차원으로 구성된 벡터 공간을 생성하며, 말뭉치에 있는 각 고유한 단어는 공간 내에서 해당하는 벡터를 할당받는다.

Word2vec은 단어의 분산 표현을 생성하기 위해 연속적인 Bag of words (CBOW) 또는 연속적으로 슬라이딩하는 Skip-gram의 두 가지 모델 아키텍처 중 하나를 사용할 수 있다. 두 아키텍처 모두에서 word2vec은 말뭉치를 반복하면서 개별 단어와 슬라이딩 컨텍스트 창을 모두 고려한다.

의미적으로 유사한 단어는 유사한 컨텍스트에서 사용되어야 하므로, 이러한 확률에 유사한 방식으로 영향을 미쳐야 한다. Skip-gram 아키텍처에서 모델은 현재 단어를 사용하여 주변 컨텍스트 단어의 창을 예측한다.[1][2] Skip-gram은 더 멀리 떨어진 컨텍스트 단어보다 가까운 컨텍스트 단어에 더 가중치를 둔다. 저자의 노트에 따르면,[3] CBOW는 더 빠르지만 Skip-gram은 드문 단어에 더 적합하다.

모델이 훈련된 후, 학습된 단어 임베딩은 말뭉치에서 공통 컨텍스트를 공유하는 단어, 즉 의미적으로 그리고 구문론적으로 유사한 단어가 공간에서 서로 가까이 위치하도록 벡터 공간에 배치된다.[1] 더 이질적인 단어는 공간에서 서로 더 멀리 떨어져 위치한다.

2. 1. CBOW (Continuous Bag-of-Words)

Continuous Bag of Words 모델(CBOW)


CBOW (Continuous Bag-of-Words) 모델은 주변 문맥 단어로부터 현재 단어를 예측하는 방식으로, 문맥 단어의 순서는 중요하지 않다.[34][35]

예를 들어, 말뭉치(corpus)의 각 단어를 4단어의 작은 범위 내의 다른 모든 단어로 예측한다고 가정할 때, 이웃 집합을 N = \{-4, -3, -2, -1, +1, +2, +3, +4\}로 표현할 수 있다.

이 경우 훈련 목표는 다음 식을 최대화하는 것이다.

:\prod_{i \in C} \Pr(w_i | w_j : j \in N + i)

이는 단어 예측을 위해 단어 이웃을 사용하는 확률 모델에서, 말뭉치에 대한 총 확률을 최대화하는 것을 의미한다.

곱셈은 수치적으로 불안정하므로 로그를 취해 변환한다.

:\sum_{i \in C} \log ( \Pr(w_i | w_j : j \in N + i) )

이는 말뭉치의 로그 확률을 최대화하는 것이다.

확률 모델은 다음과 같다. 단어 \{w_j : j \in N+i\}가 주어지면, 벡터 합 v := \sum_{j \in N+i} v_{w_j}를 구한다. 그런 다음, 다른 모든 벡터 합과 내적-소프트맥스(이 단계는 변압기의 어텐션 메커니즘과 유사)를 취하여 확률을 계산한다.

:\Pr(w | w_j : j \in N+i) := \frac{e^{v_w \cdot v}}{\sum_{w \in V} e^{v_w \cdot v}}

최대화할 양은 단순화하면 다음과 같다.

:\sum_{i \in C, j \in N+i}\left( v_{w_i} \cdot v_{w_j} - \ln \sum_{w \in V} e^{v_w \cdot v_{w_j}} \right)

왼쪽 부분은 빠르게 계산되지만, 오른쪽 부분은 말뭉치의 각 단어에 대해 전체 어휘 집합을 합산해야 하므로 계산 속도가 느리다. 또한 로그 확률을 최대화하기 위해 경사 상승법을 사용하려면 오른쪽 부분의 기울기를 계산해야 하는데, 이는 다루기 어렵다. 이러한 이유로 연구자들은 수치적 근사 방법을 사용하게 되었다.

CBOW 모델은 주변 단어들의 벡터 합을 이용하여 중심 단어의 벡터를 예측하는 방식으로 학습한다.[36]

2. 2. Skip-gram

Skip-gram


Skip-gram은 중심 단어를 이용하여 주변 단어들을 예측하는 모델이다.[34][35] 즉, 어떤 단어가 주어졌을 때, 그 단어 주변에 어떤 단어들이 이웃으로 등장하는지를 예측하는 확률을 최대화하는 방식으로 학습한다.

수식으로 표현하면 다음과 같다.

:\prod_{i \in C} \Pr(w_j : j \in N + i | w_i)

여기서 `C`는 전체 단어, `N`은 중심 단어 주변의 이웃 단어 범위를 나타낸다. 각 단어 이웃을 독립적으로 예측하므로, 위 식은 다음과 같이 표현할 수 있다.

:\Pr(w_j : j \in N + i | w_i) = \prod_{j \in N + i} \Pr(w_j | w_i)

실제 계산에서는 곱셈이 수치적으로 불안정하므로, 로그를 취하여 덧셈 형태로 변환한다.

:\sum_{i \in C, j \in N + i} \ln \Pr(w_j | w_i)

확률 모델은 점곱-소프트맥스(soft-max) 모델을 사용하며, 계산은 다음과 같이 진행된다.

:\sum_{i \in C, j \in N+i}\left( v_{w_i} \cdot v_{w_j} - \ln \sum_{w \in V} e^{v_w \cdot v_{w_{\color{red} i}}} \right)

CBOW 모델과의 유일한 차이점은 위 식에서 빨간색으로 강조된 부분이다.

Word2vec에서는 CBOW 모델과 Skip-gram 모델 두 가지를 사용하여 단어의 분산 표현을 생성한다. Skip-gram 모델은 현재 단어를 사용하여 주변 단어를 예측하며, 현재 단어에 가까울수록 문맥 단어의 가중치를 크게 준다.[34][35]

Skip-gram 모델은 CBOW 모델에 비해 속도가 느리지만, 빈도가 낮은 단어에 대해서는 더 나은 성능을 보이는 경향이 있다.[36]

3. 수학적 세부 사항

Word2vec은 단어 임베딩을 생성하는 데 사용되는 모델 그룹이다. 이 모델은 얕은 2계층 신경망으로, 단어의 언어적 문맥을 재구성하도록 훈련된다. Word2vec은 큰 텍스트 말뭉치를 입력으로 받아 벡터 공간을 생성하며, 말뭉치의 각 단어는 이 공간에서 고유한 벡터를 할당받는다.[1]

Word2vec은 단어의 분산 표현을 생성하기 위해 CBOW(Continuous Bag-of-words) 또는 연속적인 Skip-gram의 두 가지 모델 아키텍처 중 하나를 사용할 수 있다. 두 아키텍처 모두에서 Word2vec은 말뭉치를 반복하면서 개별 단어와 슬라이딩 컨텍스트 창(주변 단어들의 집합)을 모두 고려한다.

모델이 훈련된 후, 학습된 단어 임베딩은 의미적 및 구문론적으로 유사한 단어가 공간에서 서로 가까이 위치하도록 벡터 공간에 배치된다.[1]

말뭉치는 단어의 시퀀스이다. CBOW와 Skip-gram은 모두 말뭉치에 나타나는 각 단어에 대해 하나의 벡터를 학습하는 방법이다.

V(어휘)를 말뭉치 C에 나타나는 모든 단어의 집합이라고 할 때, 목표는 각 단어 w \in V에 대해 하나의 벡터 v_w \in \R^n을 학습하는 것이다.

Skip-gram의 아이디어는 단어의 벡터가 각 이웃의 벡터에 가깝게 있어야 한다는 것이다. CBOW의 아이디어는 단어 이웃의 벡터 합이 단어의 벡터에 가깝게 있어야 한다는 것이다.

3. 1. CBOW 모델의 목표 함수



말뭉치(corpus)의 각 단어를 4단어의 작은 범위 내의 다른 모든 단어로 예측한다고 가정한다. 이웃 집합을 N = \{-4, -3, -2, -1, +1, +2, +3, +4\}로 쓴다.

훈련 목표는 다음 식을 최대화하는 것이다.[1]

:\prod_{i \in C} \Pr(w_i | w_j : j \in N + i)

이는 단어 이웃을 사용하여 단어를 예측하는 확률 모델에서 말뭉치에 대한 총 확률을 최대화하는 것을 의미한다.

곱은 수치적으로 불안정하므로 로그를 취하여 변환한다.[1]

:\sum_{i \in C} \log ( \Pr(w_i | w_j : j \in N + i) )

이는 말뭉치의 로그 확률을 최대화하는 것이다.

확률 모델은 다음과 같다. 단어 \{w_j : j \in N+i\}가 주어지면 벡터 합 v := \sum_{j \in N+i} v_{w_j}를 구한 다음, 다른 모든 벡터 합과 내적-소프트맥스(이 단계는 변압기의 어텐션 메커니즘과 유사)를 취하여 확률을 얻는다.[1]

:\Pr(w | w_j : j \in N +i) := \frac{e^{v_w \cdot v}}{\sum_{w \in V} e^{v_w \cdot v}}

최대화할 양은 단순화 후 다음과 같다.[1]

:\sum_{i \in C, j \in N+i}\left( v_{w_i} \cdot v_{w_j} - \ln \sum_{w \in V} e^{v_w \cdot v_{w_j}} \right)

왼쪽의 양은 빠르게 계산되지만 오른쪽의 양은 말뭉치의 각 단어에 대해 전체 어휘 집합을 합산해야 하므로 계산 속도가 느리다. 또한 로그 확률을 최대화하기 위해 경사 상승법을 사용하려면 오른쪽의 양에 대한 기울기를 계산해야 하는데, 이는 다루기 어렵다. 이는 저자들이 수치적 근사 트릭을 사용하도록 유도했다.[1]

3. 2. Skip-gram 모델의 목표 함수

Skip-gram의 학습 목표는 다음과 같다.

:\prod_{i \in C} \Pr(w_j : j \in N + i | w_i)

즉, 단어를 사용하여 단어 이웃을 예측하는 확률 모델에서 볼 때 말뭉치(corpus)에 대한 총 확률을 최대화하려는 것이다. 각 단어 이웃을 독립적으로 예측하므로 다음이 성립한다.

:\Pr(w_j : j \in N + i | w_i) = \prod_{j \in N + i} \Pr(w_j | w_i)

곱셈은 수치적으로 불안정하므로 로그를 취하여 변환한다.

:\sum_{i \in C, j \in N + i} \ln \Pr(w_j | w_i)

확률 모델은 여전히 점곱-소프트맥스 모델이므로 계산은 이전과 동일하게 진행된다.

:\sum_{i \in C, j \in N+i}\left( v_{w_i} \cdot v_{w_j} - \ln \sum_{w \in V} e^{v_w \cdot v_{w_{\color{red} i}}} \right)

CBOW 방정식과의 유일한 차이점은 위 식에서 빨간색으로 강조 표시되어 있다.

4. 역사

2010년, 당시 브르노 공과대학교에 재직 중이던 토마시 미코로프는 공저자들과 함께 언어 모델링에 단일 은닉층을 가진 간단한 순환 신경망을 적용했다.[5]

2013년, 미코로프가 이끄는 연구팀에 의해 구글에서 Word2vec이 개발, 특허 출원[6] 및 두 편의 논문으로 발표되었다.[1][2] 원본 논문은 2013년 ICLR 컨퍼런스 심사위원들에게 거절당했다. 또한 코드를 오픈 소스로 공개하는 데 몇 달이 걸렸다.[7] 다른 연구자들은 알고리즘을 분석하고 설명하는 데 도움을 주었다.[8]

Word2vec 알고리즘을 사용하여 생성된 임베딩 벡터는 n-gram 및 잠재 의미 분석을 사용하는 이전 알고리즘에 비해 몇 가지 장점이 있다.[1] GloVe스탠퍼드 대학교의 연구팀에 의해 경쟁자로서 특별히 개발되었으며, 원본 논문에서는 GloVe가 Word2vec보다 여러 가지 개선 사항을 보였다고 언급했다.[9] 미코로프는 GloVe가 더 많은 데이터로 학습되었고, fastText 프로젝트가 동일한 데이터로 학습될 때 Word2vec이 더 우수하다는 것을 보여주었다고 주장했다.[10][7]

2022년 현재, 직접적인 Word2vec 접근 방식은 "구식"으로 묘사되었다. Word2vec과 유사한 단어 임베딩 모델 위에 여러 신경망 어텐션 레이어를 추가하는 트랜스포머 기반 모델, 예를 들어 ELMo와 BERT가 NLP 분야에서 최첨단 기술로 여겨지게 되었다.[11]

5. 매개변수

Word2vec 훈련 결과는 매개변수 설정에 따라 달라질 수 있다. Word2vec 훈련에 영향을 미치는 주요 매개변수로는 훈련 알고리즘, 서브샘플링, 차원, 문맥 윈도우 등이 있다.

5. 1. 훈련 알고리즘

Word2vec 모델은 계층적 소프트맥스 및/또는 네거티브 샘플링으로 훈련할 수 있다. 모델이 최대화하려는 조건부 로그 우도를 근사하기 위해, 계층적 소프트맥스 방식은 허프만 트리를 사용한다. 반면에 네거티브 샘플링 방식은 샘플링된 부정적 인스턴스의 로그 우도를 최소화하여 최대화 문제에 접근한다. 저자에 따르면, 계층적 소프트맥스는 빈도가 낮은 단어에 더 적합하고, 네거티브 샘플링은 빈도가 높은 단어와 저차원 벡터에 더 적합하다.[3] 훈련 에포크가 증가함에 따라 계층적 소프트맥스는 유용성을 잃는다.[12]

5. 2. 서브샘플링

빈도가 높은 단어는 유용한 정보를 거의 제공하지 않기 때문에 학습 속도를 높이기 위해 서브샘플링될 수 있다.[39] 특정 임계값보다 빈도가 높거나 낮은 단어는 제거될 수 있다.[13]

5. 3. 차원

Word2vec에서 단어 임베딩의 차원은 일반적으로 100에서 1,000 사이로 설정된다.[1] 이 차원이 증가함에 따라 단어 임베딩의 품질은 향상되지만, 일정 수준에 도달하면 추가적인 이득은 줄어든다.[40]

5. 4. 문맥 윈도우

문맥 창의 크기는 주어진 단어의 앞뒤로 몇 개의 단어를 문맥 단어로 포함할지를 결정한다. 저자들의 노트에 따르면, Skip-gram의 경우 10, CBOW의 경우 5가 권장된다.[3]

6. 확장

Word2vec은 단어 임베딩을 생성하는 모델 그룹으로, 다양한 확장 기능을 가지고 있다. 이러한 확장은 기본적인 Word2vec 모델의 기능을 향상시키거나 특정 분야에 적용할 수 있도록 돕는다.

6. 1. Doc2vec

Doc2vec은 문장, 단락 또는 전체 문서와 같이 ''가변 길이''의 텍스트 조각에 대한 분산 표현을 생성한다.[14][15] Doc2vec은 C, Python 및 Java/Scala 도구에서 구현되었으며, Java 및 Python 버전은 새롭고 보이지 않는 문서에 대한 문서 임베딩의 추론도 지원한다.

Doc2vec은 word2vec이 단어의 표현을 추정하는 방식과 매우 유사하게 문서의 분산 표현을 추정한다. Doc2vec은 두 가지 모델 아키텍처 중 하나를 사용하며, 둘 다 word2vec에서 사용되는 아키텍처와 유사하다. 첫 번째는 단락 벡터의 분산 메모리 모델(PV-DM)로, 추가적인 컨텍스트 조각으로 고유한 문서 식별자를 제공한다는 점을 제외하면 CBOW와 동일하다. 두 번째 아키텍처인 단락 벡터의 분산 Bag of Words 버전(PV-DBOW)은 현재 단어 대신 단락 식별자에서 주변 컨텍스트 단어의 창을 예측하려 한다는 점을 제외하면 skip-gram 모델과 동일하다.[14]

Doc2vec은 단어 주변의 추가적인 '컨텍스트' 조각에 대한 의미론적 '의미'를 캡처하는 기능도 갖추고 있다. Doc2vec은 화자 또는 화자 속성, 그룹 및 시간 간격에 대한 의미론적 임베딩을 추정할 수 있다. 예를 들어, Doc2vec은 미국과 영국의 다양한 의회와 국회에서 정당의 정치적 입장을 추정하는 데 사용되었으며,[16] 다양한 정부 기관에서도 사용되었다.[17]

6. 2. Top2vec

Top2vec은 주제의 분산 표현을 추정하기 위해 문서 임베딩과 단어 임베딩을 모두 활용한다.[18][19] Top2vec은 doc2vec 모델에서 학습된 문서 임베딩을 가져와 UMAP을 사용하여 더 낮은 차원으로 축소한다. 그런 다음 HDBSCAN을 사용하여 문서 공간을 스캔하고,[20] 유사한 문서 클러스터를 찾는다. 다음으로, 클러스터에서 식별된 문서의 중심은 해당 클러스터의 주제 벡터로 간주된다. 마지막으로 Top2vec은 주제 벡터 근처에 있는 단어 임베딩에 대한 의미 공간을 검색하여 주제의 '의미'를 확인한다.[18] 주제 벡터와 가장 유사한 임베딩을 가진 단어가 해당 주제의 제목으로 지정될 수 있으며, 멀리 떨어진 단어 임베딩은 관련이 없는 것으로 간주될 수 있다.

LDA와 같은 다른 주제 모델과 달리 Top2vec은 두 주제 간 또는 주제와 다른 임베딩(단어, 문서 등) 간의 정식 '거리' 메트릭을 제공한다. HDBSCAN의 결과와 함께 사용자는 주제 계층 구조 또는 관련 주제 및 하위 주제 그룹을 생성할 수 있다.

또한 사용자는 Top2vec의 결과를 사용하여 샘플 외 문서의 주제를 추론할 수 있다. 새로운 문서에 대한 임베딩을 추론한 후에는 주제 공간에서 가장 가까운 주제 벡터를 검색하기만 하면 된다.

6. 3. BioVectors

생물정보학에서 사용하기 위해, DNA, RNA, 단백질과 같은 생물학적 서열의 n-gram에 대한 단어 벡터 확장이 Asgari와 Mofrad에 의해 제안되었다.[21][46]

바이오 벡터(BioVec)는 단백질(아미노산 서열)에 대한 단백질 벡터(ProtVec)와 유전자 서열에 대한 유전자 벡터(GeneVec)를 포함하며, 프로테오믹스 및 유전체학 분야의 기계 학습 응용 분야에 널리 사용될 수 있다. 그 결과 바이오 벡터가 기본 패턴의 생화학적 및 생물물리학적 해석 측면에서 생물학적 서열을 특성화할 수 있음을 시사한다.[21] 유사한 변형인 dna2vec는 니들만-분시 유사성 점수와 dna2vec 단어 벡터의 코사인 유사도 사이에 상관관계가 있음을 보여주었다.[22][47]

6. 4. IWE (Intelligent Word Embeddings)

바너지(Banerjee) 등은 구조화되지 않은 방사선 보고서의 밀집 벡터 표현을 생성하기 위한 단어 벡터의 확장을 제안했다.[23] Word2vec의 가장 큰 과제 중 하나는 알려지지 않은 단어 또는 어휘 외 단어(OOV)와 형태학적으로 유사한 단어를 처리하는 방법이다. Word2vec 모델이 특정 단어를 이전에 만난 적이 없다면, 일반적으로 이상적인 표현과는 거리가 먼 임의의 벡터를 사용해야 한다. 이는 동의어와 관련 단어가 방사선 전문의의 선호하는 스타일에 따라 사용될 수 있고, 단어가 대규모 코퍼스에서 드물게 사용되었을 수 있는 의학 분야에서 특히 문제가 될 수 있다.

IWE는 Word2vec과 의미론적 사전 매핑 기술을 결합하여 임의 텍스트 내러티브 스타일의 모호성, 어휘적 변동, 비문법적이고 전보식 구절의 사용, 단어의 임의 순서, 약어 및 두문자어의 빈번한 출현을 포함하는 임상 텍스트에서 정보 추출의 주요 과제를 해결한다. 특히 IWE 모델(한 기관의 데이터 세트로 훈련됨)은 다른 기관의 데이터 세트로 성공적으로 변환되었으며, 이는 기관 전반에 걸쳐 접근 방식의 좋은 일반화 가능성을 보여준다.[48]

7. 분석

Word2vec 프레임워크에서 단어 임베딩 학습이 성공적인 이유는 아직 명확하게 밝혀지지 않았다. 골드버그와 레비는 Word2vec의 목적 함수가 유사한 맥락에서 나타나는 단어가 유사한 임베딩(코사인 유사도로 측정)을 갖도록 하며, 이는 J. R. 퍼스의 분포 가설과 일치한다고 지적했다. 그러나 그들은 이러한 설명이 "매우 피상적"이라며, 보다 형식적인 설명이 필요하다고 주장한다.[8]

레비 외(2015)는[24] Word2vec 또는 이와 유사한 임베딩이 다운스트림 작업에서 뛰어난 성능을 보이는 상당 부분이 모델 자체가 아니라 특정 하이퍼파라미터 선택 때문임을 보여준다. 이러한 하이퍼파라미터를 보다 '전통적인' 접근 방식에 적용하면 다운스트림 작업에서 유사한 성능을 얻을 수 있다. 아로라 외(2016)는[25] Word2vec 및 관련 알고리즘을 텍스트에 대한 간단한 생성 모델의 추론을 수행하는 것으로 설명하며, 이는 로그선형 토픽 모델을 기반으로 한 임의 보행 생성 프로세스를 포함한다. 그들은 이를 사용하여 유추 문제를 해결하는 것을 포함하여 단어 임베딩의 일부 속성을 설명한다.

8. 의미적 및 구문적 관계 보존

단어 임베딩의 시각적 예시
단어 임베딩의 시각적 예시


단어 임베딩은 단어 간의 다양한 유사성을 포착할 수 있다. 미콜로프 등(2013)은 벡터 연산을 사용하여 의미 및 구문 패턴을 재현할 수 있음을 발견했다.[26] 예를 들어 "남자는 여자에게, 형제는 자매에게"와 같은 패턴은 단어 벡터 표현에 대한 대수 연산을 통해 생성될 수 있다. "형제" - "남자" + "여자" 벡터 표현은 모델에서 "자매" 벡터 표현과 가장 가까운 결과를 생성한다. 이러한 관계는 국가-수도와 같은 의미 관계뿐만 아니라 현재 시제-과거 시제와 같은 구문 관계에도 적용될 수 있다.[52]

Word2vec의 이러한 특징은 다양한 맥락에서 활용되었다. 예를 들어 Word2vec은 한 언어의 단어 벡터 공간을 다른 언어의 벡터 공간에 매핑하는 데 사용되어, 두 공간에서 번역된 단어 간의 관계를 통해 새로운 단어의 기계 번역을 지원할 수 있다.[27]

9. 모델 품질 평가

Mikolov 등[1][53]은 Word2vec 모델의 품질을 평가하기 위해 의미적 관계와 구문적 관계 집합을 개발했다. 이들은 모델의 정확도를 테스트하기 위해 8,869개의 의미 관계와 10,675개의 구문 관계 집합을 개발했다.

모델의 정확도는 훈련 데이터, 차원 수, 윈도우 크기 등 다양한 요인에 따라 달라진다.[1][55] 이러한 요인들은 계산 복잡성과 모델 생성 시간에 영향을 미친다. Skip-gram 모델은 전반적으로 높은 정확도를 보이지만, CBOW 모델은 계산 비용이 덜 들면서도 비슷한 정확도를 제공한다.[1][56]

Altszyler 등의 연구[29][58]에 따르면, Word2vec은 중간 규모 이상의 코퍼스(1천만 단어 이상)에서 LSA보다 성능이 뛰어나지만, 작은 코퍼스에서는 LSA가 더 나은 성능을 보인다. 최적의 매개변수 설정은 작업과 훈련 코퍼스에 따라 달라지지만, 중간 크기 코퍼스에서 훈련된 Skip-Gram 모델의 경우 50차원, 윈도우 크기 15, 10개의 부정적 샘플이 좋은 설정으로 간주된다.

10. 구현체

Word2vec은 다양한 프로그래밍 언어로 구현되어 있다. 다음은 그 목록이다.

참조

[1] arXiv Efficient Estimation of Word Representations in Vector Space 2013-01-16
[2] conference Distributed representations of words and phrases and their compositionality
[3] 웹사이트 Google Code Archive - Long-term storage for Google Code Project Hosting. https://code.google.[...] 2016-06-13
[4] Citation word2vec Parameter Learning Explained 2016-06-05
[5] conference Interspeech 2010 ISCA 2010-09-26
[6] 특허 Computing numeric representations of words in a high-dimensional space
[7] 웹사이트 Yesterday we received a Test of Time Award at NeurIPS for the word2vec paper from ten years ago https://www.facebook[...] 2023-12-13
[8] arXiv word2vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method
[9] 웹사이트 GloVe: Global Vectors for Word Representation https://www.aclweb.o[...]
[10] arXiv Bag of Tricks for Efficient Text Classification 2016-08-09
[11] 학술지 On the validity of pre-trained transformers for natural language processing in the software engineering domain https://ieeexplore.i[...] 2022
[12] 웹사이트 Parameter (hs & negative) https://groups.googl[...] 2016-06-13
[13] 웹사이트 Visualizing Data using t-SNE http://jmlr.csail.mi[...] 2017-03-18
[14] 학술지 Distributed Representations of Sentences and Documents 2014-05
[15] 학술지 Gensim https://radimrehurek[...]
[16] 학술지 Word Embeddings for the Analysis of Ideological Placement in Parliamentary Corpora https://www.cambridg[...] 2019-07-03
[17] 학술지 Gov2Vec: Learning Distributed Representations of Institutions and Their Legal Text https://papers.ssrn.[...] 2017-12-21
[18] arXiv Top2Vec: Distributed Representations of Topics 2020-08
[19] 웹사이트 Top2Vec https://github.com/d[...] 2022-11-11
[20] 서적 Advances in Knowledge Discovery and Data Mining 2013
[21] 학술지 Continuous Distributed Representation of Biological Sequences for Deep Proteomics and Genomics 2015
[22] arXiv dna2vec: Consistent vector representations of variable-length k-mers 2017
[23] 학술지 Radiology report annotation using intelligent word embeddings: Applied to multi-institutional chest CT cohort
[24] 학술지 Improving Distributional Similarity with Lessons Learned from Word Embeddings http://www.aclweb.or[...] 2015
[25] 학술지 A Latent Variable Model Approach to PMI-based Word Embeddings http://aclweb.org/an[...] 2016
[26] 학술지 Linguistic Regularities in Continuous Space Word Representations. 2013
[27] 학술지 Word and Phrase Translation with word2vec 2017-05-09
[28] 웹사이트 Gensim - Deep learning with word2vec https://radimrehurek[...] 2016-06-10
[29] 학술지 The interpretation of dream meaning: Resolving ambiguity using Latent Semantic Analysis in a small corpus of text 2017
[30] arXiv Efficient Estimation of Word Representations in Vector Space
[31] arXiv word2vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method
[32] AV media Word2vec and friends https://www.youtube.[...] 2015-08-14
[33] arXiv Efficient Estimation of Word Representations in Vector Space
[34] arXiv Efficient Estimation of Word Representations in Vector Space
[35] conference Distributed representations of words and phrases and their compositionality
[36] 웹사이트 Google Code Archive - Long-term storage for Google Code Project Hosting. https://code.google.[...] 2016-06-13
[37] 웹사이트 Google Code Archive - Long-term storage for Google Code Project Hosting. https://code.google.[...] 2016-06-13
[38] 웹사이트 Parameter (hs & negative) https://groups.googl[...] 2016-06-13
[39] 웹사이트 Visualizing Data using t-SNE http://jmlr.csail.mi[...] 2017-03-18
[40] arXiv Efficient Estimation of Word Representations in Vector Space
[41] 웹사이트 Google Code Archive - Long-term storage for Google Code Project Hosting. https://code.google.[...] 2016-06-13
[42] arXiv Distributed Representations of Sentences and Documents.
[43] 웹사이트 Doc2Vec tutorial using Gensim https://medium.com/@[...] 2015-08-02
[44] 웹사이트 Doc2vec for IMDB sentiment analysis https://github.com/p[...] 2016-02-18
[45] 웹사이트 Doc2Vec and Paragraph Vectors for Classification http://deeplearning4[...] 2016-01-13
[46] 간행물 Continuous Distributed Representation of Biological Sequences for Deep Proteomics and Genomics 2015
[47] arXiv dna2vec: Consistent vector representations of variable-length k-mers 2017
[48] 간행물 Radiology report annotation using intelligent word embeddings: Applied to multi-institutional chest CT cohort
[49] arXiv word2vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method
[50] 간행물 Improving Distributional Similarity with Lessons Learned from Word Embeddings http://www.aclweb.or[...] 2015
[51] 간행물 A Latent Variable Model Approach to PMI-based Word Embeddings http://aclweb.org/an[...] Summer 2016
[52] 간행물 Linguistic Regularities in Continuous Space Word Representations. 2013
[53] arXiv Efficient Estimation of Word Representations in Vector Space
[54] 웹사이트 Gensim - Deep learning with word2vec https://radimrehurek[...] 2016-06-10
[55] arXiv Efficient Estimation of Word Representations in Vector Space
[56] arXiv Efficient Estimation of Word Representations in Vector Space
[57] arXiv Efficient Estimation of Word Representations in Vector Space
[58] 간행물 The interpretation of dream meaning: Resolving ambiguity using Latent Semantic Analysis in a small corpus of text 2017



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com