[MUSIC PLAYING]
Hi, I'm John Burge and I'm the TL for the predictive analytics
team.
And today I'm gonna talk about how to do that.
So you're a developer, you've created your game.
You've figured out how to get a lot of people into your game,
and now you have to try to figure out how
to keep people in your game.
So if your game is connected to Google play game services,
as users are playing your game, we're
actually building very detailed time series of what
users are doing in the game.
So let's say that you have a game about killing zombies
and farming.
So, here's a sample user in the game.
He's acquired your game, he's gone and killed 100 zombies.
He's farmed some stuff, he's farmed some carrots,
and tomatoes, raised sheep, farmed corn.
But ultimately, he's gonna end up leaving your game.
Wouldn't it be fantastic, if at some point prior
to leaving your game, say like when he was raising sheep,
you could get a signal from us, that says, hey, this guy's
about to leave your game.
So instead of him leaving your game,
you can say well, I've got a golden shotgun.
Maybe I'll give you a 50% discount
on this golden shotgun.
So instead of leaving your game, he
picks up this golden shotgun, and of course
with a golden shotgun, what are you going to do?
You're gonna go out and kill some more zombies.
So this is exactly the type of thing that we're doing.
If you go to the predictive analytics offering
that we have, you can actually see
examples of the time series of real people playing your games.
And you can see that there's a huge diversity of events that
show up in these time series.
We've got session starts, any of the events
that you define in your game, they show up, in-app purchases.
We're working on integrating crashes and reviews.
General RPC activity, just tons of stuff
shows up in these time series.
Well, what do we do with them?
Well, we take a time series and we're
going to want to feed it into some one of our machine
learning models.
First we're going to need to extract
some features from that.
And I'll go into some details about how
we extract those features.
But at the end of the day, features
for each one of these time series
just boil down to a bunch of numbers.
So here you can see, I've got a bunch of columns of numbers.
Each one of these columns corresponds to the features
that we extract from one of the games.
And historically speaking, we can look at the data
so we know whether or not someone's turned or stayed
in your game.
So we can label each one of these feature sets either green
here, for users that stay in your game,
or red for users that have left your game.
We take all of the information that we have about your users,
and we feed it into Google's Sibyl infrastructure.
Sibyl is a massive infrastructure
that we have at Google for learning all sorts of types
of classification tasks.
It's used widely across many of Google's products.
And now including analyzing how users are playing your games.
So we take all this data, we dump it
into the Sibyl infrastructure.
And out comes a trained model.
We do this daily.
And then with this trained model,
as a user is playing your game, we
look at the time series for that user.
Here we have the same time series that we had before.
We extract features from it, and then we
dump those features into the trained model.
And that model's gonna spit out whether or not
we think that user is going to churn out of your game.
So how do we do this?
Well, in any of these classification tasks,
one of the most important things is always
trying to figure out how to come up with a set of features that
represent your data points?
Our data points are time series.
And it's really important that the features that we extract
out of this time series don't completely
throw away the temporal information that we have.
So how do we do that?
Well, we define these temporal windows.
Here I have an example of one temporal window.
It's the one day temporal window here.
So we really have two time frames in this example.
We have the one day window, and we have everything
that happens before that.
Let's say in your game that you have an achievement called
the kill megaboss achievement.
If the user killed a megaboss greater than one day ago,
then a particular feature gets turned on.
This one that I have highlighted in red.
However, if the kill megaboss happens before one day is up,
then a different feature gets turned on.
So we're preserving some temporal information
in the features that we dump into our big bag of features.
Now, technically, this is something
that you could do on your own.
Although, I'm not sure why you would,
since we're doing it for free for you.
But one thing that you couldn't do,
is you couldn't look at what users are doing in other games.
So just like we're building time series for users in your game,
we're building time series for users in all of the games
that they're playing.
So let's say that this particular user is
playing three games right now.
He's playing your game, and two other games.
We can separate all of these games into temporal windows.
One day ago, two days ago, three days ago.
And we can look, for instance, at what's
happening three days ago.
Well let's say three days ago, the user
triggered four different events in your time series.
But, he was playing two other games, and in those other games
he triggered a total of seven events.
Well these are just more features
that get dumped into our big bag of features.
In addition to the features that we get out of our time series,
we actually have a tremendous number of nontemporal features.
Player demographics, mobile device, Android version,
game genre, country, language.
All sorts of stuff.
And you can see now that our bag is getting really, really
full of these features.
But luckily, Sibyl can deal with a very large number
of features.
So in conclusion, if you want to get
these type of powerful predictions from us,
all you have to do is connect to our Game Services.
The more signals that you give us, the better we can do.
We currently have two models that we make predictions on.
Churn prediction and spend prediction.
We're busy working to make improvements.
We have two more models, big spender and lifetime value.
And we're investigating other ML technologies
that we have at Google, such as Google
Brain and other neural network solutions.
Thank you.
[APPLAUSE]
[MUSIC PLAYING]