Вывод модели из [Глубокого сопоставления текста]

NLP

1. datasets

Протестируйте модель подобия текста на двух наборах данных, ATEC и LCQMC, взгляните на каждый пример:

ATEC:
蚂蚁花呗账单分期当月用还款吗,我的蚂蚁花呗的分期这个月还了,未,0
我花呗绑卡绑不上怎么回事,怎么绑定不了花呗,0
怎么才能关闭借呗,帮我关闭借呗入口,1
借呗怎么只能分成六个月还款,借呗设置额度,下个月还能设置吗,0

LCQMC:
校验失败了,	您好,您还是访客状态呢	0
尼玛什么意思	尼玛啊是什么意思?	0
自找苦吃的地方是哪儿?	自找苦吃的地方是哪儿	1
尾号4位多少	尾号是多少后4位	1
dataset Количество (поезд/разработка/тест) распределение поездов по классам (0:1)
ATEC 11/22/33 75435 : 16870
LCQMC 11/22/33 100192 : 138574

Судя по количеству распределений классов, ATEC представляет собой набор данных с чрезвычайно несбалансированным распределением.

2. solutions

Общие решения этого типа проблемы следующие. Во-первых, предварительно обработайте данные. Используйте сегментацию слов jieba, отфильтруйте stop_words и используйте словарь Baidu stop_wotds.link.

2.1 transformer + siameses-net

Эксперимент 1: использование встраивания перчаток, dim=300, уровень токена,

| dataset | F1 score | precision| aveTime| | ---- | ---- | ---- | | ATEC | 0.82157 | 0.82157 | | LCQMC | 0.50272 | 0.50272 |

Анализ: Все результаты по ATEC неверны, и все прогнозируются как отрицательные.

Эксперимент 2: Использование встраивания bert

Эксперимент 3: Немедленная инициализация встраивания

2.2 AlBert

使用AlBert模型进行 fine-tuning,
1. set 1, epoch:1.0
eval_accuracy = 0.81263494
eval_accuracy = 0.81263494
eval_loss = 0.41541135
global_step = 3730
loss = 0.41508695
    
2. set 2, epoch:2.0
 eval_accuracy = 0.78366095
 eval_accuracy = 0.78366095
 eval_loss = 1.7134513
 global_step = 7461
 loss = 1.7120895
 
 
15.
eval_accuracy = 0.788774
eval_accuracy = 0.788774
eval_loss = 2.2002842
global_step = 55960

| dataset | F1 score | precision| epoch| aveTime| | ---- | ---- | ---- | ----| | LCQMC | 0.84032 | 0.84032 | 1| |LCQMC|0.844|0.844|5| |LCQMC|0.84192|0.84192|10| |LCQMC|0.80304|0.80304|15|

Почему большее количество эпох работает хуже?

Краткое описание модели

Весь процесс ALBert представляет собой облегченную версию Bert, которая представляет собой упрощенную версию bert, а также обновленную версию. По сравнению с Bert, ALBert имеет три основных изменения:

  1. Факторизация встраивания (параметризация факторизованного встраивания)
  2. Межуровневое совместное использование параметров
  3. Изменены задачи NSP на задачи SOP. Потеря связности между предложениями

code paper

недостаток:

预测时间长

2.3 AlBERT+siameses-net link

Краткое описание модели

Структура проекта этой модели очень проста, то есть BERT действует как энкодер и использует структуру двойной сети для непосредственной тонкой настройки конкретной задачи для обновления веса BERT. Тогда сгенерированный вектор предложений имеет смысл, и косинусное сходство можно использовать для прямого вычисления расстояния. Как показано на рисунке:image_1e2vihclp11376o314dm1bgfknl9.png-66.4kBЗдесь мы используем модель Альберта.

| dataset | F1 score | precision|checkpoint| aveTime| | ---- | ---- | ---- | ----| | LCQMC | 0.80712 | 0.80712 |149228| | LCQMC | 0.71472 | 0.71472 |7461| | LCQMC | 0.71472 | 0.71472 |37307|

Руководство по созданию siameses-net с Альбертом.code

2.4 simnet

Краткое описание модели

image_1e36cuasknqj1engku7177f9hc9.png-59.6kB

max0,margin(S(Q,D+)S(Q,D))\max{0,margin-(S(Q,D+)-S(Q,D-))} code document

2.5 MatchPyramid

image_1ec4r3rkc1oe1hk418mjju1cng9.png-216.9kB

Обзор идей: Вдохновленный распознаванием изображений, сначала вычислите сходство между токенами каждой позиции входных двух предложений и постройтематрица подобия, а затем используйте модель CNN для извлечения признаков из матрицы подобия и, наконец, добавьте слой maxpool, а затем используйте классификацию softmax.

2.6 PolyEncoder

Введение модели

Poly-encoder

В этой статье он назвал вышеуказанную сиамскую сеть Bi-encoder, а AlBert — Cross-encoder. Поликодировщик — это компромисс между ними, принимая во внимание производительность и точность предварительного редактирования.

Структура сети по-прежнему состоит из двух симметричных кодировщиков, и правый кодировщик кодирует кандидата для полученияycondiy_{condi}. Левый кодирует ввод Q и занимает верхний слой.mmвекторы(yctxt1...yctxtm)(y^1_{ctxt}...y^m_{ctxt}), затем сycondiy_{condi}Выполните операцию внимания, гдеwwЕго можно рассматривать как полученное значение, относящееся к текущему кандидату. который:图1

для кандидатаAA, который также можно кэшировать заранееycondiy_{condi}, так что вQQПри прогнозировании вам нужно только получить первые m векторов верхнего слоя и получитьyctxty_{ctxt}, а потом сycondiy_{condi}Вычисление косинусного расстоянияQAQAсходство двух.

Теперь остается вопрос, как выбрать этоmmВектор, автор акцентирует внимание на тестировании двух стратегий:

  1. Выберите первый m напрямую, как показано на рисунке 1.
  2. Выполните операцию «Внимание» для всех выходных векторов верхнего слоя и изучите m кодов.(c1,...,cm)(c_1,...,c_m), а затем взять соответствующий индексyctxtiy^i _{ctxt}, как показано на рисунке 2.

图2

paper code Ссылка 1

2.7 «КольБЕРТ» (SIGIR 2020)

1. Введение в модель

image_1ehu3rmua1q881brs1lehv43138t9.png-63.1kB

ColBERT также использует структуру сиамского языка. Разделенная на Query-encoder и Doc-encoder, эта модель использует встраивание на уровне токена, полученное кодировщиком, а затем вычисляет связь каждого токена между запросом и документом для измерения сходства.

2. Введение модели

  1. Кодировать запрос и документ отдельно

image_1ehu3ukqcbcvlhgusq15if1631m.png-21.5kB

Кодирование использования Query и DocТа самая модель Берта, поэтому, чтобы различать Query и Doc, добавьте [Q] и [D] перед входной последовательностью соответственно. Bert является кодером, CNN выполняет преобразование размерности, которое используется для уменьшения размерности скрытого слоя на выходе BERT, а Normalize выполняет регуляризацию l2 для последующего вычисления сходства косинусов.

При построении входной последовательности Query специальные символы [маска] используются для заполнения для более коротких длин. Автор объяснил, что дополнение на этом этапе может играть роль расширения запроса, и результаты эксперимента показывают, что эта часть имеет большое влияние. .Автор объясняет эффективность этой модификации запросов тем, что она позволяет модели BERT генерировать представления внедрения на основе запросов в этих замаскированных позициях. Цель состоит в том, чтобы научиться расширять представление запроса новыми словами или путем повторного взвешивания слов в соответствии с их важностью..

Для Doc необходимо отфильтровать знаки препинания. 2. Последующее взаимодействие

image_1ehu409seatt1pk7ijn3nsr6413.png-7kBНаконец, вычисляется сходство, которое представляет собой сумму сходства между каждым токеном запроса и встраиванием запроса в качестве окончательной оценки.Sq,dS_{q,d}, (поскольку регуляризация L2 выполняется сначала на матрице, вычисление скалярных произведений фактически является вычислением косинусного сходства).

Кроме того, хорошее введение в статье,faissМетод поиска непосредственно по полному набору данных автор называетEnd-to-end Top-k Retrieval:

  1. faiss-based candidate filtering
  2. re-ranking

【Примечания】faiss: набор инструментов facebook с открытым исходным кодом для эффективного поиска сходства и кластеризации плотных векторов.

3. Анализ результатов и заключение

截屏2020-09-12 上午10.26.34.png-135kB

  • Давайте сначала посмотрим на общие результаты.Приведенный выше рисунок сравнивается с основными четырьмя схемами, а именно:
  1. Методы, основанные на наборе слов (лук), такие как BM25.
  2. Модель NLU на основе лука (эффективные модели на основе NLU)
  3. Нейронные модели соответствия.
  4. Интерактивная сеть сопоставления на основе языковой модели BERT (Language Model Pretraining for IR).

Достоверность результатов при ** (MRP@10)измерение, введение предварительно обученной языковой модели значительно улучшилось. существуетПроизводительность извлечения (латентность) **, модель интерактивных вычислений, представленная BERT, значительно хуже, и ColBERT, предложенный в этой статье, может обеспечить хороший компромисс и производительность в двух измерениях.

截屏2020-09-12 上午10.41.46.png-116.7kBКонкретные значения показаны на рисунке выше. Скриншот 2020-09-12 12.43.31image.png-119kBПри использовании метода end2end результат лучше, но латентность сильно увеличивается, что с точки зрения затрат нерентабельно.

截屏2020-09-12 上午10.42.54.png-56.7kBРезультаты другого набора данных (TREC CAR) также показали хорошие результаты с использованием BM25+ColBERT.

截屏2020-09-12 上午10.44.14.png-109.3kBНа картинке выше автор провел эксперимент по абляции на ColBERT и пришел к выводу, что: 1. Использование расширения запроса имеет большое улучшение. 2. Метод более поздней интеграции ColBERT лучше, чем использование одного вектора [CLS] непосредственно как скалярного произведения. 3. ColBERT использует максимальное сходство, которое значительно лучше, чем среднее сходство. 4. Лучше использовать метод end2end для извлечения непосредственно из полного набора языковых чатов, чем метод распределения (сначала используйте BM25, чтобы попасть в топ-1000 при повторном ранжировании). 5.截屏2020-09-12 上午10.55.01.png-70.9kBColBERT должен использовать BERT для кодирования каждого документа и сохранения полученного представления документа в виде индекса.На приведенном выше рисунке показано пространство для хранения (пространство), необходимое для различных измерений (размер) и битов (байты/размер), и соответствующие полученные Сравнение результатов (MRP@10). Видно, что установка размерности m=24 и количества цифр 2 позволяет очень четко запомнить, и в то же время можно получить хороший эффект.

【Ссылаться на】paper code

2.7 Text Matching with Richer Alignment Features

【Ссылаться на:】1 paper

3. Показатели оценки результатов

точность@k Средняя точность@K: Средняя точность@K относится к средней частоте правильных ответов от первого правильного отзыва до K-го правильного отзыва и до K-го правильного отзыва. MAP (средняя средняя точность @ K)

code

4. Другой контент

другие материалы:Measurement of Text Similarity: A Survey Evolution of Semantic Similarity - A Survey Обзор методов сопоставления текста (семантическое сходство/поведенческая релевантность) Краткое введение в сопоставление текста с глубоким обучением Text_Matching-github