导读:问答系统是自然语言处理领域一个很经典的问题,它用于回答人们以自然语言形式提出的问题,有着广泛的应用。例如其应用场景有:智能语音交互、在线客服、知识获取、情感类聊天等。常见的分类有:生成型、检索型问答系统;单轮问答、多轮问答系统;面向开放领域、特定领域的问答系统;完成任务型、纯聊天型的问答系统。本文介绍的主要是我们在检索型、面向特定领域的问答系统,在落地过程中的尝试与思考。我们首先会简要的回顾一下检索型问答系统的框架、学习过程、常见模型。
业界做法
问答系统的核心:构建知识库,识别用户意图,匹配知识库
咨询问答的业界做法:
- 从以往的数据中,通过数据挖掘方式(聚类、关键词),得业务中的高频问题
- 从将高频的问题提炼出标准问题
- 业务专家给标准问题配上标准答案
- 上线后持续挖掘用户问题,将新的问题加入到知识库中。
01
框架:
问题—>
问题分析后得到查询(query)—>
搜索引擎召回—>
模型排序后选出答案
一、学习方式
给定一个问题和一系列候选项,任务的目标是,找到能回答问题的正确的答案。
(1) 转化为二分类学习问题(pointwise)
输入:
输入是一个(问题,候选问题,标签)
一个问题,对应正确的答案,标签为1;对应其他的答案,标签为0
训练:
学习到一个函数,当给定一个问题和一个候选答案时,能正确的预测出答案。
预测:
给定一个问题和一系列候选答案,找到概率最高的答案,并将这个答案做为结果返回。
(2)转行为成对学习问题(pairwise即结合正例与负例)
输入是一个(问题,正确的答案,错误的答案)
训练(hinge loss):
训练过程是,要确保模型预测问题与正确答案的概率要大于问题与错误答案的概率,并且需要超过一个的阀值(m)。即h(q,c+)-h(q,c_)>m。
这里的概率,可以用