By clicking on the "See what the computer is thinking" button I think that the AI works with a simple history based algorithm. Assuming that a human player will only remember the immediate previous throws, it takes the last 4 throw pairs and will search what was the subsequent throw among all the human players who played the same sequence. Then it will just pick the move that defeats the human most likely next throw. My explanations might be a bit clumsy, sorry English is not my mother tongue, but click the button and you will understand.
A possible strategy to defeat the AI would then to search for these patterns yourself and pick the throw that would defeat the throw that the AI thinks would defeat the human's. The problem is that if most players start acting like that, the history will change and the AI wil outsmart the human player again. As some commenters noticed before, there is no dominant strategy in RPS and playing at random seems to be the best.
It reminds me of the Keynesian beauty contest where players have to pick not the prettiest contestants but the contestants that most people thought were pretty. I think think the next step for this algorithm would be to not only rely on the total history but also to make a model of the human player and compute how many moves he/she can read ahead of the CPU. For example, a "naive" player will always play according to the history (e.g. human scissors, CPU rock). A human player reading 1 throw ahead would play in order to defeat the CPU, based on the history (e.g. human paper). A human player seeing this strategy defeat could decide to play 2 moves ahead (e.g. human scissors). Since reading 3 moves ahead is equivalent to the naive one, the CPU would only have to make 3 categories of players.
I am not an expert in game theory but I think it could work...
It is easier to write an incorrect program than understand a correct one.