伪标签与负样本帮助语音助手匹配技能与用户请求
让机器学习系统自行标注训练样本可提升性能表现。
语音助手现已拥有超过10万项技能。为提升使用便捷性,某机构开始采用名为动态仲裁的技术。对于其中数千项技能,用户不再需要记住特定技能名称或调用模式(如“请让X执行Y”),只需直接提出请求,动态仲裁系统就会自动寻找最适合处理该请求的技能。
自然,面对如此庞大的技能库,可能会有多个技能都能处理同一用户语句。例如“播放大象叫声”这一请求,可由AnimalSounds、AnimalNoises、ZooKeeper等多个技能处理。
多标签标注的挑战
在训练语音助手匹配语句与技能时,每个训练样本通常仅标注单一技能名称。这虽不阻碍系统学习将多个技能与每条语句关联,但确实增加了学习难度。若能在标注了多个相关技能的语句上进行训练,将有助于确保系统为每条语句找到最佳匹配。
然而,实现准确的多标签标注颇具挑战:标注人员需熟悉所有10万余项技能的功能特性,且技能库会随时间变化,单个技能功能也会更新,导致标注数据迅速过时。
创新解决方案
在某国际声学、语音与信号处理会议上,研究团队展示了一种自动化方法,可为动态仲裁系统的训练数据添加多个相关标签。
该方法首先利用已训练的动态仲裁系统为语句分配技能,将置信度高的技能分配作为额外标签(即伪标签)。其次,将错误分类实例(如被分配技能返回“我不知道该指令”的情况)作为负训练样本,使系统学会避免看似合理但不准确的分类。
最后采用自蒸馏技术:系统不仅基于标签进行训练,还结合其先前分类的置信度统计信息,防止仲裁系统对少数具有强输入输出关联的新样本过度敏感。
实验表明,结合这些技术使动态仲裁系统的F1分数提升1.25%,该指标综合考量了系统的误报率和漏报率。
系统架构解析
动态仲裁系统包含两个组件:Shortlister生成候选技能短列表,假设重排器(HypRank)根据用户账户设置和对话上下文更精确地排序候选技能。
有趣的是,伪标注对HypRank的性能提升优于Shortlister。训练过程中,Shortlister有时输出的技能列表不包含输入语句的正确标签,此类列表因缺乏基准真值而无法用于训练HypRank。
研究假设:当Shortlister在具有多标签的语句上训练时,其输出包含至少一个正确标签的概率增加,这意味着HypRank可获得更多训练样本,更好反映Shortlister输出的全貌。
方法论细节
实验中首先使用标准的单技能标注训练数据训练Shortlister。经过多个训练周期后,系统为每个训练样本生成伪标签:将连续r个周期内预测概率高于基准真值标签的前p个标签作为伪标签。经验证,设置p=2、r=4时改进效果最佳。
随后使用伪标注数据和负样本对网络进行微调。每个负样本均标注了被推断为错误的单一技能,微调过程中若网络高置信度选择负样本标签则会受到惩罚。
每个训练周期后还收集系统对训练集中所有样本分类的统计信息,这些统计信息与训练样本一起输入下一周期的模型。
将自蒸馏技术与伪标注、负样本相结合,相比基线系统实现了F1分数的进一步提升。未来工作将深入探索自蒸馏与伪标注的关联,并将这三种技术与标准半监督学习相结合,观察是否能带来更显著的性能提升。