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

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


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

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

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

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



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

Сейчас этот форум просматривают: BVR


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

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