Amazon Neptune ML це можливість машинного навчання (ML). Амазонка Нептун це допоможе вам робити точні та швидкі прогнози на основі даних вашого графіка. Під капотом Neptune ML використовує графові нейронні мережі (GNN), щоб одночасно використовувати переваги структури графа та властивостей вузла/ребра для вирішення поставленого завдання. Традиційні методи або використовують лише властивості без структури графа (наприклад, XGBoost, нейронні мережі), або лише структуру графа без властивостей (наприклад, node2vec, Label Propagation). Щоб краще маніпулювати властивостями вузла/краю, алгоритми ML вимагають, щоб дані були числовими даними, які добре поводяться, але необроблені дані в базі даних можуть мати інші типи, наприклад необроблений текст. Щоб використовувати ці інші типи даних, нам потрібні спеціальні етапи обробки, які перетворюють їх із рідного типу на числові дані, і якість результатів ML сильно залежить від якості цих перетворень даних. Необроблений текст, як і речення, є одним із найскладніших для трансформації типів, але нещодавній прогрес у сфері обробки природної мови (NLP) призвів до ефективних методів, які можуть обробляти текст, що надходить з кількох мов і різної довжини.
Починаючи з версії 1.1.0.0, підтримується Neptune ML кілька кодувальників тексту (text_fasttext, text_sbert, text_word2vec та text_tfidf), які забезпечують переваги останніх досягнень у NLP і забезпечують підтримку властивостей багатомовного тексту, а також додаткові вимоги до висновків щодо мов і довжини тексту. Наприклад, у випадку використання рекомендації щодо роботи вакансії в різних країнах можуть бути описані різними мовами, а довжина опису роботи значно відрізняється. Крім того, Neptune ML підтримує an автоматичний опція, яка автоматично вибирає найкращий метод кодування на основі характеристик текстової функції в даних.
У цій публікації ми проілюструємо використання кожного текстового кодувальника, порівняємо їхні переваги та недоліки та покажемо приклад того, як вибрати правильний текстовий кодер для завдання рекомендації про роботу.
Що таке кодувальник тексту?
Метою кодування тексту є перетворення текстових властивостей краю/вузла в Neptune у вектори фіксованого розміру для використання в моделях машинного навчання нижньої течії для завдань класифікації вузлів або прогнозування зв’язків. Довжина текстового елемента може сильно відрізнятися. Це може бути слово, фраза, речення, абзац або навіть документ із кількома реченнями (максимальний розмір одного ресурсу становить 55 МБ у Neptune). Крім того, текстові елементи можуть бути різними мовами. Також можуть бути речення, які містять слова кількома різними мовами, які ми визначаємо як перемикання кодів.
Починаючи з випуску 1.1.0.0, Neptune ML дозволяє вибирати з кількох різних кодувальників тексту. Кожен кодер працює дещо по-різному, але має однакову мету — перетворити поле текстового значення з Neptune у вектор фіксованого розміру, який ми використовуємо для створення нашої моделі GNN за допомогою Neptune ML. Нові кодери такі:
- text_fasttext (новий) – Використання швидкий текст кодування. FastText — це бібліотека для ефективного навчання подання тексту.
text_fasttext
рекомендовано для функцій, які використовують лише одну з п’яти мов, які підтримує fastText (англійська, китайська, гінді, іспанська та французька). Thetext_fasttext
метод може за бажанням прийматиmax_length
поле, яке визначає максимальну кількість токенів у значенні властивості тексту, яке буде закодовано, після чого рядок скорочується. Ви можете розглядати лексему як слово. Це може підвищити продуктивність, коли значення текстових властивостей містять довгі рядки, тому що ifmax_length
не вказано, fastText кодує всі лексеми незалежно від довжини рядка. - text_sbert (нове) – Використовує речення BERT (СБЕРТ) спосіб кодування. SBERT — це різновид методу вбудовування речень із використанням моделей навчання контекстного представлення, BERT-Networks.
text_sbert
рекомендується, якщо мова не підтримуєтьсяtext_fasttext
. Neptune підтримує два методи SBERT:text_sbert128
, який є типовим, якщо ви просто вкажетеtext_sbert
таtext_sbert512
. Різниця між ними полягає в максимальній кількості токенів у текстовій властивості, які кодуються. Thetext_sbert128
кодування кодує лише перші 128 токенів, тоді якtext_sbert512
кодує до 512 токенів. В результаті використанняtext_sbert512
може знадобитися більше часу на обробку, ніжtext_sbert128
. Обидва методи повільніші, ніжtext_fasttext
. - text_word2vec - Використання Word2Vec алгоритми, спочатку опубліковані Google для кодування тексту. Word2Vec підтримує лише англійську мову.
- text_tfidf – Використовує термін частотно-інверсна частота документа (TF-IDF) векторизатор для кодування тексту. Кодування 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 | Максимальна довжина не обмежена | |
Вартість часу | Loading | Приблизно 10 секунди | Приблизно 2 секунди | Приблизно 2 секунди |
Висновок | Fast | Сповільнювати | 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 або 广东省 (китайська)
- Основний – Наприклад, Human Resources Management або Lic Cytura Fisica (іспанська)
- DegreeType – Наприклад, бакалавр, магістр, доктор філософії або жодного
- WorkHistoryCount – Наприклад, 0, 1, 16 і так далі
- TotalYearsExperience – Наприклад, 0.0, 10.0 або NAN
Вакансії мають такі властивості:
- назва – Наприклад, адміністративний помічник або Lic Cultura Física (іспанська).
- Опис – Наприклад, «Ця посада адміністративного помічника відповідає за виконання різноманітних канцелярських та адміністративних допоміжних функцій у сфері зв’язку…» Середня кількість слів в описі становить приблизно 192.2.
- Вимога – Наприклад, «ВИМОГИ ДО РОБОТИ: 1. Увага до деталей; 2. Уміння працювати в швидкому темпі; 3. Виставлення рахунків…»
- стан: – Наприклад, CA, NY тощо.
Тип вузла місто як Вашингтон, округ Колумбія та Орландо, Флорида, має лише ідентифікатор для кожного вузла. У наступному розділі ми проаналізуємо характеристики різних функцій тексту та покажемо, як вибрати відповідні текстові кодери для різних властивостей тексту.
Як вибрати різні кодери тексту
Для нашого прикладу Основний та назва властивості на кількох мовах і мають короткі текстові послідовності, тому text_sbert
рекомендовано. Зразок коду для параметри експорту полягає в наступному. Для text_sbert
типу, інших полів параметрів немає. Ось вибираємо text_sbert128
окрім text_sbert512
, оскільки довжина тексту відносно коротша за 128.
Команда Опис та Вимога властивості, як правило, у довгих текстових послідовностях. Середня довжина опису становить приблизно 192 слова, що перевищує максимальну довжину вхідних даних text_sbert
(128). Ми можемо використовувати text_sbert512
, але це може призвести до повільнішого висновку. Крім того, текст викладено однією мовою (англійською). Тому рекомендуємо text_fasttext
з en цінність мови через його швидкий висновок і необмежену довжину вхідних даних. Зразок коду для параметри експорту полягає в наступному. The text_fasttext
кодування можна налаштувати за допомогою мова та максимальна_довжина, language
значення обов’язкове, але max_length
необов’язково.
Додаткову інформацію про варіанти використання рекомендацій про роботу можна знайти в Підручник для зошита Neptune.
Для демонстрації ми вибираємо одного користувача, тобто користувача 443931, який має ступінь магістра за спеціальністю «Менеджмент і людські ресурси. Користувач подав заявку на п’ять різних вакансій, які називаються «Менеджер з персоналу (HR)», «Спеціаліст з персоналу», «Менеджер з персоналу», «Адміністратор з персоналу» та «Старший спеціаліст із заробітної плати». Щоб оцінити ефективність завдання рекомендацій, ми видаляємо 50% застосованих вакансій (країв) користувача (тут ми видаляємо «Адміністратор відділу персоналу» та «Менеджер відділу персоналу (HR)) і намагаємося передбачити найвищу 10 вакансій, на які цей користувач найімовірніше претендуватиме.
Після кодування функцій роботи та функцій користувача ми виконуємо завдання прогнозування зв’язку, навчаючи модель згорткової мережі реляційного графа (RGCN). Навчання моделі Neptune ML вимагає трьох кроків: обробки даних, навчання моделі та створення кінцевої точки. Після створення кінцевої точки висновку ми можемо надати рекомендації для користувача 443931. З передбачуваних 10 найпопулярніших вакансій для користувача 443931 (тобто «спеціаліст з персоналу», «менеджер з персоналу», «старший спеціаліст із заробітної плати», «люди Resources Administrator», «HR Analyst» та ін.), ми бачимо, що дві видалені вакансії є серед 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
- ai мистецтво
- AI арт генератор
- ai робот
- Амазонка Нептун
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AWS Машинне навчання
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- глибоке навчання
- у вас є гугл
- навчання за допомогою машини
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- синтаксис
- зефірнет