인공지능 응용 공학

word2vec 알고리듬 CBOW 모델의 PTB(Pen Treebank) 데이터 세트 적용

coding art 2023. 2. 3. 18:05
728x90

제법 방대한 규모의 PTB 데이터 세트를 사용해서 참조의 179페이지 4.3.2 CBOW 모델 학습 코드를 적용해 보자. GPU가 없는 PC에서 실행해 보면 무려 160분 연산 시간이 소요되며 연산 결과는 binary 파일 형태로 cbow_params.pkl 즉 피클 형태 파일로 저장된다. 대략 7배 정도 가속이 가능한 GPU 지원이 있어도 반나절 가량의 컴퓨팅이 필요하다. 따라서 컴퓨팅이 완료된 즉 사전학습된 binary 형태의 결과물을 피클링 파일로 저장했다가 불러 쓰는 것이 편리하다. 피클링 파일에 저장되어있는 내용물은 word_vecs, word_to_id, id_to_word 이다.

181페이지 4.3.3 CBOW 모델평가 코드를 불러서 활용해보자. query(탐색) 할 단어들을 지정해 입력하여 word_vecs로부터 해당 단어 벡터를 찾은 후 내부에서 word_vecs 정보 전체를 대상으로 코사인 유사도(cosine similarity)를 계산하여 높은 값순으로 지정된 개수만큼 출력한다. you와 유사한 언어로는 I, we, your를 볼 수 있다. year는 month, week 와 유사함을 알 수 있다.

king과 man의 비교에서 queen은 woman에 대응한다. take와 took의 현재형과 과거형 비교로부터 go의 과거형 went를 유추할 수 있다.

car와 cars의 복수 관계를 유추하여 child에 관해서 children이 대응한다. 하지만 good과 better에 대해서 worse가 정답이지만 사용한 데이터베이스 ptb의 한계로 인해 유사성이 떨어지는 단어들을 찾아준다.

 

※ day 와 week 의 관계를 고려하여 month 의 상대어를 찾아보자.

[analogy] day:week = month:? year: 8.1484375, spring: 6.140625

, summer: 5.76953125, decade: 4.21484375, years: 3.845703125