성능 측면에서 단어 포함 알고리즘


11

6 천만 개의 문구를 벡터 공간 에 삽입하려고 시도하고 그 사이 의 코사인 유사성 을 계산 하려고합니다. 나는 유니 그램 CountVectorizer과 bigram을 생성하는 맞춤형 내장 토큰 화 기능과 함께 sklearn을 사용 하고 있습니다. 의미있는 표현을 얻으려면 행 수에서 선형으로 엄청난 수의 열을 허용해야합니다. 이로 인해 엄청나게 희소 행렬이 발생하여 성능이 저하됩니다. 약 10,000 개의 열만 있으면 그렇게 나쁘지 않을 것입니다. 단어 삽입에 상당히 합리적이라고 생각합니다.

word2vec치수가 더 작고 밀도가 높은 임베딩을 생성하기 때문에 Google을 사용하려고합니다 . 그러나 그 전에 먼저 살펴볼만한 다른 삽입물이 있습니까? 핵심 요구 사항은 약 6 천만 개의 문구 (행)로 확장 할 수 있어야합니다.

나는 단어 임베딩 분야에 익숙하지 않아 조언이 도움이 될 것입니다.

또한 성능 향상을 위해 이미 단일 값 분해를 사용하고 있다고 덧붙여 야합니다.


Spark를 사용하고 있습니까?
eliasah

1
그것이 처음에 Spark를 제안한 이유 중 하나입니다. 죄송합니다. 전화를 받고 있습니다. 사전 임베드 된 PCA 기술에 관한 어떠한 참조에도 액세스 할 수 없습니다.
eliasah 2018 년

1
그 양의 데이터로 과잉인지 확실하지 않습니다.
eliasah

1
불필요한 토큰을 제거하면 텍스트를 작업하고 있기 때문에 차원을 크게 줄일 수 없습니다. 150000 단어 사전을 고려할 때 예제 당 중지 단어를 제거하면 수십 가지가 도움이됩니다. 도움이되지 않습니다.
eliasah

1
그렇지 않으면 Latent Dirichlet Allocation으로 주제 모델링을 고려하여 구문 당 텍스트 벡터 크기를 줄일 수 있습니다.
eliasah

답변:


3

Boltzmann 기계를 사용하여 word2vec (스킵 그램) 치수를 동적으로 할당하는 작업이 최근에 이루어졌습니다. 이 논문을 확인하십시오 :

"무한 차원 단어 포함"-Nalsnick, Ravi

기본 아이디어는 트레이닝 세트가 word2vec 모델의 차원을 지시하도록하는 것입니다.이 모델은 차원 크기와 관련된 정규화 용어에 의해 처벌됩니다.

위의 논문은 단어에 대해이 작업을 수행하며 구문이 얼마나 잘 수행되는지 궁금합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.