Skip to main content
GameDev.net gamedev.net
🔒 Locked

computer predicting user's actions

Started by phi Oct 26, 2006 at 5:39 PM 8 replies 1.2k views
Original Post
phi
phi
Hi, I've got an idea of what I want to do, but I don't know what the best way of doing it would be. Basically, I want a program to track the activities of the user for a while and then be able to predict what they want to do. From what I've gathered so far, neural networks seems to be the best thing for this. However, I don't know what section of NN would be best to use in a situation where the program monitors usage and then predicts what the user wants to do. Or maybe there is a better way which doesn't require neural networks? Thank you
dave
dave
a) The combination of possible things the user could be doing is too great.
b) It would take an incredibly long time to actually train the neural network to do what you want.

Sorry to be negative, but i don't think it is feasible.

Dave
phi
phi
Sorry, I should've been a bit clearer. It's just a small (relatively speaking ;) ) project where the program monitors a specific thing. For example, say the user has a routine of visiting a 10 different websites first thing in the morning. Then, in the evening, they visit another 10 different sites. I want the system to figure out, over a certain time period (a week or so) the pattern and predict which site they want to go to based on the sites they've been going to previously. It will never be 100% accurate as it is quite subjective, but it can work.
thanks.
Excors
Excors
Look at the Office Assistant as an example of how users like AI algorithms attempting to predict what they want [smile]

One advantage it had was the ability to hook into the application and see what commands the user was performing with a reasonable level of detail - it would be much more difficult to get good results if you don't have a similar way of monitoring usage (e.g. if you're trying to work with other people's applications). So it'd be necessary to specify the scope you want to work in (which would probably have to be a very linear system, to be predictable enough), and work out how much detail you'd need as input. Then that would have to be manipulated into a form suitable for some AI algorithm, and that algorithm would have to be built and trained - I have no idea what (if any) methods would be suitable, but it does sound like a rather difficult problem (particularly since it's necessarily quite ill-defined and hard to evaluate, not a nice simple question like "is this spam?").

Edit (didn't see last reply): ah, that sounds like a much more specific problem now. If people typically visit sites in a certain sequence, I'd guess something like a hidden Markov model might be relevant and worth investigating, but I don't know enough about the area to be much help.
Palidine
Palidine
The idea is to just predict the pages so you can preload them for people with slow connections? If it's something like that, you're perhaps better off just forgetting anything fancy:

1) every time a user visits a website, throw the URL into a map
2) if the URL is already in the map, increment a counter
3) every session sort the map from most visited to least visited, and start pre-fetching the top 10 or so.

you could similarly store time/sequence information so you can pre-fetch them in what you can best guess will be the order of access.

-me
tendifo
tendifo
Just have a program that monitors what the user does. Whenever a specific time is encountered, the program ranks the actions by occurances in the past. Do the first ranked action. Or actually, let the user pick from the list of actions in order of frequency of use.
phi
phi
Thanks for the replies.
Not only is this to complete the project, but I want to learn to create neural networks, and I thought this project seemed quite a simple thing to have a NN for. Thanks for the link Excors. That Markov model seems quite handy. Before that, I had been looking at self organising maps. Seems to me that despite the various methods, not many explain how to store the data. Is it just a case of having an XML file per map (or one big XML file and appending the data per map). Or is there a better way of storing data and will take less space?
thanks again.
phi
phi
I came across this site:
http://www.generation5.org/content/2004/aiSomPic.asp
and found it highly interesting. Although it's not the same thing, the way it finds similar pictures to the original is the thing that struck me. For example, my user goes to software development sites quite often, and inbetween randomly goes to check his/her email account. The program should pick this up and check it's database to see other sites the user might be interested in. My program is quite simple, and as mentioned, doesn't require NN. However, I want to learn the basics of NN and this program seems like a simple way of doing it. By the end, I want to come up with a program similar to the one in the website above, which compares pictures.
hplus0603
hplus0603
You could look at various Markov models. (Hidden Markov; Partially Observable Markov; etc).
enum Bool { True, False, FileNotFound };

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.