В этом проекте используются два подхода.

  1. Модель двунаправленного потока внимания
  2. Использование NLTK pos tagger и LSTM и плотных слоев

Использование модели двунаправленного потока внимания (подробно)

Модель используется для ответа на конкретные вопросы из контекста, заданного ей в форме абзаца. То есть обрабатывает запрос и контекст. Например, если мы хотим извлечь определенный набор навыков из резюме. Мы зададим вопрос Каковы навыки? т.е. изменение будет в последнем выходном слое модели.

Тензоры условных обозначений

H (вектор контекста), Q (вектор запроса), H (вектор более тусклого контекста после прохождения через LSTM), U (более тусклый вектор запроса после прохождения через LSTM), H ~ (вектор объединенного контекста запроса), U ~ (вектор объединенного контекста запроса), S (матрица подобия), G (вектор контекста с учетом запроса), M (вектор конечных результатов)

Фигуры

H (dXT), Q (dXJ), H (2dXT), U (2dXJ), H ~ (2dXT), U ~ (2dXT), S (TXJ), G (8dXT), M (2dXT) < br /> PS: d = Общее количество измерений модели word2vec или GloVe T = Общее количество контекстных слов J = Общее количество слов запроса

Теперь разбираемся в модели: -

BIDAF состоит из 6 уровней, каждый из которых имеет различные функции:

  1. Слой встраивания персонажей
  2. Слой встраивания слов
  3. Слой контекстного встраивания
  4. Слой потока внимания
  5. Слой моделирования
  6. Выходной слой

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

Используемые методы: двунаправленный LSTM, встраивание символов с использованием CNN, встраивание Word с использованием модели Word2vec или GloVe (предварительно обучено).

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

Модель = Последовательный () Model.add (Двунаправленный (LSTM (10, incput_shape (20,1), output = ’True’)

Встраивание символов с помощью CNN -

Это эффективное использование CNN при обработке естественного языка. Каждое слово в предложении преобразуется в многомерное векторное представление, а затем сохраняется в двумерном матричном представлении. Затем к нему применяется одномерная свертка с различной шириной фильтра, чтобы сформировать не менее 300 различных слоев. Максимальный опрос всех слоев выполняется для получения одномерного векторного представления на уровне символа, этот подход используется в нейронной сети Conv для классификации предложений.

Вложения Word2Vector-

Это также преобразует слово в многомерное векторное представление на основе евклидова расстояния или близости к n его соседних слов в предложении. Вложения слов также могут быть сгенерированы с использованием одного горячего векторного представления (одна кодировка _hot в python), но это дает очень мало информации о слове, а также проблему размерности, поскольку английский язык имеет 26 алфавитов, мы
должны использовать 26-мерный вектор каждый раз, что потребляет ненужное пространство. Word2Vec или GloVe - это двухслойная нейронная сеть для создания встраиваемых слов. Это предварительно обученные модели.

  1. Встраивание символов выполняется с использованием описанной выше CNN, и мы получаем одномерное векторное представление на уровне символа.
  2. Затем выполняется встраивание слов с использованием модели GloVe, и мы получаем преобразование каждого слова в вектор, так как только тензоры могут подаваться в нейронную сеть для обучения. Эти вложения слов и символов объединяются и передаются в двухуровневую сеть Highway, которая выводит консолидированное векторное представление контекста и запроса. контекст как d X T как H и запрос как d X J как Q.

3. Слои контекстного встраивания: - это этап обучения модели, векторы Q и H загружаются в слои LSTM для изучения последовательности информации из контекста. и запросите отдельно. Это двунаправленный LSTM для подробного изучения временных отношений между словами как контекста, так и запроса по отдельности. Поскольку это двунаправленный LSTM, выходные данные прямых и обратных сетей объединяются по строкам, а выходное измерение в конечном итоге оказывается тензором измерений 2d XT и 2d XJ для контекста. (H) и запрос (U) соответственно. Где T и J обозначают количество слов в контексте и запросе соответственно.

4. Уровень потока внимания: - этот уровень отвечает за объединение информации от запроса к контексту и от контекста к запросу. Результатом этого уровня является G, который представляет векторное представление контекста с учетом запросов. Это требует использования матрицы подобия, которая описывает сходство между контекстом и запросом, то есть двумя матрицами H и Q. Матрица подобия вычисляется как

Где альфа - обучаемая скалярная функция. S имеет порядок T X J. А H: t и U: j - векторы-столбцы. Альфа может быть реализована как W (s) [u: h: u * h], где W (s) - это набор обучаемых весов, а: - конкатенация векторов.

Теперь основная цель этого уровня потока внимания - связывание запроса с контекстом, то есть какие слова в контексте больше связаны с запросом, а какие слова запроса более актуальны для контекста, обслуживающего цель потока внимания.

  1. Контекст для запроса: - обнаружение сходства каждого слова запроса со словами контекста с помощью матрицы сходства. at = softmax (St :), а затем

Таким образом, U˜ (2d X T) - это новый вектор запроса со всем сходством, слитый с вектором контекста.

2. Запрос к контексту: - Обнаружение сходства каждого слова контекста со словами запроса с использованием матрицы сходства как

Построение вектора G (контекст с учетом запроса)

Интуиция вектора G может быть найдена как конкатенация H, U ~, H ~, поскольку мы не хотим потери информации из-за резюмирования, и мы хотим, чтобы вся информация была неповрежденной без каких-либо потерь.

5. Уровень моделирования: - Этот уровень принимает G в качестве входных данных, проходит через два уровня двунаправленного LSTM и изучает временные отношения между словами контекста, который теперь учитывает запросы и полностью отличается от слоя контекстного встраивания, который изучает взаимосвязь по запросу и контексту отдельно. Поскольку он двунаправленный, он снова выводит M, который является вектором 2d X T, и каждый вектор-столбец учитывает контекстную информацию между запросом и контекстом.

6. Выходной уровень: - Это последний уровень и входные данные для этого уровня М. Например, в нашей задаче по извлечению навыков мы должны задать вопрос в запросе «Какие есть навыки?» Или последовательность запросов может быть < br /> выполняется как «Какое образование?» «Какие бывают проекты» «Какие бывают стажировки?» и т.д.;

Получаем распределение вероятностей начального индекса ответа по всему абзацу по формуле

 В качестве конечного индекса ответной фразы мы передаем M другому двунаправленному уровню LSTM и получаем M2 ∈ R2d × T. Затем мы используем M2 для получения распределения вероятностей конечного индекса аналогичным образом:

Утрата

Выполнение этого один раз даст только один классифицированный набор навыков. Итак, поскольку наш проект направлен на извлечение всего набора навыков. Таким образом, глядя на начальный индекс, мы должны искать второй и третий максимум вероятностей, чтобы мы могли классифицировать максимальное количество навыков в резюме с максимальной точностью. То же самое относится и к конечным точкам. Другими словами, после обнаружения одного навыка. Удалите кусок текста от начальной до конечной точки 1-го навыка, а затем запустите softmax вероятность для всего текста, кроме этой
части, и повторяйте это, пока мы не дойдем до конца.

Другой подход с использованием NLTK pos tagger + 2 слоя LSTM и плотных слоев.

В этом подходе мы будем использовать NLTK pos (части речевого тега или токенизатора) для разделения слов на существительное, глагол, прилагательное и т. Д. Мы постараемся разделить существительное и прилагательное, поскольку большая часть набора навыков находится в этих POS ( существительное и прилагательное) с помощью NLTK POS tagger. NLTK строит деревья, то есть отношения между существительным (NN), прилагательным, глаголом и т. Д., Присутствующими в предложении.

Архитектуры глубокого обучения для классификации кандидатов

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

Поскольку мы не можем кормить LSTM словами, слова необходимо преобразовать в векторы с использованием модели word2Vec или GloVe. Мы конвертируем каждое слово в 50-мерный вектор.

1-й входной уровень LSTM

Этот слой используется для ввода фразы, т. Е. Извлеченного СУЩЕСТВЕННОГО слова и прилагательных.

2-й уровень LSTM

Этот слой используется для подачи в контекст. Для данного размера окна n мы берем n соседних слов справа и n слов слева от нашей фразы-кандидата, векторные представления этих слов объединяются в вектор переменной длины и
перешли на уровень LSTM. Мы обнаружили, что оптимальное n = 3.

Плотный слой

Плотный слой используется для установления связи между фразой и контекстом, то есть (фраза + контекст), и имеет фиксированную форму ввода.

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

Спасибо ... Надеюсь, вам понравилось.