Skip to main content

Dialog Management

Dialogue management is a sequential decision-making process.  We can represent dialogue management with a dynamic Bayesian network (DBN) with two assumptions that network is stationary (that is, probability P (Xt | Xt1) is identical for all values of t)  and Markov assumption holds true.

DBN must also be able to calculate the relative utility of various actions possible in the current state. Considering the fact that nodes in our DBN may be affected the previous value of same or other nodes, the dialogue management is well represented by Dynamic Decision network (DDN).

Representing the DDN as probabilistic graph model, we can use generalized variable elimination or likelihood weighting as two approaches for deriving inferences.  Using these inference algorithms, dialogue manager can update dialogue states on receiving new observations and select an appropriate action based on the new or updated state.

Finding initial distribution for each variable in the probabilistic model is a challenge. Training data based on real-world can be used to estimate the initial probabilistic distribution of these variables/nodes.  Additionally,  training data can also be used for structural learning of nodes, that is, to determine which nodes are connected to which other nodes.

There are several techniques for parameters estimation including Maximum Likelihood and Bayesian Learning. For categorical distribution, Dirichlet distribution, which is a distribution of distributions, can be used for parameter estimation. A common problem with training data in dialogue management is partially observed data. Sampling technique such Markov Chain Monte Carlo (MCMC) can be used in such situation to estimate the posterior probability.

The main objective of the dialogue management is to select the optimal action which yields the maximum expected utility for the agent. But the agent in dialogue management has no knowledge of internal dynamics of surrounding environment. Reinforcement learning can be used to determine the best action using trial and error method.

Dialogue is an activity with a desire to fulfill a goal. A dialogue at least two participants. The cost of a dialogue is the communication effort which we want to minimize. The dialogue's participants take turn, which is called dialogue act.  Utterance by the participants is used to fulfill a specific goal.  Grounding is used to level set the common understanding, shared knowledge, and beliefs.

There are several approaches to construct dialogue manager: hand-crafted, frame-slot based, plan based, and information state-based.

Comments

Popular posts from this blog

Decision Tree

Decision tree is a multi-class classification tool allowing a data point to be classified into one of many (two or more) classes available.  A decision tree divides the sample space into a rectilinear region. This will be more clear with an example. Let us say we have this auto-insurance claim related data as shown in the following table. We want to predict what type of customer profile may more likely lead to claim payout.  The decision tree model may first divide the sample space based on age. So, now we have two regions divided based on the age. Next, one of those regions will further sub-divided based Marital_status, and then that newly divided sub-regision may further get divide based on Num_of_vehicle_owned.  A decision tree is made up of a root node followed by intermediate node and leaf node.  Each leaf node represents one of the class into which data points have been classified to. An intermediate node represents the decision rule based...

Recommender System using Collaborative filtering

Recommender system using collaborative filtering approach uses the past users' behavior to predict what items the current user would like. We create a UxM matrix where U is the number of users and M is the number of different items or products. Uij is the rating expressed by the user-i for product-j. In the real world, not every user expresses an opinion about every product. For example, let us say there are five users including Bob has expressed their opinion about four movies as shown below Table 1: movie1 movie2 movie3 movie4 user1 1 3 3 5 user2 2 4 5 user3 3 2 2 user4 1 3 4 Bob 3 2 5 ?  Our goal is to predict what movies to recommend to Bob, or put it another way should we recommend movie4 to Bob, knowing the rating for four movies from other users including Bob. Traditionally, we could do item to item comparison, which means if the user has liked item1 in the past then that user may like other items similar to item1. Another way to recommend...

Sentimental Analysis Using Scikit-Learn and Neural Network

Using Scikit-Learn and NLTK for Sentimental Analysis Sentimental analysis is a way of categorizing text into subgroup based on the opinion or sentiments expressed in the text. For example, we would like to categorize review or comments of people about a movie to determine how many like the movie and how many don't. In a supervised sentimental analysis, we have some training data which is already categorized or sub-grouped into different categories, for example, into 'positive' or 'negative' sentiments. We used these training data to train our model to learn what makes a text to be part of a specific group. By text I mean a sentence or a paragraph. Using this labeled sentences, we are going to build a model. So, let us say we have following training text: training_positive = list() training_positive[0] =  "bromwell high is a nice cartoon comedy perfect for family" training_positive[1] =  " homelessness or houselessness as george carlin s...