Представляем CartoBERT, модель обработки естественного языка (NLP), разработанную командой Gojek по изучению картографических данных.

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

Это избавляет клиентов от необходимости звонить водителю-партнеру и объяснять, где они находятся, какого цвета одежда и т. Д. Наши пункты выдачи предназначены для облегчения жизни как клиентов, так и партнеров-водителей.
Это возможно, потому что пункты выдачи, указанные в приложении, являются популярными местами получения в этом районе. Более того, названия пунктов выдачи отображаются именно так, как их обычно называют водители-партнеры клиентов.
Но как нам удается точно и масштабно назвать такое количество пунктов выдачи заказов?
Мы используем прошлые места бронирования и связанные с ними журналы чата, чтобы находить названные точки получения. Как объяснялось в нашем предыдущем исследовании, мы сначала выполняем кластеризацию исторических бронирований, чтобы сформировать потенциальные точки получения, затем мы используем языковую модель, чтобы выбрать лучшее имя. Здесь мы объясняем, как мы улучшили предыдущую статистическую языковую модель с помощью современной модели НЛП, которая делает все упражнение по именованию полностью масштабируемым. Это волшебство всех точек выдачи, которые можно увидеть в приложении Gojek.
Как мы можем лучше учиться?
Как объяснялось в нашей предыдущей публикации, наша исходная статистическая языковая модель выбирает лучшее название пункта выдачи из наиболее вероятных n-граммов, извлеченных из текста бронирования. Однако такая статистическая языковая модель не «понимает» значение текстов, она просто выбирает фразы с высокой частотой, не зная семантики. Иногда он выбрасывает названия улиц, иногда даже общие фразы без информации о местоположении. Мы должны вручную проверить все, чтобы убедиться, что он отражает правильный POI, прежде чем он появится в приложении.
Это создает проблему, особенно если мы хотим быстро расширить возможности получения без трения для клиентов в новых регионах. Следовательно, мы решили сделать еще один шаг вперед с моделью НЛП с глубоким обучением, которая «понимает» и «учится» различать, что является действительным названием точки посадки.
В Gojek мы никогда не перестаем думать и всегда идем на шаг впереди
Познакомьтесь с CartoBERT 💚
Одним из самых последних и значительных достижений НЛП стала публикация Google в конце 2018 года BERT [1] - контекстного языкового представления с моделями-преобразователями. В нем были получены самые современные результаты по широкому кругу задач НЛП. В 2019 году BERT оказал влияние на многие исследования НЛП, включая XLNet, RoBERTa, ERNIE и т. Д.
BERT объяснил
BERT, или представление двунаправленного кодера от трансформаторов, состоит из слоя внедрения, за которым следуют группы слоев трансформатора.

Каждое слово (токен) во входном предложении сначала будет закодировано в его представления внедрения на уровне внедрения, а затем пройдёт через слои кодировщика двунаправленного преобразователя. Каждый уровень кодера будет выполнять вычисление внимания с несколькими головами для представления токена из предыдущего уровня, чтобы создать новое промежуточное представление, которое затем выводится на следующий уровень. Выходные данные последнего уровня - это контекстное представление входного токена. Объединенное представление уровня предложения, объединяющее все представления токенов, может быть создано при необходимости для конкретных последующих задач.
С окончательными контекстными представлениями на уровне токена или предложения предварительно обученный BERT на большом корпусе текста без меток может быть расширен для решения широкого круга задач НЛП, таких как классификация текста, ответы на вопросы, распознавание именованных сущностей (NER) и т. Д. .
ALBERT [2], опубликованный Google в сентябре 2019 года, улучшил BERT за счет встраивания факторизации параметров и совместного использования параметров между уровнями, чтобы уменьшить количество параметров (в 9 раз для базовой модели). Он также использует прогнозирование порядка последовательности вместо прогнозирования следующего предложения для задачи перед обучением. В статье ALBERT также превосходит BERT в стандартных задачах / наборах данных НЛП (SQUAD, RACE и т. Д.) С меньшим количеством параметров.
Подготовьте CartoBERT к изучению языкового представления из текста Gojek bookings
Вдохновленные облегченной моделью и характеристиками ALBERT, мы разработали CartoBERT, собственную модель распознавания названий пунктов выдачи Gojek, основанную на архитектуре ALBERT.
Как показано ниже, CartoBERT без корпуса предварительно обучен на собственном замаскированном текстовом корпусе бронирования Gojek, состоящем примерно из 200 миллионов предложений. Текст бронирования сначала предварительно обрабатывается для маскирования данных, чтобы замаскировать всю конфиденциальную информацию о клиенте, определение языка, нормализацию текста (включая очистку текста, сленг, преобразования аббревиатуры, преобразование в нижний регистр и удаление эмодзи). Предварительно обработанный текст используется для создания словарей подслов, которые обрабатывают токены вне словарного запаса (OOV), которые можно разложить на частые шаблоны подслов. Затем создается токенизатор CartoBERT с словарями подслов, который затем используется для кодирования и токенизации того же предварительно обработанного текста бронирования для формирования предварительно обученных входных файлов.
Как и ALBERT, модель предварительно обучена «понимать» текст заказов Годжека с использованием модели замаскированного языка, которая предсказывает случайно замаскированные токены во входных предложениях, и задач прогнозирования порядка предложений, которые предсказывают порядок пары входных предложений.

Тонкая настройка CartoBERT для извлечения названий пунктов выдачи из текста бронирования Gojek
Благодаря огромному количеству текстов о бронировании, которые у нас есть в Gojek, теперь CartoBERT может лучше «понимать» текст прошлых заказов. Теоретически он «понимает» каждое слово предложения в тексте бронирования.
Для каждого токена во входном предложении CartoBERT будет выводить 768-мерный вектор (мы используем размер скрытого слоя по умолчанию базовой модели ALBERT в CartoBERT, однако это можно настроить) из последнего уровня кодировщика-преобразователя, и мы используем его для представления CartoBERT. «понимание» значения токена в контексте предложения для шага точной настройки.
Как показано на диаграмме ниже, во время тонкой настройки CartoBERT для распознавания имени точки получения, мы заменяем слои модели маскированного языка и прогнозирования порядка последовательности из CartoBERT на этапе подготовки к обучению слоем классификации токенов. Слой классификации токенов учится предсказывать вероятность принадлежности токена к имени точки получения, с окончательным представлением токена, выводимым из слоев преобразователя CartoBERT, на основе помеченных обучающих данных, созданных с текстовыми предложениями бронирования, и соответствующими именами точек получения. Здесь мы используем взвешенную кросс-энтропийную потерю, чтобы справиться с дисбалансом классов, поскольку токены, помеченные для имен точек сбора, составляют меньшинство.

Благодаря этому CartoBERT точно настроен для извлечения названий пунктов выдачи из текстовых предложений бронирования, если таковые имеются.
Как работает модель?
CartoBERT позволяет повысить точность названий пунктов выдачи более чем на 25% до точности ~ 93%, которая измеряется как процент правильных названий пунктов выдачи из сгенерированных названий. Благодаря этой высокой точности мы достигли полной масштабируемости автоматической генерации именованных пунктов выдачи, чтобы быстро охватить несколько географических регионов без сильной зависимости от участия человека.
Что дальше?
Мы не останавливаемся на достигнутом и изучаем возможности активного обучения для дальнейшего улучшения CartoBERT. При активном обучении мы только помечаем неопределенные прогнозы, которые измеряются как наименьшая вероятность лексемы на уровне предложения [3] для человека. Затем мы используем данные, созданные человеком, в качестве обратной связи для обучения модели. Таким образом, мы можем повысить эффективность обучения модели с минимальными усилиями по разметке.
Более того, благодаря успеху CartoBERT, мы рассматриваем возможность предварительного обучения и открытого исходного кода для общей модели Индонезии Bahasa ALBERT с открытым корпусом Индонезии из вики, новостей, Twitter и т. Д. В настоящее время варианты языковой модели с открытым исходным кодом в Индонезии Bahasa: очень ограниченные, доступны только предварительно обученные статические вложения слов, такие как word2vec, fasttext и т. д. Сообществу было бы выгодно, если бы у нас была хорошая современная модель преобразования языка, основанная на внимании. Следите за новостями от команды Cartography Data Science. 🙌
Оставьте 👏, если вам понравилось то, что вы прочитали. Пишите мне с предложениями и отзывами.
Спасибо всем замечательным людям, которые внесли свой вклад в этот пост: Тан Фунан, Зане Лим, Данг Ле, Лиджуан Чиа, Бани Видьятмико, Морин Коха, Рингга Сапутра, Нур Иззахудинр, Сандия Арди, Йени Примасари, Ардья Дипта.
использованная литература
[1] Дж. Девлин , М. Чанг , К. Лук-порей. Тутанова : BERT: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка.
arXiv: 1810.04805 (2018)
[2] З. Лань , М. Чен , С. Гудман , К. Гимпель , П. Шарма , Р. Soricut : АЛЬБЕРТ: облегченный BERT для самостоятельного изучения языковых представлений. ArXiv: 1909.11942 (2019)
[3] М.Лю, З. Вт , З. Ван , Х. Xu : LTP: Новая стратегия активного обучения для распознавания именованных сущностей на основе Bert-CRF. ArXiv: 2001.02524 (2020)

Понравилось то, что вы прочитали? Подпишитесь на нашу рассылку, чтобы получать наши последние новости прямо на ваш почтовый ящик!