「万微科技2016」从落地产品看NLP商业化突破,6.2万字报告剖析「智能写作」全貌( 二 )


抽取式标题思路及技术模型:源数据在内容中台完成可分发分析后 , 针对具体内容 , 进行系统化插件式的预处理 , 包括分句拼句、繁简转换、大小写归一等 , 并进行依存分析;而后将所有可选内容作质量评估 , 包括情感过滤、敏感过滤等通用过滤 , 以及规则判别等涉及表情、冗余字符处理与语法改写的二次基础优化;在召回模块中 , 通过实体识别+TF-IDF打分等方式来评估候选内容标题基础信息质量 , 并通过阈值召回来保证基础阅读体验 , 从而避免一些极端的BadCase;最后 , 针对候选标题直接做句子级别的点击/转化率预估 , 负责质感、相关性及最终的业务目标的优化 。 整个流程的基础模型是Bi-LSTM+Attention模型(输入层是PreTrain的WordEmbedding , 经过双向LSTM给到Attention层 , Dropout后全连接 , 套一个交叉熵的Sigmod , 输出判别) , 模型既可以对整句序列做双向语义的建模 , 同时可以通过注意力矩阵来对词级进行加权 。 在它的基础上 , 尝试添加过ELMo的Loss , 在模型的第一层双向LSTM进行基于ELMoLoss的PreTrain作为初始化结果 , 在线上指标也有小幅的提升 。 而在原文受限问题上 , 则通过深度模型来表征深层的语义 , 辅以更多的特征工程来表征用户能感知到的浅层信息 , 如属性、Topic等 。 在效率上 , 采用了谷歌的自注意力的机制来替换RNN-LSTM的循环结构 , 解决原文表征训练效率和长依赖问题 。
2大技术关键点——在标题创意度衡量上 , 重点对语义+词级的方向上来对点击/转化率做建模 , 同时辅以线上E&E选优的机制来持续获取标注对 , 并提升在线自动纠错的能力;在受限上 , 抽象了预处理和质量模型 , 来通用化处理文本创意内容的质控 , 独立了一个召回模块负责体验保障 。 并在模型结构上来对原文做独立表示 , 后又引入了TopicFeatureContext来做针对性控制 。 从而在降低「标题党」概率的同时提高内容相关性 。
生成式标题思路及技术模型:为了保证控制和泛化性 , 初期将标题剥离原文独立建模 , 通过Context衔接 , 这样能引入更多的非标数据 , 并在逐步完成积累的情况下 , 才开始尝试做原文的深度语义表示 。 除了尝试目标单独建模和结合原文建模的过程 , 在描述的泛化性方向也做了不少的尝试 , 比如尽可能地描述广而泛主题 。 诸如「魔都是轻易俘获人心的聚餐胜地」 , 因为只面向上海的商户 , 内容符合聚餐主题 , 泛化能力很强 , 但仍然不能作为一个普适的方案解决问题 。 这个功能主要应用的是RNN-Base的Seq2Seq模型的整体结构 。 Encoder端使用的数据包括基于原文和商户理解的主题表示和原文的双向语义表示 , 输出给注意力层 。 技术团队借鉴了NMT的一部分研究思想 , 调整了Transformer的结构 , 在原结构上额外引入了ContextEncoder , 并且在Encoder和Decoder端加入了Context的Attention层 , 来强化模型捕捉Context信息的能力 。 Decoder端生成文本时 , 通过注意力机制学习主题和原文表示的权重关系 , 从而生成文案 。
业务导向的文本生成目标:营销类文本的评价模式是业务相关的点击率 , 但是这与语言模型最终产出最小化Word级别的交叉熵Loss的目标不一致 , 所以在具体落实时 , 通过三个方向解决问题:第一是在Context中显式地标注抽取式模型的Label , 让模型学习到两者的差异;第二是在预测Decoder的BeamSearch计算概率的同时 , 添加一个打分控制函数;第三则是在训练的Decoder中 , 建立一个全局损失函数参与训练 , 类似于NMT中增加的CoverageLoss 。 考虑到稳定性和实现成本 , 最终尝试了第一和第二种方式 。
标题E&E机制:采用一种EpsilonGreedy策略来持续获取标注数据 , 并提升在线自动纠错的能力 。 这个策略类似经典的Epsilon算法 , 区别是引入创意状态 , 根据状态将Epsilon分成多级 。 目的是将比较好的创意可以分配给较大概率的流量 , 而不是均分 , 差的就淘汰 , 以此来提升效率 。 在初期优化阶段 , 这种方式发挥了很大的作用 。 具体根据标题和图片的历史表现和默认相比 , 将状态分成7档 , 从上到下效果表现依次递减 , 流量分配比例也依次降低 , 这样可以保证整个系统在样本有噪音的情况下实现线上纠偏 。


推荐阅读