I have built a small project, where users can interact with the Interface in order to fulfill a task.

My goal is to recommend to users next step based on specific task. And for the purpose, I want to use either Markov Model or Hidden Markov model to recommend next interaction. I am a beginner on using Markov models, but I did some research in the last days regarding Markov chain/hidden Markov model. So I have two issues/question which I hope to be able to discuss here and get help from people with experience in this field.

  1. First Question/issue is about deciding which one to use Markov chain or HMM? or are those usable in my case?

    • So far, I think the Markov chain is easy usable in my project if a use the interaction as a State?
    • About HMM I am not sure what can I use as hidden variables if again my states are going to be the interactions. Here I would consider any kind of suggestion.
  2. The second problem is deciding the initial values for the transition. In every tutorial/example/book they just get some initial values, but I couldn't find so far any description, How is this calculated in real life Projects?

Thank you in advance to everyone, who will take some time to help me on understanding better the Markov chain and HMM.


You may find some inspirations from language models, especially bigram model or trigram model.

A bigram model is essentially a markov chain. You have to either manually specify the parameters like P(brush/line tool) or learn them from user interaction data.

A trigram model is a second order markov chain. Hence you consider two previous interactions to predict the next, like P(brush tool/color tool, line tool)

I am not sure how effective this kind of prediction will be. If you want to use an HMM, you have to specify some hidden states. Note that picking a tool is an observed state. So you may choose hidden states as the intentions of the user like 1. user wants to add more drawing 2. user pauses to add some finishing touches etc. But you have to try out different things to find out how effective it will be.

My advice is to start with the simplest; a bigram model (A first order markov chain) and see how effective it is.

  • $\begingroup$ Thank you for the advice. Does maybe exist a review about the optimization of Markov chain orders?, or maybe this is project-based. Which then through testing i would be able to find out which model suits the best. $\endgroup$ – Proma Nov 24 '16 at 10:17

Your Answer

