Establishing a player's identity

General conversations about Go belong here.
Fede
Dies in gote
Posts: 21
Joined: Mon Aug 29, 2011 11:55 pm
GD Posts: 0
IGS: Fede
Has thanked: 14 times
Been thanked: 3 times

Establishing a player's identity

Post by Fede »

I am the manager of Leagues C and D of the PGETC project. One of the teams in one of my leagues has been accused of cheating by player substitution. What I mean is that, according to the accusation, when player A was supposed to play, player B (who has a higher GoR) took player A's place and used player A's account to play.

I'm investigating the matter, trying to pursue different avenues. Here I will focus only on one, for which I need assistance.

I have gathered a few hundreds of 19x19 games played by B in the last few years. It's a long shot, but is there any way to use them to extrapolate B's style and check whether it matches the style of A's PGETC games? How should I proceed if I wanted to establish a "fingerprint" of a player's style?

At the time being I won't reveal any other information in order not to introduce bias.
Javaness2
Gosei
Posts: 1545
Joined: Tue Jul 19, 2011 10:48 am
GD Posts: 0
Has thanked: 111 times
Been thanked: 322 times
Contact:

Re: Establishing a player's identity

Post by Javaness2 »

Make it stop. Please. Make it stop.

Favourite joseki responses could be a way?
Fede
Dies in gote
Posts: 21
Joined: Mon Aug 29, 2011 11:55 pm
GD Posts: 0
IGS: Fede
Has thanked: 14 times
Been thanked: 3 times

Re: Establishing a player's identity

Post by Fede »

Please, try to stick to the subject.
Sure, the tournament's format can be changed, but that is not part of this discussion.

We all know that in face to face tournaments this kind of trick is much harder to pull off [but not impossible]. The lower leagues of the PGETC are valuable especially for players who aren't able to play face to face with opponents of similar strength and I'd like to make everything I can to help the people who enjoy playing in it continue.

Therefore I'm asking for people to try to be constructive and to focus only on the question I'm asking.
Thank you.
Uberdude
Judan
Posts: 6727
Joined: Thu Nov 24, 2011 11:35 am
Rank: UK 4 dan
GD Posts: 0
KGS: Uberdude 4d
OGS: Uberdude 7d
Location: Cambridge, UK
Has thanked: 436 times
Been thanked: 3718 times

Re: Establishing a player's identity

Post by Uberdude »

Maybe this automated go style site can help, it's designed to do pretty much what you want. http://gostyle.j2m.cz/webapp.html

Though I've no idea how good it is, one obvious test would split your hundreds of games for player B into several groups, analyse them each separately and see how similar this style program scores them. Then compare to games of player A.

Edit: but if you only have the one game where player B is alleged to have masqueraded as A then that's probably too small for the program to extract a good style fingerprint, as it asks for ~40 games.
Bojanic
Lives with ko
Posts: 142
Joined: Fri May 06, 2011 1:35 pm
Rank: 5 dan
GD Posts: 0
Has thanked: 27 times
Been thanked: 89 times

Re: Establishing a player's identity

Post by Bojanic »

Fede wrote:I am the manager of Leagues C and D of the PGETC project. One of the teams in one of my leagues has been accused of cheating by player substitution. What I mean is that, according to the accusation, when player A was supposed to play, player B (who has a higher GoR) took player A's place and used player A's account to play.
Do you have IP addresses? Or some data from computer on which it was played? (software version, OS, processor, serial, etc...)
On forums those things are main tool in such analysis.

PS just to note that games are transmitted live, and that player B can simply phone player A when necessary...
Fede
Dies in gote
Posts: 21
Joined: Mon Aug 29, 2011 11:55 pm
GD Posts: 0
IGS: Fede
Has thanked: 14 times
Been thanked: 3 times

Re: Establishing a player's identity

Post by Fede »

Bojanic wrote:
Fede wrote:I am the manager of Leagues C and D of the PGETC project. One of the teams in one of my leagues has been accused of cheating by player substitution. What I mean is that, according to the accusation, when player A was supposed to play, player B (who has a higher GoR) took player A's place and used player A's account to play.
Do you have IP addresses? Or some data from computer on which it was played? (software version, OS, processor, serial, etc...)
On forums those things are main tool in such analysis.

PS just to note that games are transmitted live, and that player B can simply phone player A when necessary...
IP addresses: they are part of my investigation, but by themselves they do not prove much, almost everyone has a dynamic IP address, which is temporary. My understanding is that, to connect an IP to a specific person, I would need access to the ISP's data, but they wouldn't share anything with me. I cannot get a court to order a suspected player's ISP to provide me the data that would connect an IP to the specific location from which the Internet was accessed.

The accuser(s) say that B is playing all the game instead of A.


EDIT: Unless someone can help request and obtain data from an ISP, please ignore the IP part of the equation.
Last edited by Fede on Tue Jun 19, 2018 4:09 am, edited 1 time in total.
Bill Spight
Honinbo
Posts: 10905
Joined: Wed Apr 21, 2010 1:24 pm
Has thanked: 3651 times
Been thanked: 3373 times

Re: Establishing a player's identity

Post by Bill Spight »

You only said that you had several game records for player B. Can you get the same or similar number of game records for player A? If so, you should be able to train a neural network to distinguish between the two. That is in general an easier task to learn than asking it to distinguish between, say, player B and a player who could be anybody. You give it a game record and ask whether Black or White, depending, is player A or player B? How well it can learn to do that, I don't know, but you will get an error rate saying how well it can distinguish between the two. Which is what you want.

With only a few hundred games upon which to learn, the error rate may be high, but I doubt if humans can do better.

Edit: Even with a high error rate for a single game, you may be able to get a low error rate for the whole set of games. For instance, if the network guesses that player B played 4 out of 5 games instead of player A, there is a good chance that player B played at least one of the games. Which is all you need for cheating.
The Adkins Principle:
At some point, doesn't thinking have to go on?
— Winona Adkins

Visualize whirled peas.

Everything with love. Stay safe.
Fede
Dies in gote
Posts: 21
Joined: Mon Aug 29, 2011 11:55 pm
GD Posts: 0
IGS: Fede
Has thanked: 14 times
Been thanked: 3 times

Re: Establishing a player's identity

Post by Fede »

Marcel Grünauer wrote:Because it seems to be difficult to separate the message from the (jocular) medium, I'll spell it out:

I believe that in light of pro-level-AI-free-for-everyone it will be impossible to prevent this kind of cheating. Not even webcams and screen mirroring will help because the player can just look at a different screen behind the webcam. All these "security measures" just react to existing possibilities - much like airport "security" - and just encourage other forms of cheating while making things more awkward for the honest majority. And cheating is much simpler from one's home than it is at a real-life tournament.

And because players study new moves and variations played by AI, their play will reflect that. So it's an exercise in futility.

Unless you trust players to have some "code of honor" (and you can't) and as long as one in a hundred players (e.g., in the case of the Pandanet tournament) is enough to skew the results, online tournaments simply cannot be trusted.
I understand this and I mostly agree. But my duty is to try to see whether I can get to the end of this. I think I owe to the players to try my best.

If it wasn't 100% clear, here both A and B are definitely human. No AI is involved in any way.

Bill Spight wrote:You only said that you had several game records for player B. Can you get the same or similar number of game records for player A?
Not as many as of today, there is at least an order of magnitude of difference between the 19x19 even games I have that were played by B and those played by A. Work in progress. Thanks for the idea, though.
User avatar
pnprog
Lives with ko
Posts: 286
Joined: Thu Oct 20, 2016 7:21 am
Rank: OGS 7 kyu
GD Posts: 0
Has thanked: 94 times
Been thanked: 153 times

Re: Establishing a player's identity

Post by pnprog »

Bill Spight wrote:You only said that you had several game records for player B. Can you get the same or similar number of game records for player A? If so, you should be able to train a neural network to distinguish between the two. That is in general an easier task to learn than asking it to distinguish between, say, player B and a player who could be anybody. You give it a game record and ask whether Black or White, depending, is player A or player B? How well it can learn to do that, I don't know, but you will get an error rate saying how well it can distinguish between the two. Which is what you want.

With only a few hundred games upon which to learn, the error rate may be high, but I doubt if humans can do better.

Edit: Even with a high error rate for a single game, you may be able to get a low error rate for the whole set of games. For instance, if the network guesses that player B played 4 out of 5 games instead of player A, there is a good chance that player B played at least one of the games. Which is all you need for cheating.
This looks like a nice experiment!

Could be possible to use bots to generates plenty of games (gnugo, Leela, pachi...) and make a proof of concept to see if it can work first.

What would you consider for the network input?
Fede wrote:EDIT: Unless someone can help request and obtain data from an ISP, please ignore the IP part of the equation.
You might get support from the Go server. If they have logs of the IP used for by players before/during/after the game, you might be able to find a correspondence between player B and that game. If player B connected to the server earlier that day with the same IP that was used during the game, this is a very strong indication.
I am the author of GoReviewPartner, a small software aimed at assisting reviewing a game of Go. Give it a try!
Bill Spight
Honinbo
Posts: 10905
Joined: Wed Apr 21, 2010 1:24 pm
Has thanked: 3651 times
Been thanked: 3373 times

Re: Establishing a player's identity

Post by Bill Spight »

pnprog wrote:
Bill Spight wrote:You only said that you had several game records for player B. Can you get the same or similar number of game records for player A? If so, you should be able to train a neural network to distinguish between the two. That is in general an easier task to learn than asking it to distinguish between, say, player B and a player who could be anybody. You give it a game record and ask whether Black or White, depending, is player A or player B? How well it can learn to do that, I don't know, but you will get an error rate saying how well it can distinguish between the two. Which is what you want.

With only a few hundred games upon which to learn, the error rate may be high, but I doubt if humans can do better.

Edit: Even with a high error rate for a single game, you may be able to get a low error rate for the whole set of games. For instance, if the network guesses that player B played 4 out of 5 games instead of player A, there is a good chance that player B played at least one of the games. Which is all you need for cheating.
This looks like a nice experiment!

Could be possible to use bots to generates plenty of games (gnugo, Leela, pachi...) and make a proof of concept to see if it can work first.

What would you consider for the network input?
Even if there are not enough game records for player A available to make a good discrimination in this case, I think it would be good to develop a tool for telling two players apart. Aside from style, skill difference is important, as well. In any event, the tool should be developed on games other than those played by the players involved in this case. Maybe start with bots, then use the thousands of game records available on the internet.

Would something like this work? Choose Black or White to identify, and then after each move by that player, ask whether it is by Player One on Player Two. By the end of each game you should be able to get both a prediction and a confidence factor. Correct guesses are rewarded.

Early plays are probably more revealing than late plays. It might work to stop after move 150 (or resignation), or even earlier in the game.
The Adkins Principle:
At some point, doesn't thinking have to go on?
— Winona Adkins

Visualize whirled peas.

Everything with love. Stay safe.
User avatar
pnprog
Lives with ko
Posts: 286
Joined: Thu Oct 20, 2016 7:21 am
Rank: OGS 7 kyu
GD Posts: 0
Has thanked: 94 times
Been thanked: 153 times

Re: Establishing a player's identity

Post by pnprog »

Bill Spight wrote:Would something like this work? Choose Black or White to identify, and then after each move by that player, ask whether it is by Player One on Player Two. By the end of each game you should be able to get both a prediction and a confidence factor. Correct guesses are rewarded.

Early plays are probably more revealing than late plays. It might work to stop after move 150 (or resignation), or even earlier in the game.
OK, so basically, one training entry per move (of that player) and per game, with maybe a limit at move 150.

Then, after the network is trained, one feed it with each move of the suspicious game. Something like this.

I will see if I can download games from the computer go server and make a trial this week.
I am the author of GoReviewPartner, a small software aimed at assisting reviewing a game of Go. Give it a try!
Bill Spight
Honinbo
Posts: 10905
Joined: Wed Apr 21, 2010 1:24 pm
Has thanked: 3651 times
Been thanked: 3373 times

Re: Establishing a player's identity

Post by Bill Spight »

pnprog wrote:
Bill Spight wrote:Would something like this work? Choose Black or White to identify, and then after each move by that player, ask whether it is by Player One on Player Two. By the end of each game you should be able to get both a prediction and a confidence factor. Correct guesses are rewarded.

Early plays are probably more revealing than late plays. It might work to stop after move 150 (or resignation), or even earlier in the game.
OK, so basically, one training entry per move (of that player) and per game, with maybe a limit at move 150.

Then, after the network is trained, one feed it with each move of the suspicious game. Something like this.

I will see if I can download games from the computer go server and make a trial this week.
Thanks. :) This is definitely one verified method of cheating, and if you can develop a tool to help detect it, that would be great!
The Adkins Principle:
At some point, doesn't thinking have to go on?
— Winona Adkins

Visualize whirled peas.

Everything with love. Stay safe.
Fede
Dies in gote
Posts: 21
Joined: Mon Aug 29, 2011 11:55 pm
GD Posts: 0
IGS: Fede
Has thanked: 14 times
Been thanked: 3 times

Re: Establishing a player's identity

Post by Fede »

pnprog wrote:
Bill Spight wrote:Would something like this work? Choose Black or White to identify, and then after each move by that player, ask whether it is by Player One on Player Two. By the end of each game you should be able to get both a prediction and a confidence factor. Correct guesses are rewarded.

Early plays are probably more revealing than late plays. It might work to stop after move 150 (or resignation), or even earlier in the game.
OK, so basically, one training entry per move (of that player) and per game, with maybe a limit at move 150.

Then, after the network is trained, one feed it with each move of the suspicious game. Something like this.

I will see if I can download games from the computer go server and make a trial this week.
If you want to obtain many games without downloading them from an active Go server (they may limit access if there are too many requests), there are a few databases that should be freely available: see section "Other Game Collections" of https://senseis.xmp.net/?GoDatabases. The NNGS and Online-Go collections could be good for this, since they have a huge number of games for many different ranks.

Also, if you need processing power, I have an extra (ordinary) Windows machine that is often off.
Bojanic
Lives with ko
Posts: 142
Joined: Fri May 06, 2011 1:35 pm
Rank: 5 dan
GD Posts: 0
Has thanked: 27 times
Been thanked: 89 times

Re: Establishing a player's identity

Post by Bojanic »

Federico,
Have you checked games for program usage?
It is much easier, only 1 player is involved, and it coincides with availability of programs.
If those games started in this year's league, then you have only few programs to check.
Gobang
Dies in gote
Posts: 45
Joined: Tue Jun 05, 2018 5:23 pm
Rank: 2kyu
GD Posts: 0
Has thanked: 31 times
Been thanked: 18 times

Re: Establishing a player's identity

Post by Gobang »

Fede wrote:I am the manager of Leagues C and D of the PGETC project. One of the teams in one of my leagues has been accused of cheating by player substitution. What I mean is that, according to the accusation, when player A was supposed to play, player B (who has a higher GoR) took player A's place and used player A's account to play.

I'm investigating the matter, trying to pursue different avenues. Here I will focus only on one, for which I need assistance.

I have gathered a few hundreds of 19x19 games played by B in the last few years. It's a long shot, but is there any way to use them to extrapolate B's style and check whether it matches the style of A's PGETC games? How should I proceed if I wanted to establish a "fingerprint" of a player's style?

At the time being I won't reveal any other information in order not to introduce bias.

"I am the manager of Leagues C and D of the PGETC project." Sorry to hear that.

"How should I proceed if I wanted to establish a "fingerprint" of a player's style?" Have a piece of cake and a nice cup of coffee and think about whether or not this is worth wasting time and energy on.

What can you do? You can ask the player who is accused of cheating whether or not he or she cheated. If the player says no, then that is the end. You can prove within 90% plus probability that cheating did occur, but a recent example shows what will happen. You will not get anywhere. The more time and effort you expend into proving this the more time and effort will be put into refuting your proof. The more effort you put into this the more time you will waste.
Post Reply