Multiple intents


(Datisto) #1

I also read this: https://medium.com/rasa-blog/how-to-handle-multiple-intents-per-input-using-rasa-nlu-tensorflow-pipeline-75698b49c383

But I don’t see the point of using multiple intents flag? What is special about that? Where is the difference if I define an intent affirm_booktaxi just with the intent classifier classicaly?


(Vladimir Vlasov) #2

multi intent helps classification performance if intent labels are named consistently: they are composed of smaller tokens that have consist meaning bound to parts of the phrases.


(Ctrado18) #3

I struggle too to understand this concept.

I don’t understand this.

Is there now any difference but performance when you use multiple intents? When I have multiple senteneces like greet and booking in one message, I could train this as greet_booking together with just the subintents greet and booking. Will there be any differences in intent classfication then (with and without the flag)?

Because you introduced this concept as something new when users say different things in one message. Such that you get the feeling there is some splitting internally for different classification…

please clarify all my statements please.


(Maosandian) #4

hi,i have read the source code of the solution of tensorflow pipeline,here are some of my thought.

1.we can also use spacy_sklearn pipeline if we see the multiple intent as a new intent label just like single intent

2.it has better performance if we use tensorflow pipeline which solve the multiple intent case by partitioning.tensorflow pipeline can distinguish similar intent label (such as intent:a+b and intent:a+b+c) better


(Vladimir Vlasov) #5

:+1: @Maosandian your observations are correct


(Datisto) #6

The question is not if we use spacy_sklearn. The question is whats the change for tensoflow embedding while using the flage as true or false.


(Vladimir Vlasov) #7

@datistiquo what do you mean by change? Improved performance. For rasa_core, there is no difference


(Datisto) #8

Ok, the only thing chnaged is improved performance? :+1:


(Maosandian) #9

here are my thought 1.tensorflow pipeline will chunk the intent label (such as a+b) into single label by the specified separator if we use the flag as true.

  1. tensorflow can also solve single intent case,as long as we set the flag as false

(Maosandian) #10

here are my thought

1.tensorflow pipeline will chunk the intent label (such as a+b) into single label by the specified separator if we use the flag as true.

2.tensorflow can also solve single intent case,as long as we set the flag as false


(Maosandian) #11

the second point means tensorflow will not see the intent label a+b as a multiple intent if we set the flag as false.

the function _create_encoded_intents in embedding_intent_classifier has said the difference between true and false