Расскажите, как вообще устроен автоматический поиск плагиата?
Дмитрий: Сегодня для оценки оригинальности научных статей, диссертаций и других текстов широко используются цифровые алгоритмы. Их основные задачи: найти скопированные участки в документе, определить источник и оценить объем плагиата. Чтобы протестировать новые алгоритмы поиска плагиата и понять, какие из них лучше работают, используют специальные базы данных и системы оценки.
Например, база PAN Summary составлена из документов-источников и документов-плагиаторов, где источники целиком пересказаны в нескольких абзацах. При тестировании алгоритмов в этой базе система оценки считает, насколько точно алгоритм определил границы совпадающих частей в обоих документах.
Как вы выяснили, что с этой оценкой что-то не так?
Антон: Перед тем, как заняться оценкой алгоритмов плагиата, мы много работали над самими алгоритмами. Все началось с хакатона Hack the Plagiarizer!, который проходил в ИТМО в 2017 году на конференции AINL. Организаторы предложили участникам в двухдневный срок решить задачу поиска точных границ заимствований. Это когда дана пара документов и известно, что один документ что-то позаимствовал из второго. Нужно найти все такие пары коротких текстов (предложений или абзацев) из этих документов, которые перефразируют друг друга.
На хакатоне нам удалось быстро разработать рабочий алгоритм и, вдохновленные хорошим результатом, мы решили поучаствовать в соревновании на конференции «Диалог», где были похожие задачи. На этом соревновании мы скоро также достигли лучших результатов, правда, пришлось немного доработать алгоритм под большие объемы данных. В итоге мы опубликовали статью на Диалог-2018.
Мы решили не останавливаться на этом и попробовать силы в «высшей лиге» на популярных англоязычных соревнованиях, которые проводятся с 2013 года. Они состоят из нескольких наборов данных, отличающихся в основном размером и сложностью заимствований. Проведя первые эксперименты, мы заметили, что на самом сложном наборе у нас какие-то слишком хорошие результаты, но не придали этому значения: в конце концов, может, у нас просто очень хороший алгоритм. Мы решили, что надо написать еще одну статью. Но, как это часто бывает, самые интересные открытия происходят прямо перед дедлайном публикации. Так было и у нас: когда уже был готов алгоритм, подсчитаны все результаты и наполовину написан текст статьи, мы с Димой обнаружили, что это не наш алгоритм такой замечательный, а метрики для его оценки не очень «честные», причем именно для самых сложных наборов! Любой желающий ранее этим мог воспользоваться для достижения хорошего качества.
За оставшиеся 48 часов до дедлайна мы придумали модификацию метрик, посчитали качество основных state-of-the-art алгоритмов на нашей модификации метрик, проверив, что они не воспользовались недостатками предыдущих метрик, и заново переписали текст статьи. За два дня мы поспали в общей сложности часов 5. После того, как отправили текст на конференцию ACL и хорошо выспались, решили перепроверить все выкладки – ошибок не нашли. Правда, переложить в текст все, что придумали, мы физически не успели, поэтому часть идей так и осталась неопубликованной.
В чем все-таки была проблема и как вы ее исправили?
Дмитрий: Оказалось, что оценка эффективности работы алгоритма может быть завышена из-за особенности плагиата-пересказа: объем скопированной части источника всегда будет намного больше объема скопированной части в документе-плагиатора. Чтобы исправить это искажение, мы модифицировали формулы для расчета оценки. Успешность изменений проверили на алгоритмах с разной эффективностью, и, в отличие от стандартной версии, модифицированная система смогла отличить плохие алгоритмы от хороших.
Наша модификация находится в открытом доступе на портале GitHub, ее можно свободно использовать. Она очень похожа на оригинальную систему для облегчения перехода со стандартной оценки на нашу. Мы надеемся, что это поможет лучше оценивать работу алгоритмов по поиску плагиата и выбирать самые эффективные из них.
Есть ли дальнейшие планы по развитию работы в этом направлении?
Антон: Для начала хотелось бы описать и опубликовать более подробно все, что мы придумали за эти два дня. В частности, описание метрик с микроусреднением, которые полезны, если наборы данных состоят из несбалансированных по длине документов. Также хотелось бы оценить больше алгоритмов обнаружения плагиата с помощью нашей метрики, чтобы понять, не эксплуатировали ли их авторы, явно или неявно, недостатки старых метрик.
В целом же, сейчас мне хочется продолжать работу в более широких направлениях под названием Interpretable Machine learning и Natural Language Processing. Нейронные сети для исследователя, особенно для исследователя в прикладных науках, – это до сих пор «черные ящики», в которые скорее верят, чем понимают, за счет каких модификаций достигаются улучшения. В некоторых отраслях, например, в банковском деле или в медицине, это до сих пор является серьезным препятствием на пути внедрения таких моделей в «боевое» использование.
Еще более глобальная проблема в науке под названием replication crisis («кризис воспроизводимости») также отчасти вызвана усложнением понимания используемых моделей машинного обучения, ведь с усложнением моделей и с уменьшением понимания принципов их работы становится все сложнее воспроизвести сложную нейросетевую архитектуру по ее описанию в статье, особенно если автор почему-то решил не делиться программным кодом для экспериментов.
Однако при наличии достаточно общих и надежных методов, интерпретация предсказаний нейронных сетей станет таким же доступным инструментом для исследователя, как, например, статистические тесты проверки значимости. Работа над такими методами, в частности, для задач, связанных с текстами на естественных языках, уже ведется, и во время обучения в аспирантуре мне бы хотелось принять в ней активное участие.