美文网首页人工智能互联网产品思考
AI PM视角|语言生成项目复盘

AI PM视角|语言生成项目复盘

作者: 在产品汪的路上 | 来源:发表于2017-12-20 23:33 被阅读29次

    本文主要想和大家简单聊一聊,作为产品经理,如何跟进一个探索性的项目,并且发挥产品经理的作用,让项目往正确的方向开展。

    简单介绍下项目背景,我们部门为某个领域的产品提供一个智能问答的聊天机器人服务,即为用户解答产品相关的问题。由于场景的特性,用户有和聊天机器人闲聊的需求,而我们的闲聊知识都是预设性,是固定的回复,而且数量有限,无法很好地满足用户闲聊(情感陪伴)的需求,所以我们尝试用“预设闲聊知识库+闲聊语言生成模型”来解决这个问题,所以这个语言生成的项目是想给做一个闲聊生成的模型。

    那面向闲聊的语言生成模型是什么?对于人工智能相关的项目,作为产品经理,首先要了解的是它的输入、输出是什么。对于该项目,模型的输入输出是:

    输入:我喜欢你,做我女友吧

    输出:我得先问问我妈妈同不同意

    我们将很多这样的“闲聊对”作为语料来训练模型,从而得到一个闲聊生成的模型,你给它一个输入,它会给你一个输出。当时,我们是基于Seq2sep模型来开发的,大家这个模型感兴趣,可以自己去网上找资料了解,我就不做介绍,其实我也不怎么懂,但这跟进项目影响不大。

    评估对于一个应用型的项目要不要做,至少要从两个角度来评估:一是技术,技术是否成熟?有没有开源项目?有没有现成的代码等等;其次是语料:有没有现成的语料,语料质量怎么样?若没有,怎么获得语料等等。在项目开展时,我们没有训练语料,大家可能会问,你们不是有个聊天机器人吗?用户与机器人的聊天日志不是作为训练语料吗?答案是不能的,因为我们的闲聊知识的回复是固定的,且知识数量很有限,所以聊天日志是一堆“固定的回复+默认的回复”的语料,拿来做训练得到的模型,其回复多样性肯定是很有限的,且不能解决我们闲聊知识没有覆盖的闲聊话题。所以,我们就网上找闲聊语料,看看有没有现成的语料,评估并从微博、论坛、豆瓣等社交平台抓取闲聊语料,最终得到几份不同来源的闲聊语料。

    有了闲聊语料,那么就可以训练模型了。其实当时负责该项目的工程师在这方面也是比较缺乏经验的,需要尝试、摸索,所以当时大家都很没底。在实践的过程中,我们发现有太多因素会影响模型的效果了,比如调参(不同的参数组合会有不一样的效果)、训练语料、训练时间、语料预处理方式等都会影响模型的效果,而且训练时间比较长,每一次的试验都是非常奢侈的。那么多的影响因素让我一时很混乱,后来想到要用科学的方法做试验。首先,确认一个迭代周期,当时工程师忽悠我说“训练时间越长,效果就好”,但我们结合实际是不可能训练太长的时间。我们通过训练不同迭代周期的模型,结合实际和效果,定了一个迭代周期。以后就在此迭代周期,改变其他影响因素来试验,分析试验结果。大家可以制定一个从“训练集、测试集、训练集处理方式、测试集处理方式、模型改进、参数、训练时间”等多个分析维度的试验记录表,用于后期的横向、纵向对比试验效果,找到最佳的训练方式得到效果最好的模型。制定这些规范之后,那么项目就进入比较有科学性的探索了。

    我们已经让项目可以有序地、科学地开展了,那我们如何评定模型的效果了?大家细想会发现,闲聊模型的效果很难评估,因为它是语言生成,不像分类、预判、识别的人工智能项目,它们可以准备有标准答案的测试集,通过测试分析正确率和召回率来评估模型,而语言生成是不确定的,你不能说模型的输出结果与测试集标注结果不一样,你就说它是错的。所以一般是通过人工的方式去看测试结果,可以从“连贯性、逻辑性、上下文关联”三个层面评估测试结果。同时,我们希望模型生成的结果是越多样就越好,那我们可以去统计测试结果(输出)的多样性来评估模型效果。准备一个能够合理、全面的测试集是非常重要的。如果测试集是片面的、局部的,测试结果不错,但你可能得到一个片面的模型;若测试结果不理想,你可以错过了一个好的模型(这里的片面或局部是相对于你想解决问题的范围而言)。对于该项目,我们的应用场景是闲聊,那么可以从“话题多样性、文本长度多样性、贴近对话场景”等方面来设计测试集。

    大概就想这么多,由于涉及到公司利益,有很多细节不能展开想。但是对于探索性的项目,我们还是可以从中总结出一些经验:

    1.制定规范,管理好期望。

    因为探索性的项目,有很多的不确定性,你不知道最终的效果怎么样,而且短期很难看到效果,所以不要急于想要达到最终目标。要制定科学性的实验规范,制定阶段性的目标,重视每一次实验,从中总结经验,不断优化模型。

    2.作为AI PM,要有一定的ai认知水平,结合应用场景评估模型效果。

    作为产品经理,还有一定的ai认知,比如说了解模型的输入输出是什么、有哪些影响因素;人工智能的本质就是经验主义,那么语料的质量决定了模型的上限,你就要把握评估语料质量。如果语料质量很差,那么怎么训练模型效果也不怎么好,此时你把重心把语料的收集上;对于模型的泛化能力、过拟合和欠拟合等概念的理解,会有助于你评估模型。其次是要结合应用场景来评估模型效果,比如这个项目,我们的应用场景是闲聊,那么模型能回复的话题越多越好,那不同的话题、不同长度的文本输入,模型的输出效果会怎么样。贴近应用场景,结合聊天日志,从中提取用户关心常聊的话题、平均输入长度等信息来设计测试集,即合理也不偏离应用场景的评估模型效果。

    相关文章

      网友评论

        本文标题:AI PM视角|语言生成项目复盘

        本文链接:https://www.haomeiwen.com/subject/csxowxtx.html