Вывод пользовательской модели word2vec в более крупном проекте kmeans - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь выполнить довольно большой учебный проект без надзора и не уверен, как правильно использовать word2vec.Мы пытаемся объединить группы клиентов на основе статистики о них и о том, какие действия они предпринимают на нашем веб-сайте.Кто-то порекомендовал мне использовать word2vec и рассматривать каждое действие, которое пользователь выполняет как слово в «предложении».Причина, по которой этот шаг необходим, заключается в том, что один клиент может создать несколько строк в базе данных (примерно такая же статистика, но новая строка для каждого действия на веб-сайте в хронологическом порядке).Чтобы выполнить kmeans для этих данных, нам нужно сократить их до одной строки для каждого идентификатора клиента.Отсюда предыдущая идея свернуть действия как слова в предложении «описывающие действия пользователя»

Мой вопрос: я сталкивался с бесчисленными учебниками и онлайн-ресурсами, которые показывают вам, как использовать word2vec (в сочетании с kmeans) кластеризовать слова самостоятельно, но ни один из них не показывает, как использовать вывод word2vec как часть более крупной модели kmeans.Мне нужно иметь возможность использовать модель word2vec наряду с другими ценностями о клиенте.Как я должен идти об этом?Я использую python для кластеризации, если вы хотите быть конкретным с примерами кодирования, но я также мог бы просто упустить что-то супер очевидное и высокий уровень.Кажется, word2vec выводит векторы, но kmeans нужны прямые числа для работы, нет?Любое руководство приветствуется.

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

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

Преобразование этих последовательностей векторов слов в векторы является проблемой здесь.

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

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

0 голосов
/ 18 мая 2019

Есть два общих подхода.

  1. Принимая среднее всех слов. Это легко, но результирующие векторы, как правило, средние. Они не похожи на ключевые слова документа, но скорее похожи на самые средние и наименее информативные слова ... Мой опыт работы с этим подходом довольно разочаровывающий, несмотря на то, что это самый упоминаемый подход.
  2. par2vec / doc2vec. Вы добавляете «слово» для каждого пользователя во все его контексты, в дополнение к соседним словам, во время обучения. Таким образом, вы получаете «предсказательный» вектор для каждого абзаца / документа / пользователя так же, как вы получаете слово в первом word2vec. Они предположительно более информативны, но требуют гораздо больше усилий для обучения - вы не можете загрузить предварительно обученную модель, потому что они вычисляются во время обучения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...