Consider a system, where each user enters the system, performs a series of predefined actions, and then exits.

For instance, consider a system with 5 predefined action. The action log of some user is detailed below:

enter, action 3, action 1, action 5, action 1, action 4, exit.

Notice that the order of actions matters.

Assume that we have the action logs for thousands of users, and we want to graphically model their behavior.

  1. What is the proper model, and
  2. How can we translate the action logs into this model?

More info. The Markov chain does not seem to be right, as Markov chains are memoryless, while in our system, the user remembers his/her actions, and decides on the next action based on the complete history after entering the system.

I guess Bayesian networks might be the appropriate choice, but I'm not sure. Specifically, I'm not sure if the acyclicity of Bayesian networks imposes a restriction on the desired model.

  • $\begingroup$ "the user remembers his/her actions, and decides on the next action based on the complete history after entering the system" How did you assess this? $\endgroup$ – AdamO Apr 11 '14 at 19:42

How are you envisioning this fitting into a graphical framework? What would each node represent? Under a Markov model each node would be a possible action at a given time. In your case if you're saying a Markov model doesn't work, then the number of edges will be exponentially large.

An important bottom line here is that you're going to have to make some kind of simplification to your model, either based on your prior beliefs about the process or maybe your end goal. But if you're trying to model the probability of each action conditional on the entire sequence of previous actions, that's just too many parameters to fit unless the data set is very large, the action space is small and the sequences are short.

But more importantly for how you want to model this is: what exactly is your goal? Are you trying to understand what specific users are going to do next? Are you trying to segment the users by type? Are you trying to understand the factors that affect a user doing something specific like exiting early or making a purchase? Those will all take your modeling in very different directions.

If what you're interested in is the probability of the next action at any time, then you will probably want to look into markov-like models, possibly with a memory of more than one unit of time. Try exploring how far back the memory goes, i.e. at what point in the past is that action not a significant predictor of the next one.

If you're tying to understand factors that affect probability of doing something specific over the course of the user's tenure, I would start by generating some hypotheses and just test them with logistic regression models.

If your goal is something different than either of those, then that should directly impact how you model this data.


I would model as an event diagram. Imagine 7 vertical lines -- entry, one for each action, and exit. Horizontal rows indicate time passed since entrance. In your example, you'll have 7 rows. Draw a line from leftmost line on row 1 (entrance) to fourth line (action 3) on the second row, etc. until termination at exit on row 7 and rightmost line.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.