Здесь должна быть мотивирующая надпись в духе "если ты стесняешься своих маленьких научных результатов, посмотри с чего начинали Boston Dynamics", плюс какие-нибудь поучения что надо не сдаваться и т.д. и т.п., сами придумайте
https://youtu.be/E7qJQ2i47ZY
https://youtu.be/E7qJQ2i47ZY
❤8🔥4👏1
Ладно, не буду больше откладывать и напишу про свою линию исследований про TDA в NLP.
Все началось с моей старой, совсем неказистой статьи https://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ista&paperid=225 (годов 2018-2019), которую я написала в аспирантуре с небольшой помощью друга (соавтора) и научника. По всей видимости, эти два человека - единственные, кто прочитал ее целиком (рецензирование в журнале Интеллектуальные системы, мягко говоря, хромает), поэтому я не уверена ни в том, что там нет ошибок, ни в том, что это не велосипед.
Теоретическая часть статьи (сейчас будет скриммер в виде мат.терминов) заключалась в том, что я определила персистентные гомологии (условно) "на Марковских цепях" через прокси-конструкцию - неориентированный граф, вершины которого совпадают с состояниями Марковской цепи, а вес ребра между двумя состояниями соответствует сумме вероятностей перехода из первого во второе и из второго в первое. На таком графе уже можно ввести фильтрацию и через нее пробросить определение персистентности, порадовав читателей рядом лемм и теорем и бесконечными (в буквальном смысле) коммутативными диаграммами.
Практическая часть статьи заключалась в том, что я показала, как с помощью этих гомологий отличать осмысленные тексты от текстов с перемешанными словами. А именно, я обучила 50 Марковских цепей на текстах, написанных людьми и 50 - на текстах с теми же наборами слов, но перемешанными. Затем по каждой Марковской цепи посчитала размерности своих групп гомологий (самых-самых простых, которые соответствуют количеству компонент связности прокси-графа на разных порогах) и получила 100 векторов с признаками. Затем на 90 примерах обучила лог.регрессию, и она "очень хорошо" предсказала по оставшимся 10 примерам, построены ли они по текстам, написанным человеком, либо по текстам с перемешанными словами.
Это "очень хорошо" в статье было расписано словами "с точностью от 96% до 100%", которые я, спустя пять лет, уже совсем не понимаю. Как на множестве из 10 примеров в принципе могла быть достигнута точность, не кратная 10%? Может быть, это усреднение по нескольким запускам? Но откуда тогда взялись 100%? Это точность на трейне? Никто уже не ответит на эти вопросы. Как бы то ни было, мой метод побеждал Bag of Words, который по определению не мог отличить текст с перемешанными словами от связного текста, что в тот момент принесло мне достаточно удовлетворения для того, чтобы опубликоваться.
В общем, в то время у меня было слабое представление о том, как надо ставить и описывать эксперименты для статей по машинному обучению, поэтому практическая часть получилась такой невнятной. Не повторяйте моих ошибок и всегда описывайте результаты в статьях как можно более точно и внятно, чтобы потом сами не забыть, что они означают. А лучше всего найдите хорошего научного руководителя, который будет целенаправленно учить вас писать хорошие статьи.
Тем не менее, какой бы ни была спорной эта статья, она стала одним из моих первых шагов к публикациям в области машинного обучения (раз речь про ML, я не учитываю свои изыски в элементарной математике и в чистой алгебраической топологии). Так сказатб, эта статья стала той самой непонятной прыгающей фигней из начала видео про Boston Dynamics, которая выглядела как техноересь, но потом дала начало чему-то большему.
#объяснения_статей
Все началось с моей старой, совсем неказистой статьи https://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ista&paperid=225 (годов 2018-2019), которую я написала в аспирантуре с небольшой помощью друга (соавтора) и научника. По всей видимости, эти два человека - единственные, кто прочитал ее целиком (рецензирование в журнале Интеллектуальные системы, мягко говоря, хромает), поэтому я не уверена ни в том, что там нет ошибок, ни в том, что это не велосипед.
Теоретическая часть статьи (сейчас будет скриммер в виде мат.терминов) заключалась в том, что я определила персистентные гомологии (условно) "на Марковских цепях" через прокси-конструкцию - неориентированный граф, вершины которого совпадают с состояниями Марковской цепи, а вес ребра между двумя состояниями соответствует сумме вероятностей перехода из первого во второе и из второго в первое. На таком графе уже можно ввести фильтрацию и через нее пробросить определение персистентности, порадовав читателей рядом лемм и теорем и бесконечными (в буквальном смысле) коммутативными диаграммами.
Практическая часть статьи заключалась в том, что я показала, как с помощью этих гомологий отличать осмысленные тексты от текстов с перемешанными словами. А именно, я обучила 50 Марковских цепей на текстах, написанных людьми и 50 - на текстах с теми же наборами слов, но перемешанными. Затем по каждой Марковской цепи посчитала размерности своих групп гомологий (самых-самых простых, которые соответствуют количеству компонент связности прокси-графа на разных порогах) и получила 100 векторов с признаками. Затем на 90 примерах обучила лог.регрессию, и она "очень хорошо" предсказала по оставшимся 10 примерам, построены ли они по текстам, написанным человеком, либо по текстам с перемешанными словами.
Это "очень хорошо" в статье было расписано словами "с точностью от 96% до 100%", которые я, спустя пять лет, уже совсем не понимаю. Как на множестве из 10 примеров в принципе могла быть достигнута точность, не кратная 10%? Может быть, это усреднение по нескольким запускам? Но откуда тогда взялись 100%? Это точность на трейне? Никто уже не ответит на эти вопросы. Как бы то ни было, мой метод побеждал Bag of Words, который по определению не мог отличить текст с перемешанными словами от связного текста, что в тот момент принесло мне достаточно удовлетворения для того, чтобы опубликоваться.
В общем, в то время у меня было слабое представление о том, как надо ставить и описывать эксперименты для статей по машинному обучению, поэтому практическая часть получилась такой невнятной. Не повторяйте моих ошибок и всегда описывайте результаты в статьях как можно более точно и внятно, чтобы потом сами не забыть, что они означают. А лучше всего найдите хорошего научного руководителя, который будет целенаправленно учить вас писать хорошие статьи.
Тем не менее, какой бы ни была спорной эта статья, она стала одним из моих первых шагов к публикациям в области машинного обучения (раз речь про ML, я не учитываю свои изыски в элементарной математике и в чистой алгебраической топологии). Так сказатб, эта статья стала той самой непонятной прыгающей фигней из начала видео про Boston Dynamics, которая выглядела как техноересь, но потом дала начало чему-то большему.
#объяснения_статей
👍25🔥7
Про какую статью написать дальше?
1. Отвергнутая с NeurIPS TDA Workshop мини-статья про TDA+BERT - https://openreview.net/forum?id=KaPw8VdbNr4 (2020). 2. Принятая на EMNLP статья побольше - https://aclanthology.org/2021.emnlp-main.50/ (2021).
1. Отвергнутая с NeurIPS TDA Workshop мини-статья про TDA+BERT - https://openreview.net/forum?id=KaPw8VdbNr4 (2020). 2. Принятая на EMNLP статья побольше - https://aclanthology.org/2021.emnlp-main.50/ (2021).
Anonymous Poll
57%
1 - проследить хронологический порядок развития мысли о применении TDA к языковым моделям
21%
2 - сразу перейти к более успешной статье с хорошими экспериментами и цветными картинками
22%
Не знаю
1%
Ни про какую
В начале 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
#объяснения_статей #о_себе
Результатом стала работа того же 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
#объяснения_статей #о_себе
openreview.net
Betti numbers of attention graphs is all you really need
We apply methods of topological analysis to the attention graphs, calculated on the attention heads of the BERT model
🔥19👍2❤1
Естественно, мы с коллегами далеко не единственные кто интересуется свойствами матриц/графов внимания в трансформерах и пишет про это, хотя и являемся (насколько мне известно) первыми, кто начал изучать их топологию и графовые свойства в контексте задач обработки естественного языка.
Вот две самых известных статьи про паттерны в матрицах внимания BERT, в которых матрицы внимания были разделены на разные типы, и была изучена роль этих типов:
https://aclanthology.org/W19-4828/
https://aclanthology.org/D19-1445/
Эти статьи были одним из источников вдохновения для нашей следующей работы, которая уже попала на EMNLP в 2021 году, и в которой не только рассматривалась более продвинутая топология матриц внимания, но и их похожесть на паттерны из этих статей.
А ниже я репостну инфу про другую линейку работ, которая посвящена интересным свойствам матриц внимания в трансформерах для компьютерного зрения. Как всегда, при работе с картинками все оказывается намного более наглядным...
Вот две самых известных статьи про паттерны в матрицах внимания BERT, в которых матрицы внимания были разделены на разные типы, и была изучена роль этих типов:
https://aclanthology.org/W19-4828/
https://aclanthology.org/D19-1445/
Эти статьи были одним из источников вдохновения для нашей следующей работы, которая уже попала на EMNLP в 2021 году, и в которой не только рассматривалась более продвинутая топология матриц внимания, но и их похожесть на паттерны из этих статей.
А ниже я репостну инфу про другую линейку работ, которая посвящена интересным свойствам матриц внимания в трансформерах для компьютерного зрения. Как всегда, при работе с картинками все оказывается намного более наглядным...
ACL Anthology
What Does BERT Look at? An Analysis of BERT’s Attention
Kevin Clark, Urvashi Khandelwal, Omer Levy, Christopher D. Manning. Proceedings of the 2019 ACL Workshop BlackboxNLP: Analyzing and Interpreting Neural Networks for NLP. 2019.
👍9
Forwarded from DLStories
Нашла еще один интересный подход к сегментации изображений: с помощью разбиения графа self-attention карты трансформера.
В чем идея:
Берем vision transformer, обученный на картинках в self-supervised режиме. Т.е. без какой-либо обучающей разметки. Смотрим на карты его self-attention. Оказывается, что на этих картах становтся подсвечены контуры объектов (см. 1 рис). Причем такое наблюдается только для трансформеров, обученных в self-supervised режиме: ни для supervised трансформеров, ни для CNN такое не работает.
Одними из первых это свойство заметили ребята из FAIR (статья). Они пошли дальше: взяли эти self-attention карты, обучили на них KNN и получили качество 78.3% top-1 на ImageNet.
Но вернемся к сегментации. Другие ребята придумали, как сделать сегментацию на основе этого свойства. Идея простая: берем элементы self-attention карты трансформера и строим на них граф. Ребро между двумя векторами будет равно 1, если косинусное расстояние между ними больше заданного порога, и eps, если меньше порога. На таким графе решаем задачу разбиения графа (normalized cut). Так элементы карты аттеншена, соответствующие объекту, будут отделены от элементов, соответствующих фону.
Последний шаг — применяем какой-нибудь алгоритм edge refinement (например, стандартный CRF), и получаем неплохую карту сегментации объекта на картинке.
Недостаток такого подхода — он умеет сегментировать только один объект на картинку. Поэтому ребята из FAIR (уже другие) предложили, как улучшить идею. Все просто: находим карту одного объекта. Далее накладываем на патчи self-аттэншена этого объекта маску, и снова запускаем алгоритм. И так несколько раз.
Это позволяет находить на одной картинке сразу несколько объектов (рис. 2).
Вот такая идея. Вообще, attention maps разных трансформеров часто обладают подобными свойствами, и на основе информации из них можно понимать, как "думает" моделька и решать разные downstream задачи. Интересно их исследовать)
В чем идея:
Берем vision transformer, обученный на картинках в self-supervised режиме. Т.е. без какой-либо обучающей разметки. Смотрим на карты его self-attention. Оказывается, что на этих картах становтся подсвечены контуры объектов (см. 1 рис). Причем такое наблюдается только для трансформеров, обученных в self-supervised режиме: ни для supervised трансформеров, ни для CNN такое не работает.
Одними из первых это свойство заметили ребята из FAIR (статья). Они пошли дальше: взяли эти self-attention карты, обучили на них KNN и получили качество 78.3% top-1 на ImageNet.
Но вернемся к сегментации. Другие ребята придумали, как сделать сегментацию на основе этого свойства. Идея простая: берем элементы self-attention карты трансформера и строим на них граф. Ребро между двумя векторами будет равно 1, если косинусное расстояние между ними больше заданного порога, и eps, если меньше порога. На таким графе решаем задачу разбиения графа (normalized cut). Так элементы карты аттеншена, соответствующие объекту, будут отделены от элементов, соответствующих фону.
Последний шаг — применяем какой-нибудь алгоритм edge refinement (например, стандартный CRF), и получаем неплохую карту сегментации объекта на картинке.
Недостаток такого подхода — он умеет сегментировать только один объект на картинку. Поэтому ребята из FAIR (уже другие) предложили, как улучшить идею. Все просто: находим карту одного объекта. Далее накладываем на патчи self-аттэншена этого объекта маску, и снова запускаем алгоритм. И так несколько раз.
Это позволяет находить на одной картинке сразу несколько объектов (рис. 2).
Вот такая идея. Вообще, attention maps разных трансформеров часто обладают подобными свойствами, и на основе информации из них можно понимать, как "думает" моделька и решать разные downstream задачи. Интересно их исследовать)
👏4❤2👍2
Есть такая проблема. В канале есть процент людей, которые не имеют никакого опыта работы с научными статьями по машинному (глубокому) обучению. А из-за того, что я выкладываю тут порой не самые простые статьи по этой теме, эти статьи вызывают эффект запугивания. Т.е. люди начинают думать, что область сверх сложная, и они не способны в ней ничего понять.
Например, одна подруга сказала, что ей было бы интересно поизучать ML, но у нее вряд ли получится, потому что чтобы хоть что-то понять из ML надо, видимо, десять лет учить математику. Я, конечно, удивилась, когда это услышала. 😳 Оказалось, впечатление такое сложилось от общения со мной и чтения того, что я в этом канале настрочила. ✍️
В результате появилась мысль - может, собрать набор простых научных (или даже блоговых?) статей по Deep Learning, с которых могут начать те, кто раньше статей не читал. Потом добавить requirements, которые нужны для их понимания и поместить в закреп, так сказать, чтобы был противовес сложным и непонятным статьям, которые тут время от времени спавнятся.
Если у кого есть идеи, какие статьи включить в такой список рекомендаций - может, какие-нибудь обзорные или статьи-туториалы, кидайте в комментарии.
Например, одна подруга сказала, что ей было бы интересно поизучать ML, но у нее вряд ли получится, потому что чтобы хоть что-то понять из ML надо, видимо, десять лет учить математику. Я, конечно, удивилась, когда это услышала. 😳 Оказалось, впечатление такое сложилось от общения со мной и чтения того, что я в этом канале настрочила. ✍️
В результате появилась мысль - может, собрать набор простых научных (или даже блоговых?) статей по Deep Learning, с которых могут начать те, кто раньше статей не читал. Потом добавить requirements, которые нужны для их понимания и поместить в закреп, так сказать, чтобы был противовес сложным и непонятным статьям, которые тут время от времени спавнятся.
Если у кого есть идеи, какие статьи включить в такой список рекомендаций - может, какие-нибудь обзорные или статьи-туториалы, кидайте в комментарии.
❤63🔥17👍8
Спасибо за ссылки на учебные материалы. Постараюсь за разумное время их глянуть и может быть добавлю в список requirements к понимаю статей. Но всё-таки хочется сделать и список именно научных статей , достаточно простых для того, чтобы их можно было читать перед тем, как переходить к сложным работам по deep learning.
Т.е. чтобы был roadmap:
Учебники/курсы -> простые статьи (по категориям) -> сложные статьи (по категориям)
Т.е. чтобы был roadmap:
Учебники/курсы -> простые статьи (по категориям) -> сложные статьи (по категориям)
👍10🔥4
Решила сгенерировать в честь праздника валентинки с техножрецами с помощью openjorney и anime-anything. Видно, что в обучающей выборке нейросетей было очень мало Адептус механикус, но модельки сделали что могли.
🔥11❤6
Artificial Text Detection via Examining the Topology of Attention Maps ( https://aclanthology.org/2021.emnlp-main.50/ ) - наша с коллегами статья на EMNLP 2021. К статье прилагается видео доклада (зеленая кнопка на сайте).
Здесь уже появились новые соавторы, которые предложили новые идеи и поставили существенно больше экспериментов, чем получалось у меня. Особенно отмечу, что мне было очень интересно обсуждать с https://scholar.google.com/citations?user=G0lCb3wAAAAJ&hl=en&oi=ao то, как выстраивается логика статей для прикладных core A* конференций. Эта логика была для меня непривычной, т.к. после мехмата хочется писать статьи совсем в другом стиле.
В этой статье рассматривается задача детекции текста, сгенерированного моделями машинного обучения GPT-2 и GROVER. Далее для извлечения топологических признаков снова бралась модель BERT, только на этот раз предобученная лишь на угадывании пропущенных слов (Masked LM), без дообучения на данной задаче. Через модель прогонялись примеры текстов (сгенерированных и человеческих), и каждому примеру сопоставлялись графы внимания, извлеченные из модели. В этот раз признаки у графов считались более сложные и разнообразные. Во-первых, кроме чисел Бетти "отфильтрованных" по порогам графов, считались и другие графовые признаки, такие, как количество ориентированых циклов и средняя степень вершины. Во-вторых, считалась степень "похожести" матриц внимания на матрицы-шаблоны из статьи https://aclanthology.org/D19-1445/ (см. Figure 1). В-третьих, бралась такая версия графов внимания, где убиралась ориентация, но не убирались веса, и по ним считались довольно сложные TDA-объекты, называемые баркодами. Очень короткое введение в то, как строятся эти объекты, можно посмотреть здесь: https://www.youtube.com/watch?v=2PSqWBIrn90&t=0s&ab_channel=MatthewWright . От баркодов, в свою очередь, считались признаки, такие, как сумма "баров" и другие. Далее все посчитанные признаки всех трех видов объединялись, и по ним производилась классификация.
Оказалось, что классификация на этих признаках (извлеченных из BERT с предобученными замороженными весами) с помощью логистической регрессии давала результат +- наравне с полностью дообученной BERT. Если же дообучать один слой-классификатор над выходом предобученного, но замороженного BERT, результат оказывается и вовсе хуже, чем обучение на наших признаках.
Особенно же интересно оказалось то, что классификатор над нашими признаками имеет бОльшую робастность по отношению к увеличению размера генерирующей модели, чем сам BERT. Другими словами, если мы, например, обучили классификатор на наших признаках и сам BERT (отдельно, нормальным способом) детектить тексты, сгенерированные моделью GPT-2-small, а затем пробуем детектировать генерацию GPT-2-medium, наши признаки дают меньшее падение качества на этой новой задаче, чем классификация по выходу самой модели BERT, даже полностью обученной. Это можно видеть на Figure 2. В наше время, когда появилось много скрытых генеративных моделей, к которым у нас нет доступа, такая робастность - очень актуальное свойство.
Другой интересный аспект - на некоторых головах модели BERT графы внимания имеют явное отличие в своей форме на "естественных" и сгенерированных текстах. Говоря упрощенно, в среднем веса матриц внимания BERT, "смотрящей" на искуcственно сгенерированный текст, более "размазаны", а веса матриц внимания модели, "смотрящей" на естественный текст, более "сконцентрированы" на структуре предложения. Впрочем, этот эффект наблюдается не на всех головах.
Один из исследователей, который прочитал данную работу, сделал замечание о том, что нужно попробовать извлекать признаки из модели RoBERTa и сравнивать результат тоже с ней, так как на тот момент она была SoTA в задаче детекции сгенерированных текстов, но мы к тому времени уже занялись новой статьей. Впрочем, если верить туториалу https://artificial-text-detection.github.io/ от бывших коллег и их новых соавторов, RoBERTa все еще популярна для решения данной задачи.
#объяснения_статей #детекция_искусственных_текстов
Здесь уже появились новые соавторы, которые предложили новые идеи и поставили существенно больше экспериментов, чем получалось у меня. Особенно отмечу, что мне было очень интересно обсуждать с https://scholar.google.com/citations?user=G0lCb3wAAAAJ&hl=en&oi=ao то, как выстраивается логика статей для прикладных core A* конференций. Эта логика была для меня непривычной, т.к. после мехмата хочется писать статьи совсем в другом стиле.
В этой статье рассматривается задача детекции текста, сгенерированного моделями машинного обучения GPT-2 и GROVER. Далее для извлечения топологических признаков снова бралась модель BERT, только на этот раз предобученная лишь на угадывании пропущенных слов (Masked LM), без дообучения на данной задаче. Через модель прогонялись примеры текстов (сгенерированных и человеческих), и каждому примеру сопоставлялись графы внимания, извлеченные из модели. В этот раз признаки у графов считались более сложные и разнообразные. Во-первых, кроме чисел Бетти "отфильтрованных" по порогам графов, считались и другие графовые признаки, такие, как количество ориентированых циклов и средняя степень вершины. Во-вторых, считалась степень "похожести" матриц внимания на матрицы-шаблоны из статьи https://aclanthology.org/D19-1445/ (см. Figure 1). В-третьих, бралась такая версия графов внимания, где убиралась ориентация, но не убирались веса, и по ним считались довольно сложные TDA-объекты, называемые баркодами. Очень короткое введение в то, как строятся эти объекты, можно посмотреть здесь: https://www.youtube.com/watch?v=2PSqWBIrn90&t=0s&ab_channel=MatthewWright . От баркодов, в свою очередь, считались признаки, такие, как сумма "баров" и другие. Далее все посчитанные признаки всех трех видов объединялись, и по ним производилась классификация.
Оказалось, что классификация на этих признаках (извлеченных из BERT с предобученными замороженными весами) с помощью логистической регрессии давала результат +- наравне с полностью дообученной BERT. Если же дообучать один слой-классификатор над выходом предобученного, но замороженного BERT, результат оказывается и вовсе хуже, чем обучение на наших признаках.
Особенно же интересно оказалось то, что классификатор над нашими признаками имеет бОльшую робастность по отношению к увеличению размера генерирующей модели, чем сам BERT. Другими словами, если мы, например, обучили классификатор на наших признаках и сам BERT (отдельно, нормальным способом) детектить тексты, сгенерированные моделью GPT-2-small, а затем пробуем детектировать генерацию GPT-2-medium, наши признаки дают меньшее падение качества на этой новой задаче, чем классификация по выходу самой модели BERT, даже полностью обученной. Это можно видеть на Figure 2. В наше время, когда появилось много скрытых генеративных моделей, к которым у нас нет доступа, такая робастность - очень актуальное свойство.
Другой интересный аспект - на некоторых головах модели BERT графы внимания имеют явное отличие в своей форме на "естественных" и сгенерированных текстах. Говоря упрощенно, в среднем веса матриц внимания BERT, "смотрящей" на искуcственно сгенерированный текст, более "размазаны", а веса матриц внимания модели, "смотрящей" на естественный текст, более "сконцентрированы" на структуре предложения. Впрочем, этот эффект наблюдается не на всех головах.
Один из исследователей, который прочитал данную работу, сделал замечание о том, что нужно попробовать извлекать признаки из модели RoBERTa и сравнивать результат тоже с ней, так как на тот момент она была SoTA в задаче детекции сгенерированных текстов, но мы к тому времени уже занялись новой статьей. Впрочем, если верить туториалу https://artificial-text-detection.github.io/ от бывших коллег и их новых соавторов, RoBERTa все еще популярна для решения данной задачи.
#объяснения_статей #детекция_искусственных_текстов
ACL Anthology
Artificial Text Detection via Examining the Topology of Attention Maps
Laida Kushnareva, Daniil Cherniavskii, Vladislav Mikhailov, Ekaterina Artemova, Serguei Barannikov, Alexander Bernstein, Irina Piontkovskaya, Dmitri Piontkovski, Evgeny Burnaev. Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing.…
👍9🔥4❤1
Forwarded from Авва
Возьмем какое-то количество одинаковых квадратов, скажем пять. Предположим, мы хотим упаковать их вместе внутри друого большого квадрата - насколько большим он обязан быть? Например, мы можем взять большой квадрат 3x3, в котором умещаются 9 маленьких квадратов. Пять наших поставить, а четыре остаются пустыми. Тогда у большого квадрата длина стороны выходит 3 (считая в размерах маленьких квадратиков).
Но оказывается, можно поставить четыре маленьких по углам близко друг к другу, но не касаясь, а пятый повернуть на 45 градусов и в середину между ними. Так они уложатся в большой квадрат с длиной стороны примерно 2.7, это лучше, чем 3. Возникает вопрос: насколько можно уменьшить большой квадрат, запаковав маленькие наиболее эффективно? И такой вопрос задается для каждого числа маленьких квадратов, необязательно пяти.
Математик Эрик Фридман исследует этот вопрос и опубликовал набор лучших известных результатов для разных n (n это число маленьких квадратов). Для некоторых написано "proved", это значит строго доказано, для других "found" - это лучшее, что найдено, но не доказано, что нельзя еще лучше. Мне очень нравится результат для n=17 своей хаотичностью и асимметрией. В Твиттере кто-то написал "бог умер и его убил лучший способ упаковать 17 квадратиков в большой квадрат".
Сравните его с красивой симметрией n=26.
Спросите себя: я человек-17 или человек-26?
Но оказывается, можно поставить четыре маленьких по углам близко друг к другу, но не касаясь, а пятый повернуть на 45 градусов и в середину между ними. Так они уложатся в большой квадрат с длиной стороны примерно 2.7, это лучше, чем 3. Возникает вопрос: насколько можно уменьшить большой квадрат, запаковав маленькие наиболее эффективно? И такой вопрос задается для каждого числа маленьких квадратов, необязательно пяти.
Математик Эрик Фридман исследует этот вопрос и опубликовал набор лучших известных результатов для разных n (n это число маленьких квадратов). Для некоторых написано "proved", это значит строго доказано, для других "found" - это лучшее, что найдено, но не доказано, что нельзя еще лучше. Мне очень нравится результат для n=17 своей хаотичностью и асимметрией. В Твиттере кто-то написал "бог умер и его убил лучший способ упаковать 17 квадратиков в большой квадрат".
Сравните его с красивой симметрией n=26.
Спросите себя: я человек-17 или человек-26?
😁7🔥3🤯3👍1