一、场景(用户交互):
- 用户发起新会话Session,初始化交互系统,等待 用户输入 或 传入任务文档;
- 用户实时输入,触发实时交互,设当前输入句子为S:
当前输入句子 S 长度未定,并且可能是动态字符流式输入:
因此可以用 Sliding Window滑动窗口, 提取 当前输入单词Word 的context。 - 当解析完一个完整的当前输入句子,即刻将其写入输入句子历史记录,
并初始化启动一个新的输入句子的开始。 - 用户主动结束,或设置超时自动断开当前会话Session, 将用户的ID/UID,
连同当前结束的会话信息,写入SessionHistory的会话历史记录。 - 设置周期性的批处理大数据任务,对所有用户的历史记录,进行周期性的统计更新有:
5.1 全库用户的Corpus(采样收集部分代表性的用户,建立全库用户Corpus)
每用户 的Corpus(每个用户的历史记录,过滤,抽样建立每用户的Corpus)
5.2 按时间段(当天/近一周/近15天/近1个月/近3个月/近半年/近1年/…/全量)
周期性更新每用户的时间段Corpus
5.3 按业务分(热门业务/用户兴趣业务/…)
…
二、Corpus语料库与DB数据库
World Knowledge世界常识库:OALD牛津高阶,行业词典,大英百科,Wikipedia,…
全局信息: Corpus语料库、行业通用数据库、领域库、用户自定义库;
语法信息:输入句子的历史记录;
句法信息:当前动态输入句子;
上下文信息:提取 当前输入词 的 词向量 时用到的长度设为 N 的滑动窗口长度范围的字符序列信息
三、Attention 与 Self-Attention:
Attention = f(Q, (K, V))
Attention 的 (K, V)是预训练时,
使用 Corpus语料库 或 World Knowledge世界常识库 统计训练得到。
Vocabulary是静态的,维度是定长的,Vocabulary尽可能收集到完整的样本空间。
Attention是词向量 与 Vocabulary 的每一个词计算Similarity相似度
Self-Attention 的 K, V 是预测时,使用 当前输入句子,以及输入句子的历史记录,动态训练的;
Vocabulary是动态的,维度变长的,Vocabulary尽可能收集到当前会话或全部会话的,输入句子历史记录
有一个处理Tips:
正像用 定长的滑动窗口 将 变长的动态输入句子 进行采样。
可将变长的Vocabulary维度,通过padding组织成定长的维度。
Self-Attention是当前输入句子的每一个词,与当前输入句子(Self)的每一个词计算Similarity相似度