Классификация текста с использованием вложения слов - PullRequest
0 голосов
/ 30 марта 2020

У меня есть набор данных положительного и отрицательного содержимого. Итак, давайте предположим, что это спам-проект.

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

Пока все хорошо.

Теперь сложная часть приходит.

Я хочу решить ту же задачу с помощью модели Keras LSTM. Итак, мой вопрос:

Это все еще контролируется или не контролируется, потому что я использую вложения слов для этой задачи и ссылаюсь на этот пост здесь, вложение слов используется для неконтролируемых задач: https://www.quora.com/Is-deep-learning-supervised-unsupervised-or-something-else

Там написано:

Глубокое обучение может быть без присмотра: вложение слов, кодирование изображений в более низкое или более высокое измерение и т. Д. c.

Итак - теперь это не контролируется или контролируется (потому что мой набор данных помечен)?

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

Это так запутанно! Пожалуйста помоги! Специально для задачи LSTM. Мне нужно знать, где он контролируется (из-за помеченного набора данных) или не контролируется (из-за использования вложений слов)

Заранее спасибо, ребята!

Ответы [ 3 ]

2 голосов
/ 30 марта 2020

Быстрое слово ободрения, я помню, чувствовал себя точно так же; безумно разочарован , когда я начал изучать это поле. Это действительно становится легче!

Вложения слов создаются путем обучения без учителя. Тем не менее, вы можете использовать обученный слой встраивания в пределах контролируемого проецирования, как вы делаете. Другими словами, ваш проект - это обучение под наблюдением, и на одном из слоев используются веса, полученные с помощью техники обучения без контроля. и что они могут сделать для контролируемого обучения. Я попытаюсь объяснить нетехническим способом, чтобы вы могли прочувствовать концепцию до изучения особенностей и педантизма.
Предположим, вы начинаете с гигантского корпуса. Вы подсчитываете частоту встречаемости каждого слова и используете его для ранжирования каждого по отношению к другим (или используете какую-то другую формулу, что угодно). Это метод текстовой «токенизации». Дело в том, чтобы получить слова в числах. Очевидно, что это важно, так как мы собираемся сделать с ними математику, но это создает некоторую щепотку: числовые отношения не обязательно несут какую-либо информацию о взаимосвязях значений слов , Чтобы улучшить это, вы можете обучить небольшую сеть, например, так: возьмите куски из вашего корпуса и создайте skipgrams , и научите сеть, что после применения весов и меры косинусное сходство , вывод должен быть 1, если слова появляются рядом друг с другом (или некоторыми другими критериями), или 0 (или, возможно, -1, если вы предпочитаете), когда они не появляются рядом друг с другом. В течение всего корпуса слова, которые, как правило, используются вместе, будут двигаться вместе и наоборот. Цель состоит в том, чтобы создать своего рода карту (или симулякр, если хотите) относительного значения токенов (которые являются словами); Иными словами, цель состоит в том, чтобы создать n-мерное представление относительных значений слов. Затем, после обучения, вложения могут быть сохранены для использования в таких проектах, как ваш. Затем ваш слой внедрения будет искать токен в сохраненных вложениях и извлекать его выходные данные, которые являются векторным представлением этого слова в пространстве внедрения; их координаты на нашей теоретической карте. Это считается «без присмотра», потому что вам не нужно явно предоставлять основную правду для сравнения; в этом случае он генерируется процедурно из обучающей выборки (то есть скипграмм, сгенерированных из того, что было введено). Другим примером может быть, если ожидаемый результат будет идентичен входу (как в авто-кодировщиках), который не контролируется (как раньше), потому что вам не нужно предоставлять ожидаемый результат; если вы вводите данные, они автоматически получают ожидаемый результат.
Если все это сбивает с толку, просто сделайте паузу и подумайте о своих собственных мыслях: если я попрошу вас сказать слово, которое означает то же самое, что и «большой» в При фразе «большая пицца» вы обращаетесь к своему пониманию значения слова «большой», относящегося к указанной фразе, и рисуете что-то максимально близкое к ней: возможно, слово «большой». Вложения - это способ создания карты, в которой «большая» и «большая» расположены очень близко друг к другу вдоль большинства осей (то есть в большинстве измерений).
Итак, когда вы загружаете некоторые предварительно обученные вложения, вы просто загрузив несколько весов в один из ваших слоев. Иногда люди инициализируют слои с нулями, иногда люди используют случайные нормальные или гауссовские распределения, а иногда люди используют определенные c значения (например, загрузка сохраненной сети или загрузка вложений); все то же самое. Если вы go собираетесь выполнять тренировку под наблюдением, то вы делаете именно это: выполняете тренировку под наблюдением. После слоя внедрения информация, с которой вы работаете, - это не произвольные слова, а скорее это: относительные значения. И если это не просто аккуратно, я не знаю, что это такое! Я считаю, что полезно учитывать, что представляют ваши данные, когда они проходят через сеть.

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

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

  3. Вложения слов - это сопоставления слов: каждое слово представляется в виде вектора . Вы используете вложение слов для преобразования слов в векторы, чтобы питать нейронную сеть.

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

2 голосов
/ 30 марта 2020

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

Как По очень общему правилу, природа или проблема (контролируемая / неконтролируемая) определяется сквозной проблемой целом , а не ее подзадачами.

Аналогия в более простом может быть полезна настройка классификации / регрессии с числовыми признаками: здесь мы очень часто масштаб вводим числовые характеристики; масштабирование также является неконтролируемой техникой (метки не нужны), но поскольку она используется только для предварительной обработки, она не влияет на природу более крупной проблемы.

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

...