В начале 2020го меня позвали собеседоваться в Хуавей и попросили рассказать об опыте работы и исследованиях в аспирантуре. Соответственно, я рассказала про статью из предыдущего поста, и будущих коллег заинтересовали идеи, которые в ней были изложены. Тимлид (Ирина) предложила мне изменить исследование следующим образом: перейти от Марковских цепей к анализу графа внимания в трансформере, а от задачи детекции текстов с перемешанными словами - к задачам, где тексты различаются более тонким образом. Это я и стала делать вместе с ней и еще одним соавтором (Дмитрием, профессором алгебры).



Результатом стала работа того же 2020го "Betti numbers of attention graphs is all you really need" (если что, название предложила я, так что если хочется покекать над отсутствием оригинальности, это вопрос ко мне, а не к соавторам)): https://openreview.net/forum?id=KaPw8VdbNr4

В этой работе количество собственно топологии резко уменьшилось, редуцировавшись до описания двух элементарных инвариантов (числа Бетти размерности 0 и 1) и отсылке на персистентность, про которую нужно читать где-то в другом месте, а количество ML, напротив, возросло.

В общем случае, числа Бетти являют собой размерности первых двух групп гомологий многообразия или комплекса. Но для такого простого комплекса, как граф (симплициальный комплекс с симплексами размерности 0 и 1), числа Бетти имеют простую интерпретацию и вычисляются по простым формулам, которые можно понять, и не зная топологии.

А именно, нулевое число Бетти графа b0 =| C |, а первое b1 = |E| + |C| - |V|, где C - компоненты связности, E - ребра, V - вершины. Т.е. нулевое число Бетти графа - это количество его компонент связности, а первое - это количество независимых циклов в графе.

Эксперименты в статье были устроены так. Бралась стандартная модель BERT, через нее пропускались примеры из датасетов. По каждому примеру вычислялись матрицы внимания на каждой голове BERT. По каждой матрице внимания строился граф. Затем он делался неориентированным: каждому ребру назначался вес, равный максимуму весов в направлениях туда-обратно. Затем бралось несколько "фильтраций" каждого графа по разным порогам. Каждая фильтрация получалась из исходного графа путем отсечения ребер, меньших, чем заданный порог. Наконец, на этих фильтраций считались числа Бетти. В итоге, каждому примеру датасета сопоставлялись числа Бетти графов, полученных таким слегка замысловатым образом из исходных графов внимания на разных головах. Далее числа Бетти использовались как фичи для классификатора (логистической регрессии), и на каждом датасете оценивалась точность классификации по ним.

Датасетов было три - SPAM (детекция спама), Imdb (классификация отзывов по тональности), CoLA (детекция предложений с ошибками).

Оказалось, что качество классификации по числам Бетти было +- наравне с качеством, который давал сам BERT на этих датасетах со стандартным классификатором, навешанным на выход модели. Другими словами, числа Бетти графов внимания BERT содержали в себе достаточно информации для того, чтобы провести классификацию на этих датасетах, выход самой модели для этого оказалось использовать не обязательно.



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

Слабым местом данной статьи являлось и то, что графы внимания извлекались из модели BERT после того, как она была отдельно дообучена на каждом датасете, что уменьшало ценность результата. В следующей работе мы, кроме прочего, показали, что можно точно также извлекать числа Бетти из BERT, который был взят "из коробки" и не был дообучен на отдельных датасетах, и все равно делать по ним хорошую классификацию - правда, уже на другой задаче. Ну а эта маленькая статья так и осталась висеть на openreview до тех пор, пока мы не переродили ее на архиве: https://arxiv.org/abs/2207.01903



#объяснения_статей #о_себе