В этом посте обобщены некоторые уроки, извлеченные при работе с реализацией Spark Word2Vec. Вас также может заинтересовать предыдущий пост «Проблемы, возникающие при использовании Spark мл Wod2Vec»

Урок 1: Spark Word2Vec getVectors возвращает уникальные вложения

Как упоминалось в части 2, функция преобразования предназначена для возврата векторов слов в заданных предложениях. Если вам нужна фактическая обученная модель и, следовательно, уникальное представление слов в векторе, вы должны использовать функцию getVectors.

Урок 2: Больше разделов == больше скорость == меньше качество

Существует баланс, который вам необходимо определить между быстрой реализацией и реализацией хорошего качества. Наличие большего количества разделов Word2Vec означает, что данные разделены на множество более мелких сегментов, что приводит к потере контекста слов в других сегментах. Данные собираются вместе только в конце итерации. По этой причине вы не хотите разбивать свои данные на слишком много разделов. Однако вы также не хотите терять параллелизм — в конце концов, вы используете spark, потому что вам нужны распределенные вычисления. Поэкспериментируйте с общим количеством разделов — правильное значение этого параметра будет отличаться в зависимости от проблемы. Также помните, что меньшее количество разделов означает меньший параллелизм и, следовательно, более медленный алгоритм.

Урок 3: Больше итераций == меньше скорость == больше качество

Как упоминалось в уроке 2, данные из разных разделов объединяются в конце каждой итерации. Наличие большего количества итераций означает больше контекста из разных сегментов и больше времени на обучение. Это означает, что большее количество итераций может привести к лучшим результатам, но они влияют на время работы алгоритма.

Урок 4. Для алгоритмов машинного обучения требуется много оборудования

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

Урок 5: Сохраняйте вещи на паркет

Почему? эффективное сжатие данных, созданное для обработки больших объемов данных, приводит к меньшим проблемам с памятью.

Урок 6: Искра мл Word2Vec не поддается насмешкам

Если вы пишете тесты для своих заданий Spark, что вам следует делать, вы, вероятно, попытаетесь смоделировать реализацию Spark Word2Vec, поскольку она недетерминирована. Вскоре вас встретит сообщение об ошибке, в котором говорится, что Word2Vec не может быть имитирован. Затем вы быстро обнаружите, что это последний класс в библиотеке мл. Чтобы обойти это, вы можете обернуть свой вызов Word2Vec в функцию и внедрить его в тестируемую функцию.

Первоначально опубликовано на странице intothedepthsofdataengineering.wordpress.com 26 июня 2017 г.