Нейросетевой классификатор
Х Т
Бинарная классификация — это как выбирать, что заказывать на ужин: пицца или новый пост от жокея на лопате. У тебя есть два варианта, и тебе нужно решить, что тебе больше хочется в данный момент. Но вместо еды мы работаем с данными! В общем, бинарная классификация — это просто веселая игра в выборе между двумя вариантами.
Начнем с погружения в программный код. Вот небольшой туториал от самого Яши и один из ранних постов, где я уже делал похожие манипуляции с кодом на Python. Но если до этого мы трогали эмбеддинги (в статье все написано про это страшное слово), то теперь трогаем новую фичу – классификатор, хотя сам код претерпит минимальные изменения.
Только что мы описали инструмент, а теперь вернемся к подопытным. Если в прошлый раз у нас был Семен Уралов блогер на 85к аудитории, то сегодня предлагаю потрогать АртЖокея аноним на 55к аудитории. Трогать давайте его тоже будем на примерно ту же тему: как он относится к России.
И для начала снова погрузимся в нюансы работы нейронной сети. Текущий классификатор выдает нам не только наиболее вероятный ответ, но и вероятность для всех оставшихся. То есть, на сколько он уверен в текущем ответе. И существует два подхода. Мы можем посчитать среднюю вероятность на тот или иной ответ, а можем сначала выбрать наиболее вероятный, после чего посчитать для каждого случая количество этих наиболее вероятных ответов. И чем отличаются данные подходы? Давайте проиллюстрируем!

Видим, что посты 1 и 2 скорее относятся к синему классу, а пост 3 очень оранжевый! Теперь давайте посчитаем этого блогера в целом. Если мы считаем по среднему, то у нас из-за очень оранжевого одного поста получится перекос в сторону оранжевого класса, и блогер у нас получается оранжевый. А если мы считаем сначала класс для поста, а потом только считаем сколько постов какого цвета, то получается, что 2 поста синих и один оранжевый, а блогер теперь у нас более синий. Но, к счастью, мы не ограничены в вычислительных мощностях, поэтому сначала используем один метод, а потом вымоем руки и забабахаем второй.
Переходим к самой интересной части: к разбору блогера. Я буду задавать вопросы нейронной сети, после чего мы будем получать разбиение каждого поста на классы по этому вопросу. Классы у нас будут всегда одинаковые: Россия и Украина. И давайте начнем с простых вопросов, которые мы сможем легко проверить: «События в какой стране освещает автор».
Наша нейросеть считает, если по среднему, то на 0.53 блог посвящен России и на 0.47 Украине. По этому вопросу выглядит объективно, половину постов тем, а половину этим. Может по этой причине всякие анонимусы из интернета называют его «нейтральным» автором? А какой результат по количеству? На удивление близкий результат: 0.55 про Россию и 0.45 про Украину.

Давайте провалидируем работу нейронной сети и поймем, на сколько хорошо она классифицирует? Давайте посмотрим какие классы у первых 6 постов, которые вошли в нашу подборочку (напомню, что вошли не все посты, а мы отбирали их по алгоритму из предыдущего поста)
Украина – удар БПЛА по Киеву
Россия – удар БПЛА по Москве
Россия – обстрел на Шебекино
Украина – вангование даты легендарного летнего контрнаступа Украины
Россия – много про Энергодар, так что разумно, что все же маятник качнулся в сторону России, так как Энергодар – русский город, как и Херсон, Бердянск и Мелитополь, которые тоже разбираются в посте
Украина – подрыв Каховской ГЭС, теракт Украины, очевидно почему нейросеть сделала такой выбор, с учетом того, что мы ее заставляем выбрать один из вариантов, а не оба.
При этом невооруженным глазом видно, что разбиение как раз 50/50 идет, как и предсказывала нейронная сеть. Именно по этой причине брал 6 постов, а не больше, только ради красивых циферок, но я проверил 10 первых постов и не увидел никаких проблем в работе нейронной сети. Думаю, всем очевидно, что инструмент у нас точный и вполне откалиброванный.
Теперь приступаем ко второму вопросу, после которого я испытал гордость за Россию: Какую из сторон автор считает лучше подготовленной для военных действий. Вот такой результат мы имеем: За Россию 85% и 89% постов соответственно.

И в целом это можно объяснить: автор часто пишет, как ВСУ отступают на более подготовленные рубежи, как они ожидают поставок боеприпасов, про потери HIMARS, но при этом не забывает освещать и потери со стороны РФ. В целом, вполне выглядит нейтрально, так как признает очевидное превосходство ВС РФ на поле боя.
С военной точки зрения разобрались, теперь давайте с эмоциональной точки зрения посмотрим на блог, поэтому зададим вопрос: «Какой стороне автор больше сопереживает». И тут в целом понятны результаты, так как очень часта позиция, что жертва в данной ситуации Украина, а жертве сопереживать проще. Оба варианта подсчета дают почти 100% (98% и 99% постов) сопереживания.

Но как-то меня не очень радуют такие цифры. Неужели не было постов про Крокус, про Белгород, про Шебекино, где можно и сопереживать РФ? Алгоритмы насчитали всего 4 поста, где было хоть какое-то сопереживание. Маловато! Именно по этой причине зададим нейросетке провокационный вопрос: «Для какой стороны автор желает поражения». И какие результаты мы имеем? 85% постов сквозят желанием проигрыша РФ.

Как из душа окатило! Стало вдруг совестливо и гадливо на душе. Тут уже никакой «нейтральностью» не пахнет. Если я с сопереживанием украинской стороне готов был мириться, то желание поражения РФ – уже слишком. Да что этот блогер себе позволяет!

Давайте уже узнаем окончательно предпочтения данного товарища последним вопросом: «Какая сторона для автора является чистым и незамутненным злом». И что мы видим? 90 и 96% голосов отданы за Россию…

Это что получается, мы злодеи?

Не пойму, куда же делось «нейтральное» отношение? Судя по процентам, даже пост про удар из HIMARS по Севастополю автором был в итоге вывернут в сторону того, что РФ сами виноваты в гибели стольких гражданских? Проверим? Так и выходит:
Сегодня это привело к массовым жертвам, когда одна из ракет была сбита над пляжем. Интересно, что ВС РФ не смогли отследить запуски ракет, во всяком случае, такой вывод можно сделать из того, что в Севастополе не объявлялась тревога.
Давайте сравним с постом про Одесский пляж? Может, там Украина будет виновата, что не объявила тревогу?
Видео удара по Одессе. Вчера около 18 часов вечера ВС РФ нанесли удар кассетным Искандером по набережной города.
Никаких адекватных объяснений этому нет, там обычная набережная с отелями, можно изучить это по карте. Даже если вдруг поверить в версию, что в отелях «жили французские наемники», то для чего нужен был удар именно кассетной БЧ? Логично было бы стрелять осколочно-фугасной ракетой.
Ой, как-то неудобно получилось. Снова титул «чистое и незамутненное зло» в этом посте уверенно удерживает РФ. Если человека можно обмануть, дозировано выдавая информацию и пряча свое реальное отношение к разным фактам, то нейронную сеть уже не получается. Слишком хорошо она ищет скрытые связи, превосходя способности человека в анализе больших объемов информации.
А что же сам автор думает о своей «нейтральности»? А внезапно даже есть ответ на этот вопрос при чем за авторством самого АртЖокея.

Вывод: думайте, что читаете. Делайте выводы. Опирайтесь в своих суждениях на факты, а не эмоциональные манипуляции разных авторов. На просторах сети еще много АртЖокеев, которые, с одной стороны, заявляют о превосходстве РФ на поле боя, а сами на самом деле спят и видят, как РФ разваливается на куски. Для которых Россия – это зло во плоти. Не дайте себя обмануть!
Всем чмоке! Увидимся в чЯтике!