当前位置:网站首页>Voice assistant - Multi round conversation (process implementation)
Voice assistant - Multi round conversation (process implementation)
2022-06-12 07:32:00 【Turned_ MZ】
This chapter , Let's take a look at the main process of multi round conversation in voice assistant . Here we mainly talk about the implementation of semantic inheritance and ellipsis completion in the open domain . Omission and completion refers to the current query There is no apparent intention in not combining the above , But in combination with the above, we can get the intention , Semantic succession is the intention of this round , But some slots are missing , At this point, useful slot information can be obtained in combination with the above . Take a look at the flow chart below :

Some modules are explained below :
1、 User intention identification
This module is designed to identify the user's intention , For modules in the normal process , When there is intention , It has the potential of semantic inheritance , When there is no intention , It has the potential to omit and complete , It needs to be judged in combination with the following process .
2、 Association recognition
Purpose : Association recognition has two main purposes :
- To identify the current query Whether it is related to the above , And which round of dialogue above is relevant
U1: Order one 8 An alarm clock at
U2: What's the weather like today? # And U2 Nothing above
U3: Turn off the alarm clock just now # And U2 irrelevant , And U1 of
- Identify associated categories
U1: What's the weather like in Shenzhen today
U2: And tomorrow # Omit and complete
U3: Buy a train ticket to go there # Semantic succession ( When there are demonstrative pronouns , It can be done as anaphora resolution )
Realization way :
The implementation here can be implemented using rules , You can also use models to implement , The model aspect can use the correlation model , For example, the typical DSSM, Rules can maintain a black-and-white list of context related intentions . At the same time, we can judge whether the context is related except whether there is semantic relevance , You also need to limit the time window , Beyond the time window, it is no longer considered valid .
3、 Slot alignment
Slot alignment refers to some operations on slots , For example, add 、 modify 、 Delete and other operations , You can use triples to represent :( Slot position A, Alignment operation O, Slot position B), Indicates the use of slots A The information on the slot B Perform operations on it O, Take the following example :
- add to ( Slot inheritance ), When the slot is empty , Supplement the slot
U: Set a tomorrow 8 An alarm clock at
U: Turn off the alarm clock # The time slot is empty , Use the time slot of the previous round
- Replace : Currently available slot information , You need to replace the slot information above
U: What's the weather like today?
U: What about tomorrow ? # Trigger ellipsis completion , There is currently time information available , Use the above intention , Replace the above time slot with the current time .
U: Where is the window of the world ?
U: Navigate there . # Trigger anaphora resolution , The current round actually has a destination , That is to say “ Where? ”, Replace with the above slot .
- Delete : Delete slot information
U: Buy one for tomorrow 8 The train ticket to Beijing
U: Forget it , I don't want to go to Beijing # The user deletes the destination slot
# Because the user deleted the destination slot , At this time, the slot is missing , Then, the slot position inquiry will be triggered , Enter the enclosed multi wheel .
The following two points shall be met during slot alignment :
- Consistent attributes : Requirements for consistent slot attributes , For example, location attribute 、 Time attribute , If further divided , Can be divided into destinations 、 Place of departure 、 Starting time 、 End time, etc . Attributes are inconsistent and cannot be replaced , For example, the name of a character cannot be filled in the location slot .
- Slot black and white list : Sometimes some slot attributes are consistent , But because of the intended characteristics or product requirements , The two are not suitable for alignment , It can be restricted through the black-and-white list .
4、 Knowledge verification
Knowledge verification refers to the validity verification of slots to be filled , Judge whether the slot position modification is reasonable , This can be combined with the knowledge map , Verify according to the relevant attributes of the entities in the slot , Take the following example :
- Rationality check : Judge whether the slot is reasonable after filling
U: What's the weather like today? ? # Suppose today is 8 month 1 Number
U: National Day # National Day is far away 8 month 1 The sun is too far away , No information about the weather , Multiple rounds of inheritance should not be performed at this time , Need to publish the National Day encyclopedia or national day calendar query .
- Authenticity verification : Judge whether the information to be filled in the slot really exists
U: I want to hear 《 blue and white porcelain 》
U: Du Fu's # Dufu is a person's name , But I haven't sung 《 blue and white porcelain 》, So it is not suitable to be filled in
After knowledge verification , Determine the unreasonable slot position , Knowledge conflict handling is required , For example, intention jump ( That is, jump to other intentions )、 Slot reset ( Empty or reset the slot )、 Multiple rounds of inquiry ( Add a round of inquiry to obtain a reasonable slot position )
Some ideas :
The plan above , It is to modularize the process of multi round processing , The advantage is that the process and effect can be controlled , At the same time, some modules can be upgraded , For example, a module is replaced by a model to improve the calling , If some scenarios want to tighten the multi round strategy , It will also be very convenient . For most multi round requirements , Through the above process, you can achieve .
Although the above scheme is more practical , But not enough kool, If there is an end-to-end model directly through query Rewrite to achieve multiple rounds , Or there is an end-to-end model to realize both context sensitive recognition and slot alignment , Will appear more advanced .
query Rewriting the plan is actually relatively simple , Through one encoder-decoder The model can realize , Some models for translation tasks can be used to do .
Another way is the implementation of a paper 《Incomplete Utterance Rewriting as Semantic Segmentation》, The main idea of this article is to refer to the idea of semantic segmentation in images , Use it for text cutting , Find the associated slot and replaceable part in the context .

Let's see for ourselves , The link to the paper is :https://arxiv.org/pdf/2009.13166.pdf
边栏推荐
- linux下怎么停止mysql服务
- RT thread studio learning summary
- Use of gt911 capacitive touch screen
- Formatting the generalization forgetting trade off in continuous learning
- Test manager defines and implements test metrics
- Summary of semantic segmentation learning (II) -- UNET network
- Qt实现托盘
- Keil installation of C language development tool for 51 single chip microcomputer
- Day 5 of pyhon
- AI fanaticism | come to this conference and work together on the new tools of AI!
猜你喜欢

TypeScript基础知识全集

Dynamic coordinate transformation in ROS (dynamic parameter adjustment + dynamic coordinate transformation)

Improved schemes for episodic memory based lifelong learning

Summary of machine learning + pattern recognition learning (II) -- perceptron and neural network

Golang quickly generates model and queryset of database tables

There is no solid line connection between many devices in Proteus circuit simulation design diagram. How are they realized?

Question bank and answers of special operation certificate examination for safety management personnel of hazardous chemical business units in 2022

Fcpx plug-in: simple line outgoing text title introduction animation call outs with photo placeholders for fcpx

The most understandable explanation of coordinate transformation (push to + diagram)

Modelarts training task 1
随机推荐
@DateTimeFormat @JsonFormat 的区别
Dynamic coordinate transformation in ROS (dynamic parameter adjustment + dynamic coordinate transformation)
AI狂想|来这场大会,一起盘盘 AI 的新工具!
Stm32cubemx learning (I) USB HID bidirectional communication
Unity uses shaders to highlight the edges of ugu I pictures
Modelarts培训任务1
Principle and application of PWM
Test left shift real introduction
Nine project management issues that PM should understand
晶闸管,它是很重要的,交流控制器件
[Li Kou] curriculum series
MySQL index (easy to handle in one article)
Kotlin plug-ins kotlin Android extensions
Vs2019 MFC IP address control control inherits cipaddressctrl class redrawing
Right click the general solution of file rotation jam, refresh, white screen, flash back and desktop crash
RT thread studio learning (IX) TF Card File System
VS2019 MFC IP Address Control 控件繼承CIPAddressCtrl類重繪
Vs2019 MFC IP address Control Control inherit cipaddressctrl class redessine
Talk about vscode configuration settings JSON knows why (with a large number of configurations)
LeetCode34. 在排序数组中查找元素的第一个和最后一个位置