ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Word2Vec
    💻 computer science/📦 database 2025. 8. 4. 22:37

    🌠 Word2Vec

    워드 임베딩 방법론 중 하나

     

    단어의 의미적 유사성을 파악하여 이를 수치형 벡터로 표현해줍니다.

    Word2Vec은 단어가 사용되는 문맥(context)을 분석하여 단어의 의미를 학습해 단어 간의 복잡한 관계를 벡터 공간에 나타낼 수 있습니다.

     

    🧪 Word2Vec 벡터 연산

     

    Word2Vec으로 학습된 단어 벡터들은 의미론적 연산 능력을 보여줍니다.

    - 실제로 연산해보기: http://w.elnn.kr/search/

    한국 - 서울 + 도쿄 ≈ 일본
    손흥민 - 토트넘 + 맨유 ≈ 박지성

     

    단어가 가지고 있는 의미들을 가지고 연산을 하는 것처럼 보입니다.

    이런 연산이 가능한 이유는 각 단어 벡터가 단어 벡터간 유사도를 반영한 값을 가지고 있기 때문입니다.

    • Word2Vec이 단어간의 유사도 및 관계를 벡터공간에 반영하고 있기 때문

     

    🤔 어떻게 가능한거지?!?

    • 분산 표현

     

    📌 분산 표현 (Distributed Representation)

    분포 가설이라는 것을 바탕으로 만들어진 표현방법

     

    📖 분포 가설

    • 비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다

     

    예시

    • 문장 "강아지는 귀엽다, 예쁘다" 에서 '귀엽다'와 '예쁘다'는 '강아지'라는 단어 주변에 함께 등장
    • Word2Vec은 이러한 패턴을 통해 '귀엽다'와 '예쁘다'가 유사한 의미를 가진다는 것을 학습합니다.

    분산 표현은 이 분포 가설을 이용해 텍스트를 학습하고 단어의 의미를 벡터의 여러 차원에 분산하여 표현합니다.

    즉, 단어 하나의 의미가 특정 차원에만 국한되지 않고 여러 차원에 걸쳐서 복합적으로 표현

     

    주변에 같은 단어가 나타나는 단어일수록 (문맥이 유사할수록) 단어 벡터들은 유사한 벡터 값을 가지게 됩니다.

     

    🤖 Word2Vec 학습 방식

    💡 핵심 아이디어

     

    "단어의 의미는 주변 단어로부터 정의된다."

    • 단어 자체가 아닌 단어가 어떤 단어들 사이에 놓여있는지(문맥)를 통해서 단어의 의미를 이해

     

    📌 벡터 학습 과정

    1. 데이터에서 단어들 추출 후 단어들을 one-hot encoding하여 입력값으로 사용
    2. 그 one-hot을 통해 임베딩 레이어(가중치 행렬)를 통과시킴
    3. 이 가중치 행렬이 학습되면서 점점 의미 있는 벡터로 변환

     

    🤖 대표적인 2가지 모델

    방식 설명
    CBOW 주변 단어(문맥)를 보고 중심 단어 예측
    Skip-Gram 중심 단어를 보고 주변 단어를 예측

     

    🪟 윈도우

    중심 단어를 예측하기 위해서 앞 뒤로 몇개의 단어를 볼지 결정을 해주어야 합니다.

    • 이 범위를 윈도우 라고 합니다.

     

    윈도우 크기가 n 이라면 실제 중심 단어를 예측하기 위해 참고하려는 하는 주변 단어의 개수는 2n 입니다.

     

    📖 슬라이딩 윈도우

    윈도우 크기가 정해지면 옆으로 움직이면서 주변 단어와 중심 단어의 선택을 변경하며 학습을 위한 데이터 셋을 만듭니다

     

    1️⃣ CBOW (Continuous Bag of Words)

     

    주변 문맥 단어를 가지고 중심 언어를 예측

     

     

    The cat sat on the mat
    • 주변 단어 / 문맥 : ['The', 'sat', 'on', 'the', 'mat']
    • 예측할 중심 단어: ‘cat’

    2️⃣ Skip-Gram

    중심 단어를 가지고 주변 문맥 단어가 무엇일지 예측하는 과정에서 학습

    "The cat sat on the mat."
    • 중심 단어 : ‘cat’
    • 예측할 주변 단어 / 문맥 : ['The', 'sat', 'on', 'the', 'mat']

     

    '💻 computer science > 📦 database' 카테고리의 다른 글

    벡터 데이터베이스  (2) 2025.08.04
    벡터 유사도 검색  (7) 2025.08.04
    벡터화와 임베딩  (1) 2025.08.04
    MySQL - 트랜잭션 격리 수준 실습  (0) 2024.05.11
    MySQL - 스토리지 엔진 수준의 락  (0) 2024.05.11

    댓글

Designed by Tistory.