Amazon Нептун ML это возможность машинного обучения (ML) Амазонка Нептун Это поможет вам делать точные и быстрые прогнозы на основе данных вашего графика. Под капотом Neptune ML использует графовые нейронные сети (GNN), чтобы одновременно использовать преимущества структуры графа и свойств узлов/ребер для решения поставленной задачи. Традиционные методы либо используют только свойства и не используют структуру графа (например, XGBoost, нейронные сети), либо только структуру графа и не используют свойства (например, node2vec, распространение меток). Чтобы лучше манипулировать свойствами узла/ребра, алгоритмы машинного обучения требуют, чтобы данные были числовыми данными с хорошим поведением, но необработанные данные в базе данных могут иметь другие типы, например необработанный текст. Чтобы использовать эти другие типы данных, нам нужны специальные этапы обработки, которые преобразуют их из исходного типа в числовые данные, а качество результатов машинного обучения сильно зависит от качества этих преобразований данных. Необработанный текст, как и предложения, является одним из самых сложных типов для преобразования, но недавний прогресс в области обработки естественного языка (NLP) привел к появлению надежных методов, которые могут обрабатывать текст, поступающий с разных языков и разной длины.
Начиная с версии 1.1.0.0, Neptune ML поддерживает несколько кодировщиков текста (text_fasttext, text_sbert, text_word2vecкачества text_tfidf), которые используют преимущества последних достижений в NLP и обеспечивают поддержку многоязычных свойств текста, а также дополнительные требования к логическому выводу относительно языков и длины текста. Например, в случае использования рекомендаций по вакансиям сообщения о вакансиях в разных странах могут быть описаны на разных языках, а длина описаний вакансий значительно различается. Кроме того, Neptune ML поддерживает автоматический параметр, который автоматически выбирает лучший метод кодирования на основе характеристик текстового объекта в данных.
В этом посте мы проиллюстрируем использование каждого текстового кодировщика, сравним их преимущества и недостатки и покажем пример того, как выбрать правильные текстовые кодировщики для задачи рекомендации работы.
Что такое кодировщик текста?
Целью кодирования текста является преобразование текстовых свойств ребер/узлов в Neptune в векторы фиксированного размера для использования в последующих моделях машинного обучения либо для классификации узлов, либо для задач предсказания ссылок. Длина текстовой функции может сильно различаться. Это может быть слово, фраза, предложение, абзац или даже документ с несколькими предложениями (максимальный размер одного свойства — 55 МБ в Neptune). Кроме того, текстовые функции могут быть на разных языках. Также могут быть предложения, содержащие слова на нескольких разных языках, которые мы определяем как переключение кода.
Начиная с версии 1.1.0.0, Neptune ML позволяет выбирать из нескольких различных кодировщиков текста. Каждый кодировщик работает немного по-своему, но имеет одну и ту же цель: преобразовать поле текстового значения из Neptune в вектор фиксированного размера, который мы используем для построения нашей модели GNN с помощью Neptune ML. Новые энкодеры выглядят следующим образом:
- text_fasttext (новый) – Использование FastText кодирование. FastText — это библиотека для эффективного обучения представлению текста.
text_fasttext
рекомендуется для функций, которые используют один и только один из пяти языков, поддерживаемых fastText (английский, китайский, хинди, испанский и французский).text_fasttext
метод может дополнительно приниматьmax_length
поле, в котором указывается максимальное количество токенов в текстовом значении свойства, которое будет закодировано, после чего строка усекается. Вы можете рассматривать токен как слово. Это может повысить производительность, когда значения текстовых свойств содержат длинные строки, потому что еслиmax_length
не указан, fastText кодирует все токены независимо от длины строки. - text_sbert (новое) – использует предложение BERT (СБЕРТ) метод кодирования. SBERT — это своего рода метод встраивания предложений с использованием моделей обучения с контекстным представлением, BERT-Networks.
text_sbert
рекомендуется, когда язык не поддерживаетсяtext_fasttext
. Neptune поддерживает два метода SBERT:text_sbert128
, который используется по умолчанию, если вы просто укажетеtext_sbert
качестваtext_sbert512
. Разница между ними заключается в максимальном количестве кодируемых токенов в текстовом свойстве.text_sbert128
кодирование кодирует только первые 128 токенов, тогда какtext_sbert512
кодирует до 512 токенов. В результате с помощьюtext_sbert512
может потребовать больше времени обработки, чемtext_sbert128
. Оба метода медленнее, чемtext_fasttext
. - text_word2vec - использует Word2Old алгоритмы, изначально опубликованные Google для кодирования текста. Word2Vec поддерживает только английский язык.
- text_tfidf – Использует термин частотно-обратная частота документа (ТФ-ИДФ) векторизатор для кодирования текста. Кодировка TF-IDF поддерживает статистические функции, которых нет в других кодировках. Он количественно определяет важность или релевантность слов в одном свойстве узла среди всех других узлов.
Обратите внимание, что text_word2vec
и text_tfidf
поддерживались ранее, а новые методы text_fasttext
и text_sbert
рекомендуется вместо старых методов.
Сравнение различных кодировщиков текста
В следующей таблице показано подробное сравнение всех поддерживаемых параметров кодирования текста (text_fasttext
, text_sbert
качества text_word2vec
). text_tfidf
— это не метод кодирования на основе модели, а мера, основанная на подсчете, которая оценивает, насколько токен (например, слово) релевантен текстовым функциям в других узлах или ребрах, поэтому мы не включаем text_tfidf
для сравнения. Мы рекомендуем использовать text_tfidf
когда вы хотите количественно оценить важность или релевантность некоторых слов в одном свойстве узла или края среди всех других свойств узла или края.)
. | . | text_fasttext | text_sbert | text_word2vec |
Возможности модели | Поддерживаемый язык | английский, китайский, хинди, испанский и французский | Более 50 языков | Английский |
Может кодировать свойства текста, которые содержат слова на разных языках. | Нет | Да | Нет | |
Поддержка максимальной длины | Без ограничения максимальной длины | Кодирует текстовую последовательность максимальной длиной 128 и 512 символов. | Без ограничения максимальной длины | |
Стоимость времени | Загрузка | Примерно 10 секунд | Примерно 2 секунд | Примерно 2 секунд |
вывод | Быстрый | Замедлять | Medium |
Обратите внимание на следующие советы по использованию:
- Для значений текстовых свойств на английском, китайском, хинди, испанском и французском языках
text_fasttext
рекомендуемая кодировка. Однако он не может обрабатывать случаи, когда одно и то же предложение содержит слова более чем на одном языке. Для других языков, кроме пяти, которыеfastText
поддерживает, использоватьtext_sbert
кодирование. - Если у вас много текстовых строк значений свойств длиннее, например, 120 токенов, используйте
max_length
поле, чтобы ограничить количество токенов в каждой строке, котораяtext_fasttext
кодирует.
Подводя итог, в зависимости от вашего варианта использования мы рекомендуем следующий метод кодирования:
- Если ваши текстовые свойства находятся на одном из пяти поддерживаемых языков, мы рекомендуем использовать
text_fasttext
из-за его быстрого вывода.text_fasttext
рекомендуемый выбор, и вы также можете использоватьtext_sbert
в следующих двух исключениях. - Если ваши текстовые свойства указаны на разных языках, мы рекомендуем использовать
text_sbert
потому что это единственный поддерживаемый метод, который может кодировать свойства текста, содержащие слова на нескольких разных языках. - Если ваши текстовые свойства указаны на одном языке, который не входит в число пяти поддерживаемых языков, мы рекомендуем использовать
text_sbert
потому что он поддерживает более 50 языков. - Если средняя длина ваших текстовых свойств больше 128, рассмотрите возможность использования
text_sbert512
ortext_fasttext
. Оба метода могут использовать кодирование более длинных текстовых последовательностей. - Если ваши текстовые свойства только на английском языке, вы можете использовать
text_word2vec
, но мы рекомендуем использоватьtext_fasttext
для его быстрого вывода.
Демонстрация варианта использования: задача рекомендации работы
Цель задачи рекомендации работы — предсказать, на какую работу будут претендовать пользователи, на основе их предыдущих заявлений, демографической информации и истории работы. Этот пост использует открытый набор данных Kaggle. Мы строим набор данных в виде графа с тремя узлами: работа, пользователькачества город.
Вакансия характеризуется названием, описанием, требованиями, городом и штатом. Пользователь описывается со свойствами специальности, типа степени, количества трудовых книжек, общего количества лет опыта работы и т. д. В этом случае название должности, описание работы, требования к должности и специализация представлены в виде текста.
В наборе данных пользователи имеют следующие свойства:
- Область – Например, CA или 广东省 (китайский)
- Основной – Например, Управление персоналом или Lic Cytura Fisica (испанский)
- Тип степени – Например, степень бакалавра, магистра, кандидата наук или нет.
- РаботаИсторияКоличество – Например, 0, 1, 16 и т. д.
- ВсегоЛетОпыт – Например, 0.0, 10.0 или NAN
Работа имеет следующие свойства:
- Название – Например, помощник по административным вопросам или Lic Cultura Física (испанский).
- Описание – Например, «Эта должность помощника по административным вопросам отвечает за выполнение различных канцелярских и административных вспомогательных функций в области коммуникаций…». Среднее количество слов в описании составляет около 192.2.
- Требования – Например, «ТРЕБОВАНИЯ К РАБОТЕ: 1. Внимание к деталям; 2.Умение работать в быстром темпе;3.Выставление счетов…»
- Область: — Например, CA, NY и т. д.
Тип узла город например, Вашингтон, округ Колумбия, и Орландо, Флорида, имеют только идентификатор для каждого узла. В следующем разделе мы анализируем характеристики различных функций текста и иллюстрируем, как выбрать правильные кодировщики текста для различных свойств текста.
Как выбрать разные кодировщики текста
Для нашего примера Основной и Название свойства находятся на нескольких языках и имеют короткие текстовые последовательности, поэтому text_sbert
Рекомендовано. Пример кода для параметры экспорта составляет. Для text_sbert
type, других полей параметров нет. Здесь мы выбираем text_sbert128
кроме text_sbert512
, так как длина текста относительно меньше 128 символов.
Ассоциация Описание и Требования свойства обычно находятся в длинных текстовых последовательностях. Средняя длина описания составляет около 192 слов, что больше максимальной входной длины text_sbert
(128). Мы можем использовать text_sbert512
, но это может привести к более медленному выводу. Кроме того, текст на одном языке (английский). Поэтому мы рекомендуем text_fasttext
с en значение языка из-за его быстрого вывода и неограниченной длины ввода. Пример кода для параметры экспорта составляет. text_fasttext
кодировку можно настроить с помощью язык и максимальная длина, language
значение требуется, но max_length
не является обязательным.
Более подробную информацию о случаях использования рекомендаций по работе можно найти в Учебник по блокноту Neptune.
В демонстрационных целях мы выбираем одного пользователя, т. е. пользователя 443931, который имеет степень магистра в области управления и управления персоналом. Пользователь подал заявку на пять различных вакансий, озаглавленных как «Менеджер по персоналу (HR)», «Главный специалист по персоналу», «Менеджер по персоналу», «Администратор по персоналу» и «Старший специалист по расчету заработной платы». Чтобы оценить производительность рекомендательной задачи, мы удаляем 50% прикладных заданий (ребер) пользователя (здесь мы удаляем «Администратор отдела кадров» и «Менеджер отдела кадров (HR)») и пытаемся спрогнозировать топ 10 вакансий, на которые этот пользователь, скорее всего, откликнется.
После кодирования функций работы и функций пользователя мы выполняем задачу прогнозирования ссылок, обучая модель сверточной сети реляционного графа (RGCN). Обучение модели Neptune ML требует трех шагов: обработка данных, обучение модели и создание конечной точки. После создания конечной точки вывода мы можем дать рекомендации для пользователя 443931. Из прогнозируемых 10 лучших вакансий для пользователя 443931 (т. Администратор ресурсов», «Аналитик отдела кадров» и др.), мы видим, что две удаленные вакансии входят в число 10 прогнозов.
Заключение
В этом посте мы показали использование недавно поддерживаемых кодировщиков текста в Neptune ML. Эти текстовые кодировщики просты в использовании и могут поддерживать множество требований. В итоге,
- text_fasttext рекомендуется для функций, которые используют один и только один из пяти языков, поддерживаемых text_fasttext.
- text_sbert рекомендуется для текста, который text_fasttext не поддерживает.
- text_word2vec поддерживает только английский язык и может быть заменен на text_fasttext в любом случае.
Подробнее о решении см. Репо GitHub. Мы рекомендуем использовать текстовые кодировщики для графических данных в соответствии с вашими требованиями. Вы можете просто выбрать имя кодировщика и установить некоторые атрибуты кодировщика, сохраняя при этом модель GNN неизменной.
Об авторах
Цзяни Чжан — ученый-прикладник AWS AI Research and Education (AIRE). Она работает над решением реальных приложений с использованием алгоритмов машинного обучения, особенно задач, связанных с естественным языком и графами.
- Продвинутый (300)
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- Амазонка Нептун
- искусственный интеллект
- сертификация искусственного интеллекта
- искусственный интеллект в банковском деле
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- Машинное обучение AWS
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- глубокое обучение
- google ai
- обучение с помощью машины
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- масштаб ай
- синтаксис
- зефирнет