НЛП SBert (Берт) для сравнения ответов СТС

Aug 20 2020

Я искал хороший способ автоматизировать оценку коротких ответов. По сути, учитель дает тест с такими вопросами, как:

Вопрос: почему Колумб отплыл на запад, чтобы найти Азию?

Ответ: чтобы он смог найти новый торговый путь в Азию через океан. Три цели испанцев в Северной и Южной Америке заключались в желании разбогатеть, заявить права на как можно большую территорию и как можно больше колонизировать.

Таким образом, у нас есть правильный ответ, и мы хотели бы сравнить его с ответом учащихся и выставить оценку, основанную на сходстве. Я знаю, что это ненадежная замена человеческому оцениванию, но для примера.

Я наткнулся на этот документ и кодовую базу: https://arxiv.org/pdf/1908.10084.pdf

https://github.com/UKPLab/sentence-transformers

Это кажется идеальным методом для решения этой проблемы, но большинство примеров основаны на оценке / ранжировании семантического поиска. Я сомневаюсь, что я на правильном пути, учитывая, что я просто сравниваю два ответа, а не кластер. Кто-нибудь с большим опытом, возможно, может дать совет?

Ответы

3 20roso Aug 20 2020 at 23:14

Я использовал сиамский берт, и могу сказать, что он неплохо справляется. Однако проблема в том, что данные, которые были точно настроены поверх Берта, не обязательно полностью представляют то же семантическое расстояние, что и в случае ответов между истинным и ответом ученика. Например, если есть вопрос о технике, где небольшое изменение слова может означать совершенно другое; SBert все равно нашел бы их очень похожими, потому что они связаны с темой. Если только он не настроен до мелочей.

Более того, вы не сможете интерпретировать сходство. Если студент спросит вас, почему ответ моего сверстника лучше, вы не сможете объяснить.

Мое мнение: я считаю, что вы могли бы использовать этот инструмент как способ сократить количество абсолютно непоследовательных ответов, но в какой-то момент потребуется человеческая оценка. И, возможно, использовать интерпретируемые метрики, такие как ROUGE или BLEU. Я также знаю, что эта тема очень популярна в НЛП, я не удивлюсь, если для этого есть или будет хороший готовый инструмент, но я не знаю ни одного в настоящее время.

1 20roso Aug 21 2020 at 02:30

@b_the_builder Хорошие находки! Первое кажется мне увеличением дистанции Word Mower за счет использования сходства между каждым словом. Полагаю, еще может не хватать адаптации домена. В то время как вторая ссылка, которую вы предоставили, выполняет предварительную подготовку по этой конкретной причине. В общем, какой бы метод вы ни использовали, я считаю, что вам нужно будет выбрать несколько репрезентативных предложений с жестким соответствием и посмотреть, как они работают на них, после предварительной тренировки на вашем корпусе. Если хочешь быть уверенным. Для вдохновения, вы можете посмотреть в здесь семантических задачах подобия между предложениями.

Valentas Aug 20 2020 at 20:27

Я попробовал GPT-2 с вашей подсказкой, но мне это не удалось:

RahulRamachandran Feb 08 2021 at 16:32

Также я думаю, что он не будет рассматривать и отрицания. Сначала вы хотите установить порог правильных или частично правильных и неправильных ответов. Но это сложная задача, потому что она плохо учитывает отрицательные утверждения. например: если вы дадите два утверждения, например, Тони Старк - железный человек, а Тони Старк - не железный человек, что является чисто противоречивым утверждением, косинусное сходство скажет, что эти утверждения в чем-то похожи (даже с STS robera large, эталонной моделью), что показывает это не может использоваться для оценки ответов. Я не знаю, есть ли другие способы решить эту проблему, но это из моего опыта.