Обучение модели из нескольких корпусов - PullRequest
2 голосов
/ 25 сентября 2019

Представьте, что у меня есть модель быстрого текста, которая была обучена благодаря статьям Википедии (как объяснено на официальном сайте).Можно ли было бы обучить его снова с другим корпусом (научными документами), который мог бы добавить новые / более подходящие связи между словами?особенно для научных?

Подводя итог, мне нужны классические связи, которые существуют между всеми английскими словами из Википедии.Но я хотел бы дополнить эту модель новыми документами о конкретных секторах.Есть ли способ сделать это ?И если да, есть ли способ, возможно, «обуздать» тренинги, чтобы отношения, исходящие из моих пользовательских документов, были «более важными».

Мое последнее желание - вычислить косинусное сходство между документами, которое может быть очень научным(поэтому, чтобы получить лучшие результаты, я подумал о добавлении большего количества научных документов)

1 Ответ

2 голосов
/ 26 сентября 2019

Корректировка более универсальных моделей с помощью данных обучения конкретной области часто называется «точной настройкой».

Реализация gensim *1003* позволяет существующей модели расширить свой известный словарь с помощью того, что видно в новых обучающих данных (через build_vocab(..., update=True)), а затем для дальнейших циклов обучения, включая этот новый словарный запас.(через train()).

Но при выполнении этой конкретной формы обновления возникают неясные проблемы баланса между более старыми и новыми данными обучения без четких передовых методов.

В качестве одного примера, поскольку в исходной модели присутствуют токены / нграммы, которые не повторяются в новых данных, новое обучение подтягивает их в новых данных на новые позиции, оптимальные дляновые данные ... но потенциально произвольно далеки от сопоставимой совместимости с более старыми токенами / нграммами.)

Кроме того, это, вероятно, некоторые модельные режимы (например, отрицательная выборка по сравнению с иерархическим-softmax) и некоторые сочетания данных,у вас больше шансов получить чистую выгоду от этого подхода, чем у других, но вам, скорее всего, придется самим найти компромисс, без общих правил, на которые можно было бы положиться.

(Могут быть более точные стратегии настройки для моделей других типов; это просто говорит о способности gensim FastText обновлять словарный запас и повторять тренировку.)

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

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

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

Кроме того, если ваша настоящая цель заключается в сравнении полных статей, вы, возможно, захотите взглянуть на другие стратегии моделирования документов, включая представления с пакетом слов, реализацию Doc2Vec ('Paragraph Vector') в gensim,или другиеДля таких подходов необязательно требуются векторы для каждого слова в качестве входных данных, но они все равно могут хорошо работать для количественного определения сходства между текстами.

...