2016-07-14 3 views
1

저는 워드 임베딩에 대해 연구 중이며 워드 벡터의 차원 수에 대해 약간 혼란 스럽습니다. 내 말은, word2vec을 예로 들겠 다. 나의 질문은 우리가 숨겨진 레이어에 100 개의 숨겨진 뉴런을 사용하도록하는 이유이다. 이 번호는 어떤 의미 또는 논리를 가지고 있습니까? 또는 그것이 임의적이라면 왜 300이 아니겠습니까? 또는 10? 왜 그다지 많지 않습니까? 벡터를 표시하는 가장 간단한 방법은 2 차원 공간 (X와 Y 만)에있는 이유는 무엇입니까? 나는 그것들에 대한 약간의 자료를 읽었고 어떤 예에서는 100 차원을 선택하고, 다른 하나는 150, 200, 80 등과 같은 다른 숫자를 선택했다.단어 삽입 모델에서 관계를 표시하기 위해 더 큰 벡터 공간이 필요한 이유는 무엇입니까?

나는 수가 많을수록 관계를 표시하는 공간이 더 크다는 것을 안다. 단어 사이에 있지만 2 차원 벡터 공간 (X와 Y 만)에 관계를 표시 할 수 없습니까? 왜 우리는 더 큰 공간이 필요합니까? 각 단어는 벡터로 표시되므로 왜 2 차원 공간이나 3 차원 공간에 벡터를 표시 할 수있을 때 고차원 공간을 사용해야합니까? 그런 다음 코사인 같은 유사성 기술을 사용하여 100 (계산 시간 관점에서)가 아닌 2 또는 3 차원에서 유사점을 찾는 것이 더 간단합니다.

답변

1

음 벡터를 표시하는 것이 최종 게임 인 경우 2 차원 또는 3 차원 벡터를 사용할 수 있으며 가장 잘 작동합니다.

종종 NLP에서 태그 지정, 구문 분석, 의미 이해 등과 같은 잘 정의 된 작업이 있습니다. 이러한 모든 목적을 위해 더 높은 차원의 벡터는 항상 2 차원, 3 차원 벡터보다 잘 수행됩니다. 그것은 당신이 가진 관계를 포착하기 위해 더 많은 자유를 누릴 수 있기 때문입니다. 그들을 통해 더 풍부한 정보를 포함 할 수 있습니다.

계산 시간 관점에서 보았을 때보다는 2 차원 또는 3 차원의 유사성을 찾기 위해 cosine과 같은 유사성 기술을 사용하는 것이 더 간단합니다. 맞습니까?

아니요. 이것은 2 개의 숫자를 더하는 것이 100 개의 숫자를 더하는 것보다 간단하다는 말입니다. 방법 (consine 거리)은 정확히 동일합니다.

+0

나는 upvote하고 싶었지만 대답의 두 번째 부분이 잘못되어 있지 않습니까? 크기가 300 인 두 벡터의 코사인 거리를 실행하는 것은 크기가 3 인 두 벡터에서 코사인 거리보다 약 100 배 더 많은 CPU 연산을 요구합니다. 따라서 3 개의 숫자를 추가하는 대신 300 개의 숫자를 추가하는 것보다 100 배 더 많은 노력이 필요합니다. (OP는 계산 시간을 묻는 것이므로 "더 간단하게"는 "더 빠름"을 의미합니다.) –

+0

하하 .. 그러면 왜 우리는 Big O 표기법을 편안하게 사용합니까? 당신의 논리에 따르면, O (100N)은 O (3N)보다 100 배 많은 노력이 있습니다 :-) – Aaron

+0

단어 사이의 관계를 배우기에 충분한 공간을 가지려면 200-400 차원이 필수적인 악입니다. 3 차원으로는 불가능합니다. – Aaron