ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Learning Word Embeddings: Word2vec & GloVe
    Google ML Bootcamp/Sequence Models 2023. 10. 2. 14:53
    728x90

    ※ Word2Vec

    ■ Skip Gram Model

    - Vocab size가 10,000 이라고 할 때, context X와 target Y(learn 하고 싶은 단어)를 설정한다.

    - O_c -> E -> e_c -> O_softmax -> yhat (e_c = E * O_c)

    - E는 e_c에 해당하는 매개 변수를 가진다.

    - O_softmax에는 theta_t 매개 변수를 제공하는 매개 변수도 있다. 

    - 모든 매개 변수를 기준으로 Loss Function을 최적화하면 실제로 상당량의 vector 포함 set을 얻을 수 있다.

    - softmax : p(t | c)

    - y라는 target vector를 형성했을 때, learn 하고 싶은 단어의 숫자가 4834라면 이는 target vector의 4834번 요소가 된다.

     

    - Problem : 데이터가 굉장히 많아질 경우 매번 분모를 합산하는 것은 매우 느리고 cost가 비싸다.

    - Solution : 계층적 소프트맥스 분류자를 사용한다. 트리 형태로 구축하여 이진 분류 느낌으로 계층을 형성해서 데이터 합산 갯수를 현저히 줄일 수 있다. 완벽한 대칭 트리를 사용하지 않는다. 계층적 소프트웨어 분류자는 일반어는 상위 계층에 있고 자주 사용되지 않는 단어는 더 깊은 계층에 존재할 수 있다. 일반적인 단어를 훨씬 많이 접할 수 있기도 하고 일반적인 단어들을 얻기 위해서는 몇 개의 통과 계층만 필요할지도 모르기 때문이다.

     

     

    ※ Negative Sampling

    - SoftMax Function을 이용하다보니 데이터가 많아진 경우의 비싼 cost 때문에 생겨난 기법

    - 학습 과정에서 전체 단어 집합이 아니라 일부 단어 집합에만 집중할 수 있도록 하는 방법

    - 단어 집합에서 무작위로 주변 단어가 아닌 단어들을 선택해서 일부 가져오고 해당 집합을 이진 분류 문제로 변환한다. target 단어의 주변 단어들을 positive로, 랜덤으로 샘플링 된 단어들을 negative로 레이블링하여 이진 분류 문제로 변환시킬 수 있다. -> 연산량의 효율 극대화

     

     

    ※ GloVe Word Vectors

    - X_ij는 i와 j가 서로 얼마나 자주 가깝게 나타나는지를 나타냄.

    - theta_i, e_j are symmetric

     

     

    ※ Sentiment Classification

    - 단어를 split해서 one-hot vector로 만든다.(O_c -> E -> e_c)

    - yhat에서 sentiment 결과값을 얻어낼 수 있음.

     

     

    728x90

    'Google ML Bootcamp > Sequence Models' 카테고리의 다른 글

    Transformer Networks  (1) 2023.10.04
    Various Sequence To Sequence Architectures  (0) 2023.10.03
    Word Embeddings  (1) 2023.10.01
    Recurrent Neural Networks  (0) 2023.09.29
Designed by Tistory.