@ -9,8 +9,8 @@ The baseline SOLOIST is fine-tuned on different data splits to evaluate the perf
The belief state prediction task of SOLOIST utilizes *top-k* and *top-p* sampling to generate the belief state slots and values. Since the baseline SOLOIST uses open-ended generation, it's susceptible to generating random slot-value pairs that are not relevant to the dialog history. Below is an example of how the baseline model generated a slot-value pair that's not relevant to user goals and it completely missed two correct slot-value pairs.
| Dialog History | True belief states | Generated belief states |
| ----- | ----- | ----- |
| Dialog History | True belief states | Generated belief states |
| **user:** we need to find a guesthouse of moderate price.<br/>**system:** do you have any special area you would like to stay?<br/>or possibly a star request for the guesthouse?<br/>**user:** i would like it to have a 3 star rating. | type = guesthouse<br/>pricerange = moderate<br/>stars = 3 | parking = yes<br/>stars = 3 |
@ -18,23 +18,23 @@ The belief state prediction task of SOLOIST utilizes *top-k* and *top-p* samplin
### Prompt-based Methods
#### Value-based prompt & Inverse prompt
Value-based prompt utilizes the dialog history and value to generate corresponding slots. This approach doesn't rely on the ontology of the slots. While training, both value-based prompts and inverse prompts are used to compute the training loss. The inverse prompt mechanism helped complementing the value-based prompt in generating the correct slots. It's worth mentioning that there's a 5-10% drop (depending on the data split trained on) in the JGA score when inverse prompt mechanism is not applied during training.
Value-based prompt utilizes the dialog history and value to generate corresponding slots. This approach doesn't rely on the ontology of the slots. While training, both value-based prompts and inverse prompts are used to compute the training loss. The inverse prompt mechanism helped to complement the value-based prompt in generating the correct slots, especially under low-resource data splits.
The experimental results show a significant difference in the performance between baseline SOLOIST and Prompt-based methods. Prompt-based methods significantly outperformed the baseline model under low-resource settings (*5-dpd*, *10-dpd* and *50-dpd*).
#### destination vs departure & leave vs arrive
Under low-resource settings, the prompt-based model struggled while generate slots like *departure*|*destination* and *leave*|*arrive*. For many instances, it wrongly generated *destination* instead of *departure* and vice-versa. Below is one example where slots are wrongly generated.
| Dialog History | True belief states | Generated belief states |
| **user:** I need to be picked up from pizza hut city centre after 04:30 | leave = 04:30<br/>departure = pizza hut city centre | arrive = 04:30<br/>destination = pizza hut city centre |
#### Repeated values
Since value-based prompt generates slots from corresponding values, it can't generate slots for repeated values. Only one slot can be generated for the repeated values. Consider the following example:
| Dialog History | True belief states |
| ----- | ----- |
| **user:** hi, can you help me find a 3 star place to stay?<br/>**system:** Is there a particular area or price range you would like?<br/>**user:** how about a place in the centre of town that is of type hotel<br/>**system:** how long would you like to stay, and how many are in your party?<br/>**user:** I'll be arriving saturday and staying for 3 nights. there are 3 of us.| area = centre<br/>stars = 3<br/>type = hotel<br/>day = saturday<br/>people = 3<br/>stay = 3|
| **user:** hi, can you help me find a 3 star place to stay?<br/>**system:** Is there a particular area or price range you would like?<br/>**user:** how about a place in the centre of town that is of type hotel<br/>**system:** how long would you like to stay, and how many are in your party?<br/>**user:** I'll be arriving saturday and staying for 3 nights. there are 3 of us.| area = centre<br/>stars = 3<br/>type = hotel<br/>day = saturday<br/>people = 3<br/>stay = 3|
The repeated value `3` in the above example can only generate one slot using value-based prompt, as the word with the highest probability is picked as the generated slot. This suggests that the existing annotations for beleif states doesn't work well with value-based prompt.
> **Note:** All the generated output files for the above reported results are available in this repository. Check [outputs/prompt-learning](outputs/prompt-learning) directory to see the output JSON files for each data-split.
@ -306,6 +300,18 @@ Script for generating belief states (slots) using prompt-ensemble remains the sa
sh test_prompting.sh -m <saved-model-path>
```
#### Results from Prompt Ensembling
| Dataset | JGA | JGA* |
|---------|-------|-------|
| 5-dpd | 30.09 | 69.23 |
| 10-dpd | 42.84 | 86.99 |
| 50-dpd | 47.62 | 91.74 |
| 100-dpd | 48.08 | 93.10 |
| 125-dpd | 46.96 | 92.08 |
| 250-dpd | 48.30 | 93.44 |
### Prompt Augmentation
Prompt Augmentation, also called *demonstration learning*, provides a few additional *answered prompts* that can demonstrate to the PLM, how the actual prompt slot can be answered. Sample selection of answered prompts are hand-crafted and hand-picked manually. Experiments are performed on different sets of *answered prompts*.
@ -315,20 +321,13 @@ Edit the [test_prompting.sh](prompt-learning/test_prompting.sh) file and add `--
> **Note:** All the generated output files for the above reported results are available in this repository. Check [outputs/multi-prompt](outputs/multi-prompt) directory to see the output JSON files for each data-split.
## Analysis
Analyses of the results and belief state generations (outputs) can be found [here](ANALYSIS.md).