ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [cs224n] 2강 워드 벡터와 워드 센스 (5/5, 워드 센스 (Word Senses))
    AI 2021. 1. 18. 18:07

    얘기하고 싶은게 2개 더 있네요 . 우리는 시작할 때 클린턴 문제가 있었죠. 클린턴이 여러 사람이라는 문제 말입니다. 여러분이 이름을 가지고 여러 사람을 언급하는 건 아마도 어떤 면에서는 단어가 애매해 질 수 있는 가장 간단한 예이죠. 사실 그건 이름에만 해당되지 않습니다. 대체로 인간 언어의 단어들은 애매하고 많은 의미를 가지는데, 흔히 쓰이는 단어에 특히 그렇고, 많은 의미가 있기 마련입니다. 오랫동안 존재했던 단어들이 그렇구요. 새로운 기술적 (technical)한 단어는 그렇지 않죠. 카서노마 (carcinoma)라는 단어는 하나의 의미가 있죠. 상대적으로 흔한 단어를 생각해 보면  그건 많은 의미가 있죠. 내가 고른 임의의 단어는 파이크 (pike)인데, 어쩌면 이게 그런 단어가 아닐 수도 있겠네요. 많은 의미를 가지고 있죠. 일종의 물고기,큰 창, 체조 움직임, 다이빙 움직임, 길, 의미가 많죠. 다른 의미도 있는데...

    호주 영어에선 동사로 어떤 것을 하는 것으로부터 빠져나오다 . 우리 모두는 나이트 클럽에 가기로 해는데 나중에, 조 (Joe)는 빠져나왔다 (pike) 처럼요. 여기선 그 용법이 흔하지 않죠. 나중에 해보세요. 이게 파이크에만 해당되나요? 쉘, 필드, 하우스, 메이크, 모두 많은 의미가 있죠 . 만일 우리가 하나의 의미만 있는 단어들만 있다면 어떻게 이게 동작하죠?

    재밌는 질문이죠. 

    우린 초기에 거기에 관심 있었죠. 워드2벡 논문이 나오기 전인 2012년에, 우린 신경 워드 벡터를 가지고 놀았는데 하나의 단어에 대해 하나의 의미만 가지는 건 이거 너무 쪼개져 있는다고 생각했죠. 왜 우리는 하나의 단어가 여러 의미를 가지는 모델을 만드는게 어떨까?라고 생각해서 매우 조잡한 방식으로 해 봤습니다. 우리가 한 방식은 , 각 공통 단어에 대해 그것이 나타나는 문맥을 클러스터링하자는 거였고 그리고 그 단어에 대한 몇가지 기준으로 여러 개의 명확한 클러스터가 있는지 보는 거였죠. 그리고 나서 우리는 그 단어를 유사 단어로 분리했습니다. 만약 그 단어에 대해서 5개의 클러스터가 있는 것 같으면, 재규어의 5개 클러스터면, 재규어1, 재규어2, .... 말그대로 바꿨죠. 우리의 코퍼스에 있는 단어를 클러스터 숫자에 따라서요. 그 다음 벡터 알고리즘을 돌리고 각 단어의 의미의 표현을 얻었죠.

    사실 그게 동작했고, 오른쪽 위 재규어 1 , 럭셔리 , 컨버터블, 여기 매우 오래된 버전의 맥 오에스 (Mac OS) 재규어, 소프트웨어와 마이크로소프트 옆에 있네요. 희망적이죠. 재규어가 사냥꾼 옆에 있죠. 재규어가 솔로 악기 키보드와 스트링 옆에 있네요. 뭔지 모르겠는데 재규어라는 키보드가 있나요? 이건 문제가 있었는데, 많은 경우, 의미 간의 분리가 명확하지 않았습니다. 많은 의미들이 서로 연결되어 있었고 겹쳤죠. 왜냐면 의미가 어떻게 나오는지 보면, 사람들이 단어의 의미를 확장시킵니다. 그건 임의로 사람들이 다음날 아침에 일어나서 '나 카펫을 알아'라고 하는게 아니죠. 저는 또한 저걸 돌이라고 할 수도 있죠. 스톤 (stone)이란 단어에 새로운 의미를 주는 거죠. 어러분이 아는 어떤 걸 꺼내서, 예를 들면, 웹 같은 단어를 꺼내서 여러분은 그걸 비유적으로 웹빙이라는 단어를 사용하는 것으로 확장하죠.

    여기 더 재밌는 게 있는데, 이건 다른 산지 아로라 (Sanjee Arora) 논문인데, 만약 여러분이 각 단어에 대해 하나의 의미만 있다면 어떤 일이 벌어지죠? 사실 여러분이 얻는 건  물리학자나 멋진 사람이 여러 의미의 워드 벡터의 슈퍼포지션 (superposition)으로 언급하는 것입니다.  슈퍼포지션이란건 가중치를 가진 평균입니다. 사실 파이크의 의미는 파이크의 여러 의미에 대해 벡터의 가중치 준 평균이고 컴포넌트는 그들의 빈도로 가중치를 줍니다. 그 부분이 그렇게 놀라운건 아닌데요. 정말 놀라운건, 만일 우리가 이 워드 벡터를 평균내면, 여러분은 평균에서는 아무것도 얻지 못할 거라고 생각하죠? 예를 들어 제가 2개의 숫자를 생각하고 있는데 가중치 평균은 54입니다라고 하면 2 숫자는 뭘까요? 질문에 답하기엔 정보가 너무 부족하죠. 그러나 이 워드 벡터에 대해서는 우리는 이 높은 차원의 공간이 있고 많은 단어들이 있지만, 그 차원에 대해서는 공간이 광대하죠. 사실 그 공간에서 실제 단어와 의미들은 매우 성깁니다. 결국 이 전체 문헌은 스파스 코딩 (sparse coding), 압축된 센싱 (compressed sensing)이고, 이것들 중 일부는 사실 통계 학과의 사람들에 의해 되었는데, 이 경우엔 ,여러분이 스파스 코드를 이 높은 차원의 공간에서 가지면, 비록, 여러분이 하는 것은 이 가중치 평균을 구하는 것이지만, 여러분은 사실 흔하게 슈퍼포지션의 컴포넌트를 재구성할 수 있습니다. 이 논문은 여러분이 어떻게 이걸 할 수 있는 지를 보여줍니다. 그들은 이 밑에 깔려있는 의미 컴포넌트를 분리해 냈습니다. 타이 (tie)는 이 하나의 의미 컴포넌트가 있는데, 이 바지, 블라우스, 허리 코트 등요. 말이 되죠. 다른 의미 컴포넌트는 시즌, 팀즈, 위닝 , 말이 되죠. 스코어라인 골리즈, 이퀄라이저, 등 이건, 저것과 약간 겹치는 것 같죠. 이건 케이블 타이 등등요. 그들은 이런 다른 센스 의미 (sense meaning)들을 단어 의미 밖으로 끌어낼 수 있었죠. 멋진거죠.

    여태까지 평가는 본질적인 평가였는데 외적인 (extrinsic) 평가를 해 보고 싶을 수도 있죠. 왜 워드 벡터가 자연어처리 사람들을 그렇게 많이 흥분시킬까요? 이 의미들을 가지면, 이 표현 의미를 가지면, 매우 유용하고 여러분의 작업을 개선할 수 있죠. 이건 개체명 인식 (named entity recognition)인데 사람을 지역, 조직 등으로 레이블링하는 거죠. 이건 전형적으로 많이하는 작업이고, 만약 워드 표현 없이 작업을 시작해서 워드 벡터로 집어넣으면, 글로브를 사용했던 안 했던, 몇 퍼센트가 올라가죠. 이건 여러분이 만든 자연어처리 시스템에 집어 넣을 수 있는 유용한 소스이고 숫자가 올라갑니다. 기본적으로 여러분이 시도하는 모든 익스트린직 작업에서 실제로 동작하는 매우 효과적인 기술이죠.

    댓글

Designed by Tistory.