Алгоритмы встраивания слов с точки зрения производительности


11

Я пытаюсь вставить примерно 60 миллионов фраз в векторное пространство , а затем вычислить косинусное сходство между ними. Я использовал sklearn CountVectorizerс пользовательской функцией токенизатора, которая создает униграммы и биграммы. Оказывается, чтобы получить осмысленное представление, мне нужно учесть огромное количество столбцов, линейных по количеству строк. Это приводит к невероятно редким матрицам и убивает производительность. Это было бы не так плохо, если бы было всего около 10000 столбцов, что, я думаю, вполне разумно для встраивания слов.

Я думаю о том, чтобы попытаться использовать Google, word2vecпотому что я почти уверен, что он производит гораздо меньшие размеры и более плотные вложения. Но перед этим, есть ли какие-то другие вложения, которые могли бы сначала оправдать? Ключевым требованием будет возможность масштабировать около 60 миллионов фраз (строк).

Я довольно новичок в области встраивания слов, поэтому любой совет поможет.

Я также должен добавить, что я уже использую разложение по сингулярным числам для повышения производительности.


Вы используете Spark?
Элиасах

1
Это одна из причин, по которой я сначала предложил Spark. Извините, я на своем телефоне. У меня нет доступа к каким-либо ссылкам, касающимся предварительной вставки методов PCA.
Элиаса

1
Я не уверен, что это избыточное количество данных.
Элиаса

1
Удаление лишних токенов не должно сильно уменьшать размер, поскольку вы работаете с текстами. Если учесть словарь из 150000 слов, удаление стоп-слов в каждом примере принесет вам пару десятков слов. Это не поможет
Элиаса

1
В противном случае вы можете рассмотреть моделирование тем с помощью скрытого распределения дирихле, чтобы уменьшить размер вектора текста на фразу.
Элиаса

Ответы:


3

Недавно была проведена некоторая работа по динамическому назначению измерения word2vec (skip грамм) с использованием машин Больцмана. Проверьте эту статью:

«Бесконечное вложение слов» -Нальсник, Рави

Основная идея состоит в том, чтобы позволить вашему обучающему набору определять размерность вашей модели word2vec, которая наказывается термином регуляризации, связанным с размером измерения.

Вышеупомянутая статья делает это для слов, и мне было бы интересно посмотреть, насколько хорошо это работает с фразами.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.