【论文笔记】AliMe: seq2seq && IR

论文

AliMe Chat: A sequence to Sequence and Rerank based Chatbot Engine
讲的是如何做开放领域的聊天机器人

  • 这篇文章的主要核心思想是结合IR(信息检索)和 seq2seq(生成模型)去做

【论文笔记】AliMe: seq2seq && IR_第1张图片

  • 当用户来了一个问题之后,通过IR系统在QA知识库当中检索出来一个候选答案的集合: < q k b i , r i > i = 1 k ( k = 10 ) _{i=1}^k (k=10) <qkbi,ri>i=1k(k=10),其中 q k b i q_{kb_i} qkbi表示knowledge Base当中检索出来的问题, r i r_i ri代表对应问题的答案
  • 对原始问题 q q q和候选答案 r i r_i ri组成的问答对计算一个置信度 o ( r i ) = s ( q , r i ) o(r_i) = s(q, r_i) o(ri)=s(q,ri),其中计算置信度的函数 s s s,这是一个seq2seq模型做的rerank model,如下: s M e a n − P r o b = 1 n ∑ i = 1 n p ( y i = w i ∣ θ i ) , 其 中 θ i = { y 1 , y 2 , . . . , y i − 1 , c i } s^{Mean-Prob} = \frac{1}{n} \sum_{i=1}^n p(y_i=w_i| \theta_i) , 其中\theta_i=\{y_1,y_2,...,y_{i-1}, c_i\} sMeanProb=n1i=1np(yi=wiθi),θi={y1,y2,...,yi1,ci}
  • 挑选出最佳答案 r , o ( r ) = m a x ( o ( r i ) ) r, o(r)=max (o(r_i)) r,o(r)=max(o(ri)),如果 o ( r ) > = T o(r) >= T o(r)>=T 直接返回答案,否则返回生成模型生成的答案 r ′ r^\prime r

IR Model

  • 信息检索技术
  • 倒排索引
  • 检索的时候,去掉停用词,扩充同义词,然后去召回
  • 使用BM25计算检索相似性(注:这里我没有去看BM25算法,可以找论文去看看)

Generation based Model

  • 使用了常见的seq2seq模型:
    p ( y i ∣ θ i ) = p ( y i = w i ∣ y 1 , y 2 , . . . , y i − 1 , c i ) = f ( y i − 1 , s i − 1 , c i ) c i = ∑ j = 1 m α i j h j p(y_i | \theta_i) = p(y_i=w_i | y_1, y_2,...,y_{i-1}, c_i) = f(y_{i-1}, s_{i-1}, c_i) \\ c_i = \sum_{j=1}^m \alpha_{ij}h_j p(yiθi)=p(yi=wiy1,y2,...,yi1,ci)=f(yi1,si1,ci)ci=j=1mαijhj
  • backeting and padding:对问题和长度进行了bucket,使用了五个bucket: (5,5), (5,10),(10,15),(20,30),(45,60),第一个数字代表问题的长度,第二个数字代表答案的长度
  • softmax over sampled words: 使用了负采样的技术,512个随机的词作为负样本 + 一个正样本
  • beam search decoder:使用了beam search的技术

Attentive Seq2Seq Rerank Model

  • 使用上面的生成模型,去给IR生成的候选集打分,对用户输入的问题 q , r i q,r_i q,ri,其中 r i r_i ri可以视为单词的序列 w 1 , w 2 , . . . , w n w_1, w_2,...,w_n w1,w2,...,wn s M e a n − P r o b = 1 n ∑ i = 1 n p ( y i = w i ∣ θ i ) s^{Mean-Prob} = \frac{1}{n} \sum_{i=1}^n p(y_i = w_i | \theta_i) sMeanProb=n1i=1np(yi=wiθi)
  • 其本质上就是,计算生成每一个候选答案每个词的概率,进行概率平均,得到一个候选答案的得分,模型也不用再训练,直接使用上面的生成模型

思考

  • 其实本质上就是使用seq2seq+attention给IR生成的候选答案打分,同时因为生成模型本身生成的答案已经是概率最大的答案了,相当于打分都是使用seq2seq模型来做的,统一了IR评分和seq2seq的评分
  • 可以考虑使用Transformer来做生成模型
  • 可以考虑使用faiss做IR检索,或者使用bert做IR的检索
  • 目前还不清楚的技术是:
    • 如何将知识图谱集成到聊天机器人当中
    • 如何将完成任务型
    • 如何进行模板匹配,进行问答

你可能感兴趣的:(算法与数据结构)