Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"enemy of my friend" feature and total refactor #8

Merged
merged 5 commits into from
Oct 2, 2024

Conversation

ichorid
Copy link
Contributor

@ichorid ichorid commented Oct 1, 2024

This commit changes multiple things in how MeritRank is calculated and implemented:

  1. "Friend of my enemy" feature (reverse negs calculation) is removed completely, for the reason it does not affect walks beyond the offender's friend, and thus is useless for prediction.
  2. Due to removal of the reverse negs feature, it became possible to greatly simplify and streamline the code
  3. Added "enemy of my friend" feature. Walks can now take negative edges, and when a walk passes through a negative edge, it switches to "negative continuation mode": every node passed is now subtracted from the total hit count, and the walk can only go through positive edges now. The idea is to get information about what my (and my friends') "enemies" consider their "friends", and downvote that. Note that this method is suspectible to "bait-and-switch" manipulation, as the foe can accumulate a lot of upvotes from me, and then "redirect" it to my friends. This can be solved by time-based graphs, eventually.

Important note:
The change breaks numeric/algorithmic compatibility with Python version, so the corresponding incremental tests are disabled, as the data in OUTX.csv does not match the algorithm anymore.

This commit changes multiple things in how MeritRank is calculated and
implemented:
1. "Friend of my enemy" feature (reverse negs calculation) is removed
   completely, for the reason it does not affect walks beyond the
   offender's friend, and thus is useless for prediction.
2. Due to removal of the reverse negs feature, it became possible to
   greatly simplify and streamline the code
3. Added "enemy of my friend" feature.
   Walks can now take negative edges, and when a walk passes through
   a negative edge, it switches to "negative continuation mode":
   every node passed is now *subtracted* from the total hit count,
   and the walk can only go through positive edges now.
   The idea is to get information about what my (and my friends')
   "enemies" consider their "friends", and downvote that.
   Note that this method is suspectible to "bait-and-switch"
   manipulation, as the foe can accumulate a lot of upvotes from me,
   and then "redirect" it to my friends. This can be solved by
   time-based graphs, eventually.
@ichorid ichorid marked this pull request as ready for review October 1, 2024 19:47
@ichorid ichorid merged commit 26f7e2c into Intersubjective:dev Oct 2, 2024
0 of 2 checks passed
@ichorid ichorid deleted the feature/enemy_of_my_friend branch October 2, 2024 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants