Why seperate data for multi-intent?

say i have three intents named intent_one, intent_two and intent_three. An user message can have any of these three intents or any possible combination of them. So to handle messages with multiple intent i do the recommended method ie., intent_one+intent_two. But for three intents i have 4 possible multi-intents ->

  • intent_one+intent_two
  • intent_one+intent_three
  • intent_two+intent_three
  • intent_one+intent_two+intent_three

so in my nlu.md now i have to add data for total 7 category( 3 atomic intents and 4 multi-intents). But the number of multi-intent grows exponentially as we add more and more atomic intents. After then the amount of data needed also increase exponentially. For eg, in the above example if i add one more intent named intent_four, then their are many more multi-intents now, each previous multi-intent will now make a combination with intent_four resulting in many more multi_intents. And in my use case i have around 7 atomic intents and an user message can be of any combination of those intents so i have to add data for each possible multi-intent which become very tedious as this results in a large number of multi-intents combination. And if in future i want to add one more feature to my bot and hence adding new intents for them then adding more new multi-intent will become practically impossible.

I want to know is their any way to deal this problem.

I think if we already taught are bot that this is intent_one and this is intent_two, then why for multi_intent: intent_one+intent_two we have to design new data. Why not are bot identify from the user message that this message contain both intent_one and intent_two.

for eg -> i have two intents called show_authors and send_link. And i trained them using their individual data. So if a user message is requesting for both authors and link then why not are bot is able to identify that this message contains both intents, why we have to explicitly mention a multi-intent in domain.yml and it’s corresponding data in nlu.md.

help me out this problem please

Hi @GauravSharma, the intent classifier currently predicts only one intent for any message. Hence, it will never be able to identify two intents from the same message. We may have a better support for multi-intent classification in the future, but for now you will have to handle it the recommended way.

So, In short if I add one new atomic intent then I not only have to create nlu data for it. But also data for all possible combinations it can have with other atomic intent. There is no way to get out of this hactic work?

In general not all intents go well together. So you only add data for intents which you anticipate to occur together in one utterance.