2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Как сравнить голоса участника с общим распределением голосов
Сообщение26.09.2020, 10:39 


26/09/20
4
Есть сайт, на котором участники могут голосовать за или против сообщений друг друга. Сообщения с наибольшим количеством голосов за считаются лучшими. Моя задача — создать систему, которая проверяет является ли конкретное голосование основанным на качестве содержимого. Например, не голосуют ли несколько человек намеренно за продвижение содержимого своего товарища.

Текущий план — проверять голоса с помощью статистики.

1. На входе мы имеем общее распределение голосов на платформе и распределение голосов конкретного участника.
2. Мы знаем сколько всего голосов отдал участник (например, 40) и сколько из них отдано за «потенциального коллегу» (например, 20).
3. Из общей популяции я выбираю участников, кто в общем отдал столько же голосов +/- n (например, +/-5, то есть кто голосовал от 35 до 45 раз).

Я получаю порядка 1000 «выборок», по которым я бы хотел обобщить распределение и тестовую выборку (проверяемого участника), которую необходимо сравнить с обобщенной. На этом шаге у меня проблемы. Я ожидал, что получу нормальное распределение, но на деле оказалось распределение сильно скошенное влево с длинным хвостом. Пример распределение голосов для пяти случайных участников в формате «количество голосов за одного участника: количество раз, когда отдал столько голосов за одного участника»:

- 1: 37, 2: 4
- 1: 40, 2: 2
- 1: 28, 2: 5, 3: 2
- 1: 31, 2: 5, 3: 1
- 1: 22, 2: 3, 3: 2, 4: 1, 6: 1

Среднее таких выборок будет около 1.4 с отклонением 0.8. Кажется, что идея со сравнениями средних не подойдет.

Подскажите, пожалуйста:

- Как этом случае (сильно скошенного распределения) сравнивать конкретного участником с общей популяцией?
- Возможно стоит использовать какой–то другой подход? Если да, то какой?

 Профиль  
                  
 
 Re: Как сравнить голоса участника с общим распределением голосов
Сообщение26.09.2020, 14:09 
Аватара пользователя


01/11/14
1906
Principality of Galilee
DevExpert
Я правильно Вас понимаю, что, скажем, 4-й участник (4-я строка) отдал по 1 голосу 31 разным участникам, по 2 голоса - 5 разным участникам, и три голоса - одному и тому же участнику?

 Профиль  
                  
 
 Re: Как сравнить голоса участника с общим распределением голосов
Сообщение26.09.2020, 16:16 


26/09/20
4
Да, совершенно верно!

 Профиль  
                  
 
 Re: Как сравнить голоса участника с общим распределением голосов
Сообщение27.09.2020, 11:43 


26/09/20
4
Gagarin1968 в сообщении #1484784 писал(а):
Gagarin1968
На самом деле, это лишь способ представления. У меня на руках «сырые данные» (то есть кто голосовал, за кого и когда). Можно представить их в любом виде. В вопросе данные представлены в виде частот количества голосов за уникального участника. Подскажите, пожалуйста, что думаете?

 Профиль  
                  
 
 Re: Как сравнить голоса участника с общим распределением голосов
Сообщение27.09.2020, 14:48 
Аватара пользователя


01/11/14
1906
Principality of Galilee
DevExpert
Я не думаю, что у Вас в примере неравномерность распределения вызвана преднамеренным "вбросом" голосов. Такой "вброс" легко опознать, если за совершенно невыдающийся контент начинается плюсование его автора разными пользователями. Но что важно в этом случае - в течение очень короткого интервала времени.
Есть ли у Вас техническая возможность определить такой интервал?
Здесь же, в Вашей короткой выборке могут быть какие-то иные причины, кроме "вброса" голосов, повлиявшие на скошенность влево Вашего распределения.
Есть ли такие причины? Из Вашего стартового поста сложно это понять.

 Профиль  
                  
 
 Re: Как сравнить голоса участника с общим распределением голосов
Сообщение27.09.2020, 18:36 


26/09/20
4
Несколько не верно описал задачу, извиняюсь. Распределение скошено не выбросом, а само по себе. Изначально был план взять общее распределение и конкретного подозрительное голосование («подозрительность» выявляют как–раз эвристики вроде периода между голосами, IP с которого голосуют и тд). По сути, я хотел оценивать голосование участника по z-шкале. После того, как посмотрел на реальные данные, оказалось, что в основном люди отдают один голос за одного участника и два–три за пару других (допущу, что за часто пересекающихся по интересам), то есть гистограмма голосов получается скошенной влево.

Подскажите, пожалуйста, можно ли как–то работать с подобным распределением? Есть ли другой способ подойти к задаче?

П.С. Сегодня–завтра пробую еще исследовать с помощью межквартильного размаха. Еще прочила

 Профиль  
                  
 
 Re: Как сравнить голоса участника с общим распределением голосов
Сообщение27.09.2020, 21:05 
Аватара пользователя


01/11/14
1906
Principality of Galilee
DevExpert в сообщении #1484928 писал(а):
Несколько не верно описал задачу, извиняюсь. Распределение скошено не выбросом, а само по себе
Ну да, что-то такое я и подозревал.
DevExpert в сообщении #1484928 писал(а):
можно ли как–то работать с подобным распределением?
Честно говоря, не знаю.
DevExpert в сообщении #1484928 писал(а):
Есть ли другой способ подойти к задаче?
А вот тут могу предложить идею. Её пару лет назад реализовала моя бывшая ученица. Она писала бакалавриат в Технионе, и в нём подвергла статистическому исследованию т.н. индекс Кардашьян.
Не буду вдаваться, но фишка в том, что выборка была не по авторам, а по статьям.
Вы можете делать выборку не по голосам юзеров, а непосредственно по контенту. Назначив при этом честных и квалифицированных экспертов, которые будут определять качество этого самого контента и соотносить его с количеством поданных за него голосов.
Ну, как-то так.
DevExpert в сообщении #1484928 писал(а):
Еще прочила
Это в каком смысле?

 Профиль  
                  
 
 Re: Как сравнить голоса участника с общим распределением голосов
Сообщение27.09.2020, 21:28 
Заслуженный участник


27/04/09
28128
Тут можно задуматься, а сможем ли мы отделить необоснованную кучу голосов за хороший пост от обоснованной? То есть у нас скорее всего будут ожидания, что за хорошие посты должно быть в среднем больше голосов, чем за плохие — если хорошесть определяется каким-то гуманным образом и сообщество предполагается относительно здоровым в целом (а иначе скорее всего игра и не стоит свеч). Тогда если нам нужно определить накрутку независимо от качества постов, это сделать трудновато, но и как бы и не должно быть нужным, а если всё-таки надо определить накрутку большей частью не заслуживающих того постов, то мы нуждаемся в данных о качестве постов, см. экспертов от Gagarin1968.

На чистой статистике можно разве что действительно попробовать поиграть со временем, попробовав оценить распределение «нормальных» голосов за пост в зависимости от (скорее всего) места расположения (в одном треде — к началу ли, к концу ближе, или к середине, которую должны по идее реже смотреть; среди кучи тредов — если например там иерархическая структура разделов, в более глубокие из которых реже заходят, плюс учитывая предпочтения каждого голосующего — часто ли он смотрит треды в окрестности подозрительного поста?; наконец, по времени между голосованием и отправкой самого поста — стоит ожидать убывание внимания к старым постам в норме, хотя иногда наверно и не стоит) и искать отклонения от таких ожиданий, ну и плюс масштабную накрутку опять же как уже сказал Gagarin1968 — будет видимо скорее всего такой компактный ком голосов.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group