A possible fix for stalling/quitting

Sort:
double0nine

I have dealt with quite a few cases of people letting the timer run out instead of resigning recently, and thought it might be a good idea to share an idea I had that may make dealing with stallers a little easier. 

I was thinking it might be a good idea to collect data from many different games played on chess.com, storing the time taken per move and the engine evaluation at each step, along with whether either player was reported for stalling/quitting. You could then use the time taken per move and the engine evaluation, among other things, as input data to a neural network, and train the neural network to predict the probability of one player reporting the other. 

I think this would probably be a good because it would make it easier for people at the site to deal with large numbers of reports. A well-trained neural network could look automatically for stallers and detect repeated patterns of stalling before letting a human make the final call. It could also be used to filter out false positives, or prioritize reports based of their likelihood of being valid. 

I do think that something like this could work, but am not sure whether, and to what extent, AI is used for these kinds of things on this site. Maybe people can let me know what they think. 

gh0st76

it could work for sorting a players. With this tool you can manage games in such a way, that stallers will play with stallers. Good idea. It can be optional based on stalling rate. And same thing could be applied for many more attributes. I believe they're already using something similar. There are some nice stats available already. And I see they're using time stamp already as well. It will function even without that neural network to some degree. With AI, it will provide much more options for more onlineChess problems.

Martin_Stahl

This club is for the API. Suggestions or bug reports are better in the Feedback club or main site forums.

 

But those that stall too often are already out into a separate pool of players.

double0nine
Martin_Stahl wrote:

This club is for the API. Suggestions or bug reports are better in the Feedback club or main site forums.

 

But those that stall too often are already out into a separate pool of players.

 

I actually suggested feedback, explained this idea, and was pointed towards this forum as a way to get some attention on it. Not sure what to tell you. 

 

Also, I still have to deal with stallers all the time (I just finished a game with a staller), so it seems pretty clear that whatever is being done, the problem is far from being fixed. 

binomine

There are two issues with your solution.

1. A lot of people legit stall on mate in one, myself included, because we think we can magic our way out of a forced mate in one if we just stare long enough.  The rate of false positives is going to be high.

2. Running a neural net on thousands of games an hour is computationally expensive.  Reporting stalling and letting a person handle it is cheaper, and not that much slower.  

Might I suggest trying a shorter time control? 

 

double0nine
binomine wrote:

There are two issues with your solution.

1. A lot of people legit stall on mate in one, myself included, because we think we can magic our way out of a forced mate in one if we just stare long enough.  The rate of false positives is going to be high.

2. Running a neural net on thousands of games an hour is computationally expensive.  Reporting stalling and letting a person handle it is cheaper, and not that much slower.  

Might I suggest trying a shorter time control? 

 

Responding point-by-point:

1. It’s not about stalling accidentally for a couple games, it’s about people who show a repeated pattern of trying to get revenge for losing by making the opponent wait for their timer to run out. I agree that anyone can accidentally stall when playing, but in large part it's about the intention behind it. This would partially be what the AI would have to learn, and if it is predicting the probability of someone being reported, that is going to be implicit in the training data because obvious cases of revenge are almost definitely going to be more likely to be reported than accidental or unintentional cases. 

 

2.

"Running a neural net on thousands of games an hour is computationally expensive."

It can be expensive depending on how you design it or approach it. I know because I have had this problem before and have had to figure out solutions to it. If the problem is that you don't have the computational resources to train a neural network on thousands of games in a given period of time, you can train on a random sample of the thousands, or you can design a smaller neural network, I doubt you would even need a massive neural network for this type of problem. If you needed to, you could also rent out a cloud GPU for a little while and train it on there. So "It's too computationally expensive" isn't really a good reason because there are always many solutions available for that type of obstacle.

 

"Reporting stalling and letting a person handle it is cheaper, and not that much slower."

Power used for a high-end GPU: ~350 watts -> 13.83 cents per kilowatt-hour -> ~$1 per day.

Federally mandated minimum wage in the US: $7.25 per hour.

(Average electricity rate for a house in the US is 13.83 cents per kilowatt-hour according to this: https://www.eia.gov/electricity/monthly/epm_table_grapher.php?t=epmt_5_6_a, it is lower for industry or commercial purposes, so that number is probably even an overestimate)

GPUs (for running neural nets) are demanding, but the added cost to the electricity bill that a GPU would require is nothing compared to the salary of the human doing the same job, even if they were getting paid minimum wage, so I am also absolutely sure that letting a person handle it would not remotely be cheaper. I'm not suggesting that anyone should be fired and replaced with an AI, only responding to that point.

 

Just to be clear though, I didn't post this hoping to argue with people. I am just defending my suggestion. While I am not really that interested in debating people, I would be happy to clarify or answer any questions anyone might have about this idea happy.png

binomine
double0nine wrote:

If you needed to, you could also rent out a cloud GPU for a little while and train it on there. So "It's too computationally expensive" isn't really a good reason because there are always many solutions available for that type of obstacle.

You failed to grasp just how big chess.com is.  On average, 4 games are started on chess.com every second. There's no way a single high end GPU is going to be able to keep up, and the GPU isn't even the bottleneck, the network latency is probably going to starve it. 

double0nine
binomine wrote:
double0nine wrote:

If you needed to, you could also rent out a cloud GPU for a little while and train it on there. So "It's too computationally expensive" isn't really a good reason because there are always many solutions available for that type of obstacle.

You failed to grasp just how big chess.com is.  On average, 4 games are started on chess.com every second. There's no way a single high end GPU is going to be able to keep up, and the GPU isn't even the bottleneck, the network latency is probably going to starve it. 

I wasn't saying you would only use one GPU for the whole site, only that when it comes time for inference, one GPU would be cheaper than one human doing the same job. 

Like I said though, even though you have four games a second coming in, no one is forcing the engineer to design it to be applied on every single game. It could only be used on a subset of games, like a random check at the airport. You could even use an AlphaGo-esque strategy and use a lightweight neural network or a heuristic to filter games out, then apply the full neural network to a subset. All I’m saying there is that if there is a technical limitation like that, you can design the system to only take what it can handle, or engineer your way around it. 

MKNLDG

Hello guys!
For some reason, the "replenishment" of the profile does not work.What could be the reasons if the balance is positive?And, is there any other form of payment (for example, bank details "directly"?