HSE-projects / logical_reasoning

Logical Reasoning of Transformers
0 stars 0 forks source link

Articles Review Sasha #4

Open Aktsvigun opened 2 years ago

alishudi commented 2 years ago

Measuring and Improving BERT’s Mathematical Abilities by Predicting the Order of Reasoning

https://aclanthology.org/2021.acl-short.49.pdf

Авторы пытаются научить берт решать несложные математические задачи. Используют датасет AQuA-RAT, состоящий из задач с пятью вариантами ответа, и пошаговых решений к задачам из трейн сета. Пример (кажется, варианты ответа в первом примере неправильные): image image

Идея в том, что бы с помощью пошаговых решений научить модель понимать логику решений.

Self-supervised losses

  1. MLM: Рандомно заменяем 15% токенов на токен [MASK]. Похоже на решение уравнений.
  2. ROP: С шансом 50% меняем местами два шага в решении и просим модель определить меняли ли мы решение.
  3. NROP: То же самое, но меняем местами только соседние шаги.

image

Модели

Во всех случаях берут предобученный на википедии и корпусе книг берт и файн тюнят.

  1. BERT-base: Файнтюн классификации на вопросах и ответах.
  2. BERT-AQuA: Сначала обучают с помощью MLM на вопросах и ответах, затем файнтюн классификации.
  3. BERT-AQuA-RAT: То же самое, но добавляют пошаговые решения.
  4. BERT-(N)ROP: Добавляют (N)ROP.

image

Результаты

image

Две последние модели гибридные (используют программы)

Важность пошаговых решений

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

image

Сравнение эмбеддингов

image

Permutation consistency

Для каждой задачи делали 5 перестановок сдвигом ответов, и засчитывали правильное решение, только если модель выдавала правильный ответ во всех 5 случаях. image

Пробовали различные способы увеличить permutation accuracy, но они не увеличивали итоговый accuracy на тесте.

Анализ сложности задач

Поделили задачи на легкие (1), средние (2-3) и тяжелые (4-5), в зависимости от того, на каком месте по вероятности находится правильный ответ. Далее вручную проанализировали типы задач в категориях. В тяжелые попали в основном задачи требующие знания внешних фактов, геометрия и нелинейные уравнения. В средние уравнения или системы нелинейных уравнений, в легкие задачи, решающиеся с помощью одной или двух базовых операций. Так же заметили что базовый берт пытается выбирать выделяющиеся ответы (например нецелые, если все остальные целые), у BERT-(N)ROP такого не наблюдается. Провели исследование на студентах матфака, что бы сравнить сложность оценку сложности задач моделей и людей. image

alishudi commented 2 years ago

Error Detection in Large-Scale Natural Language Understanding Systems Using Transformer Models

https://arxiv.org/ftp/arxiv/papers/2109/2109.01754.pdf

В голосовых ассистентах NLU состоит из нескольких моделей, каждая из которых занимается one-vs-all классификацией своей категории (музыка, погода и т.д.), и Reranker который ранжирует категории по выводу этих моделей.

image

Из-за такой архитектуры в случае неправильной классификации очень трудно понять из-за чего возникла ошибка. Авторы хотят построить модель, которая для выбранной категории определяет False Reject (что объект ошибочно отнесен к другой категории). Для этого авторы построили multitask learning модель которая одновременно определяет класс и FR. Она состоит из роберты и N-best module и полносвязанного слоя на их выходах. N-best module берет N самых вероятных гипотез из реранкера NLU модели и строит для каждой шестимерный эмбеддинг. Эти токены конкатенируются с друг другом и 1024-мерным CLS токеном роберты и подаются на вход полносвязанному слою.

image

Результаты

image

alishudi commented 2 years ago

K-BERT: Enabling Language Representation with Knowledge Graph

https://arxiv.org/abs/1909.07606

Статья про встраивание графа знаний в трансформер. image

Что бы использовать информацию из графа знаний авторы строят для каждого предложения sentence tree. Изначальное предложение - 'ствол' дерева. Для каждого слова в предложении проверяют вхождение в граф знаний и вставляют ветки вида 'субъект (слово из предложения)' - 'отношение' - 'объект'.

image

Далее считают soft index и hard index. Soft index вершины дерева - это расстояние до начала дерева (т.е. [CLS]). Hard index считается следующим образом - начинаем идти из начала дерева и нумеруем все вершины, если в вершине есть ветки, то сначала проходим по всем веткам (порядок не важен), затем идем дальше по стволу.

Hard index нужен для того что бы получить последовательность токенов которую можно подать в энкодер. Soft index нужен для position embedding т.к. hard index часто увеличивает расстояние между словами.

image

Последовательность токенов получаемая с помощью hard index не похожа на предложение и содержит несвязанные между собой токены (ветки из разных вершин ствола), поэтому авторы используют masked attention, что бы построении эмбеддингов не смотреть на лишние слова.

image Для вершин из ствола маскируем все ветки начинающиеся из других вершин. Для вершин не из ствола маскируем все кроме текущей ветки.

image

Далее просто подаем все на вход берту, где вместо self-attention слоев используются masked self-attention.

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