胡扯系列之私人AI助手系统的分析与设计( 二 )


图3 自适应流程
算法设计
算法设计部分,共分为两大部分,即分为:AI助手设计和自适应模块设计 。由于自适应模块修改自由度更高,其本质是对模型的优化优化,因此在算法设计当中主要阐述如何进行优化,其执行流程是如何进行的 。在AI助手部分,将阐述网络的设计与优化和基本架构 。

胡扯系列之私人AI助手系统的分析与设计

文章插图
AI助手的算法设计,在上一小节已经给出了其大致的设计结构,主要设计为两个网络的使用 。对于图(1)中的意图识别和对话聊天 。意图识别主要作为一个文本分类任务进行 。而在这方便将采用实现好的[3]来完成这部分工作 。一个非常高效的,基于词向量化的,用于文本分类的模型,通过它可以快速实现文本分类,同时简单的网络架构便于运算和权重调整 。此外在此模型还中涉及到了不少的用于提速和准确率的小技巧 。例如在加入了n-grams的思想,在最后输出概率时做了层次化操作,通过哈夫曼树将每一个类别标签放置在对应子节点中,将操作转换为层次化二分类任务,通过求解条件概率计算出完整概率 。此外还值得一提的是,作者在先提出了[4],后推出此模型 。
图4 FastText模型示意图
图5 层次化Softmat
聊天模块设计,这部分设计将暂时采用[5]架构进行网络模型搭建 。分别为与结构,示意如图(6)
图6 总体示意图
同时对应与均采用GRU[6]网络结构,与LSTM[7]相比在效果上类似,单元结构如图(7),(8)所示 。但是GRU在运算过程中不需要输入C0,相对而言降低了参数消耗,简明了网络结构,同时也方便在后序对机制进行修改 。当前在此模块中的模块中引入了Luong[8]机制 。
图7 LSTM单元结构图
图8 GRU单元结构图
基本运行流程如下,首先将用户语音转化为一个句子通过转化为词向量后送入,之后由生成句子 。得到由最后一层网络输出,通过逆向生成句子的形式,循环生成每一个对应时间步上的词 。词的生成由最后一次输出得到的概率生成 。例如:在一个句子中有10个词,数据集上有1万个词 。那么最后由将得到10*1W的概率矩阵,之后在对应时间步上组合成句 。值得一提的是,目前作者也考虑到在得到概率是需要通过函数进行计算,其计算量以及最后产生的参数量较大 。因此作者正在参考Yolo[9]算法,将概率问题转化为全回归问题,减少计算量,通过进位取舍的方式将连续预测数值转化为离散预测 。
自适应模块设计,在自适应模块中,采用了在第二小结提到的方案,采集与用户交互后以及在云端传入的新数据进行异步训练 。在一开始,将先通过基本语料,基本意图数据先对上述两个模块进行训练 。此训练作为预训练,一方面可以在开始阶段为用户提供服务,之后随着用户使用,关于用户本身的数据增加,以及其他类似用户数据进行进一步训练 。这一修改训练依赖于用户数据,在理论上将在与用户间的交互上更加适用用户,但需要足够的数据后进行批量处理 。因此在此基础上增加了在第二小结中提到的第三种权重自适应方案 。该方案主要有两大部分构成,基于强化学 。习思想的动态改变,还有基于GAN思想的动态改变 。两者的目的与设计目的不同 。大致关系如图(9)中所示 。
图9 二者关系
整个过程中,在开始初步阶段中,需要用户进行大量互动,给予反馈 。这个过程类似于人与人之间的认识过程,在认识初期需要双方不断给予反馈,不断提示对方 。在后期双方足够了解后,不在需要明显的暗示与说明 。在整个结构的GAN结构的作用在于理解用户的行为操作,在后期随着用户满意度上升,GAN对当前状态输出的权重将不断上调,同时降低用户额外的用于自适应的反馈 。GAN用于理解用户的个性,行为 。基于强化学习的结构对AI助手进行自适应训练,根据行为调整,在本文中用于调整权重 。用人作为比喻,GAN结构相当于,大脑复杂分析基于部分决策,强化学习部分相当于小脑和神经结构 。完成响应与调节,并且在这一这部分中,AI助手相当于Actor,等价于人的身体完成行为操作 。至此完成整个自适应策略,同理在这两个部分的初始化权重,依然可以考虑先进行预训练,具备一定能力后进行开放 。