计算机幽默识别技术解析
研究背景
某中心产品页面包含客户提问和回答的板块,与大多数社区访问的在线论坛一样,这些板块已成为幽默内容的沃土。例如,一个略微弯曲以适应香蕉形状的香蕉切片器引发了问题"如果香蕉向另一个方向弯曲怎么办?",而关于罐装独角兽肉的约100个问题几乎都是笑话。
虽然为创意自我表达提供新机会是构建在线社区的乐趣之一,但对于急于获取产品基本信息的客户以及使用问答数据改进推荐引擎的自动化系统来说,能够区分幽默和严肃问题将非常有用。
技术方法
在某机构计算机制造商年度信息检索会议SIGIR上,我们提出了一种在产品问答中检测幽默的新方法。该系统基于幽默理论的两个关键见解:
不一致性检测
幽默通常源于不一致性——对某个主题的两种概念之间的不匹配。例如,“这个能做浓缩咖啡吗?“应用于高端咖啡机时可能是合理的,但应用于瑞士军刀时可能是个笑话。
主观性分析
幽默通常具有主观语气,表明说话者的情感或情绪状态。例如,关于某智能显示器的幽默问题"这能帮我找到生命的意义吗?“比"它能连接音乐扬声器吗?“具有更主观的语气。
模型架构
系统的输入是从产品页面提取的问题和相关产品标题。标题和问题都传递给不一致性检测模块,该模块根据不一致性对它们进行评分;问题还传递给主观性模块,该模块根据主观性对其进行评分。
这些分数与普通的词嵌入(捕获输入语义信息的向量表示)连接后传递给分类器,由分类器最终决定问题是否幽默。
训练过程
在整体训练网络之前,我们在自动标记的数据上预训练不一致性和主观性模块:
-
不一致性模块:通过将产品名称与其他产品页面提取的问题配对来创建正例(不一致)。负例(一致)只需将产品名称与相关页面提取的问题配对,因为大多数问题都是严肃的。
-
主观性模块:从产品评论中提取正例(使用主观语言的例子),从卖家提供的产品描述中提取负例,后者往往更加客观。
数据集构建
预训练不一致性和主观性模块后,我们冻结其参数,并在更精心策划的数据集上整体训练网络。为了生成这个数据集,我们创建了一个简单界面,向众包工作者展示产品名称、产品图片和相关问题,并要求他们点击单选按钮评估问题是否幽默。
最初,每个问题由三名众包工作者评估,评估数量最多增加到七次,直到问题标签达成至少70%的一致。注释者之间的高度一致性(前三名注释者之间的Fleiss’s kappa为0.67,所有注释者之间的平均一致水平为89.5%)表明人们对幽默内容的判断具有高度一致性。
实验结果
为了测试产品偏差,我们创建了两个数据集:一个将每个正例(幽默)与从不同产品页面随机抽取的负例(严肃)配对;另一个将每个幽默例子与从同一产品页面抽取的严肃例子匹配。
在无偏数据集上,我们的模型达到了84.4%的准确率,比最佳基线模型降低了5.4%的错误率。在有偏数据集上,我们的模型准确率超过90.8%,这种改进来自于允许模型识别容易引发幽默问题的产品。
技术挑战
识别幽默是一个困难的人工智能挑战,但解决这一挑战将确保在线商店仍然是客户能够快速找到有用产品信息并在此过程中获得乐趣的地方。