传统的人机交互,主要通过键盘、鼠标、屏幕等方式进行,只追求便利和准确,无法理解和适应人的情绪或心境。而如果缺乏这种情感理解和表达能力,就很难指望计算机具有类似人一样的智能,也很难期望人机交互做到真正的和谐与自然。由于人类之间的沟通与交流是自然而富有感情的,因此,在人机交互的过程中,人们也很自然地期望计算机具有情感能力。情感计算(Affective Computting)就是要赋予计算机类似于人一样的观察、理解和生成各种情感特征的能力,最终使计算机像人一样能进行自然、亲切和生动的交互。 有关人类情感的深入研究,早在19世纪末就进行了。然而,除了科幻小说当中,过去极少有人将“感情”和无生命的机器联系在一起。只有到了现代,随着数字信息技术的发展,人们才开始设想让机器(计算机)也具备“感情”。从感知信号中提取情感特征,分析人的情感与各种感知信号的关联,是国际上近几年刚刚兴起的研究方向(图1)。
人的情绪与心境状态的变化总是伴随着某些生理特征或行为特征的起伏,它受到所处环境、文化背景、人的个性等一系列因素的影响。要让机器处理情感,我们首先必须探讨人与人之间的交互过程。那么人是如何表达情感,又如何精确地觉察到它们的呢?人们通过一系列的面部表情、肢体动作和语音来表达情感,又通过视觉、听觉、触觉来感知情感的变化。视觉察觉则主要通过面部表情、姿态来进行;语音、音乐则是主要的听觉途径;触觉则包括对爱抚、冲击、汗液分泌、心跳等现象的处理。
情感计算研究的重点就在于通过各种传感器获取由人的情感所引起的生理及行为特征信号,建立“情感模型”,从而创建感知、识别和理解人类情感的能力,并能针对用户的情感做出智能、灵敏、友好反应的个人计算系统,缩短人机之间的距离,营造真正和谐的人机环境(图2)。 在生活中,人们很难保持一种僵硬的脸部表情,通过脸部表情来体现情感是人们常用的较自然的表现方式,其情感表现区域主要包括嘴、脸颊、眼睛、眉毛和前额等。人在表达情感时,只稍许改变一下面部的局部特征(譬如皱一下眉毛),便能反映一种心态。在1972年,著名的学者Ekman提出了脸部情感的表达方法(脸部运动编码系统FACS)。通过不同编码和运动单元的组合,即可以在脸部形成复杂的表情变化,譬如幸福、愤怒、悲伤等。该成果已经被大多数研究人员所接受,并被应用在人脸表情的自动识别与合成(图3)。
随着计算机技术的飞速发展,为了满足通信的需要,人们进一步将人脸识别和合成的工作融入到通信编码中。最典型的便是MPEG4 V2视觉标准,其中定义了3个重要的参数集:人脸定义参数、人脸内插变换和人脸动画参数。表情参数中具体数值的大小代表人激动的程度,可以组合多种表情以模拟混合表情。
在目前的人脸表情处理技术中,多侧重于对三维图像的更加细致的描述和建模。通常采用复杂的纹理和较细致的图形变换算法,达到生动的情感表达效果。在此基础上,不同的算法形成了不同水平的应用系统(图4,图5) 人的姿态一般伴随着交互过程而发生变化,它们表达着一些信息。例如手势的加强通常反映一种强调的心态,身体某一部位不停地摆动,则通常具有情绪紧张的倾向。相对于语音和人脸表情变化来说,姿态变化的规律性较难获取,但由于人的姿态变化会使表述更加生动,因而人们依然对其表示了强烈的关注。
科学家针对肢体运动,专门设计了一系列运动和身体信息捕获设备,例如运动捕获仪、数据手套、智能座椅等。国外一些著名的大学和跨国公司,例如麻省理工学院、IBM等则在这些设备的基础上构筑了智能空间。同时也有人将智能座椅应用于汽车的驾座上,用于动态监测驾驶人员的情绪状态,并提出适时警告。意大利的一些科学家还通过一系列的姿态分析,对办公室的工作人员进行情感自动分析,设计出更舒适的办公环境。 在人类的交互过程中,语音是人们最直接的交流通道,人们通过语音能够明显地感受到对方的情绪变化,例如通过特殊的语气词、语调发生变化等等。在人们通电话时,虽然彼此看不到,但能从语气中感觉到对方的情绪变化。例如同样一句话“你真行”,在运用不同语气时,可以使之成为一句赞赏的话,也可以使之成为讽刺或妒忌的话。
目前,国际上对情感语音的研究主要侧重于情感的声学特征的分析这一方面。一般来说,语音中的情感特征往往通过语音韵律的变化表现出来。例如,当一个人发怒的时候,讲话的速率会变快,音量会变大,音调会变高等,同时一些音素特征(共振峰、声道截面函数等)也能反映情感的变化。中国科学院自动化研究所模式识别国家重点实验室的专家们针对语言中的焦点现象,首先提出了情感焦点生成模型。这为语音合成中情感状态的自动预测提供了依据,结合高质量的声学模型,使得情感语音合成和识别率先达到了实际应用水平。 虽然人脸、姿态和语音等均能独立地表示一定的情感,但人在相互交流的过程中却总是通过上面信息的综合表现来进行的。所以,惟有实现多通道的人机界面,才是人与计算机最为自然的交互方式,它集自然语言、语音、手语、人脸、唇读、头势、体势等多种交流通道为一体,并对这些通道信息进行编码、压缩、集成和融合,集中处理图像、音频、视频、文本等多媒体信息。
目前,多模态技术本身也正在成为人机交互的研究热点,而情感计算融合多模态处理技术,则可以实现情感的多特征融合,能够有力地提高情感计算的研究深度,并促使出现高质量、更和谐的人机交互系统。
在多模态情感计算研究中,一个很重要的研究分支就是情感机器人和情感虚拟人的研究。美国麻省理工学院、日本东京科技大学、美国卡内基·梅隆大学均在此领域做出了较好的演示系统。目前中科院自动化所模式识别国家重点实验室已将情感处理融入到了他们已有的语音和人脸的多模态交互平台中,使其结合情感语音合成、人脸建模、视位模型等一系列前沿技术,构筑了栩栩如生的情感虚拟头像,并正在积极转向嵌入式平台和游戏平台等实际应用(图6)。 情感状态的识别和理解,则是赋予计算机理解情感并做出恰如其分反应的关键步骤。这个步骤通常包括从人的情感信息中提取用于识别的特征,例如从一张笑脸中辨别出眉毛等,接着让计算机学习这些特征以便日后能够准确地识别其情感。
为了使计算机更好地完成情感识别任务,科学家已经对人类的情感状态进行了合理而清晰的分类,提出了几类基本情感。目前,在情感识别和理解的方法上运用了模式识别、人工智能、语音和图像技术的大量研究成果。例如:在情感语音的声学分析的基础上,运用线性统计方法和神经网络模型,实现了基于语音的情感识别原型;通过对面部运动区域进行编码,采用HMM等不同模型,建立了面部情感特征的识别方法;通过对人姿态和运动的分析,探索肢体运动的情感类别等等。
不过,受到情感信息的捕获技术的影响,并缺乏大规模的情感数据资源,有关多特征融合的情感理解模型的研究还有待深入。随着未来的技术进展,还将提出更有效的机器学习机制。 情感计算与智能交互技术试图在人和计算机之间建立精确的自然交互方式,将会是计算技术向人类社会全面渗透的重要手段。未来随着技术的不断突破,情感计算的应用势在必行,其对未来日常生活的影响将是方方面面的,目前我们可以预见的有:
情感计算将有效地改变过去计算机呆板的交互服务,提高人机交互的亲切性和准确性。一个拥有情感能力的计算机,能够对人类的情感进行获取、分类、识别和响应,进而帮助使用者获得高效而又亲切的感觉,并有效减轻人们使用电脑的挫败感,甚至帮助人们便于理解自己和他人的情感世界。
它还能帮助我们增加使用设备的安全性(例如当采用此类技术的系统探测到司机精力不集中时可以及时改变车的状态和反应)、使经验人性化、使计算机作为媒介进行学习的功能达到最佳化,并从我们身上收集反馈信息。例如,一个研究项目在汽车中用电脑来测量驾车者感受到的压力水平,以帮助解决所谓驾驶者的“道路狂暴症”问题。
情感计算和相关研究还能够给涉及电子商务领域的企业带来实惠。已经有研究显示,不同的图像可以唤起人类不同的情感。例如,蛇、蜘蛛和枪的能引起恐惧,而有大量美元现金和金块的则可以使人产生非常强烈的积极反应。如果购物网站和股票交易网站在设计时研究和考虑这些因素的意义,将对客流量的上升产生非常积极的影响。
在信息家电和智能仪器中,增加自动感知人们的情绪状态的功能,可以提供更好的服务。
在信息检索应用中,通过情感分析的概念解析功能,可以提高智能信息检索的精度和效率。
在远程教育平台中,情感计算技术的应用能增加教学效果。
利用多模式的情感交互技术,可以构筑更贴近人们生活的智能空间或虚拟场景等等。
情感计算还能应用在机器人、智能玩具、游戏等相关产业中,以构筑更加拟人化的风格和更加逼真的场景。 由于缺乏较大规模的情感数据资源,情感计算的发展受到一定的限制,而且多局限在语音、身体语言等具体而零散的研究领域,仅仅依靠这些还难以准确地推断和生成一个人的情感状态,并进行有效的情感交互。目前,科学家们正在积极地探索多特征融合的情感计算理论模型。很多人认为,今后几年情感计算将在这些方面需要取得突破:
更加细致和准确的情感信息获取、描述及参数化建模。
多模态的情感识别、理解和表达(图像、语音、生理特征等)。
自然场景对生理和行为特征的影响。
更加适用的机器学习算法。
海量的情感数据资源库。 不久前,为了推动我国在这一领域的研究,探讨情感计算和智能交互技术的发展动态与趋势,促进我国科研人员在此领域的交流与合作,中国科学院自动化研究所、中国自动化学会、中国计算机学会、中国图象图形学会、中国中文信息学会、国家自然科学基金委员会和国家863计划计算机软硬件技术主题作为主办单位,在北京主办了第一届中国情感计算与智能交互学术会议。
事实证明,情感计算的概念尽管诞生不久,但已受到学术界和产业界的高度重视,相关领域的研究和应用正方兴未艾,国家自然科学基金委也将其列入重点项目的指南中。值得注意的是,近几年来,与情感计算有密切关系的普适计算和可穿戴式计算机的研究也已获得了蓬勃发展,并同样得到了国家的大力支持。这为情感信息的实时获取提供了极大的便利条件,也为情感计算在国内的发展提供了更好的发展平台。
零基础如何学好python,作为一个学了python两三年的过来人,我当初也是从0开始一路摸索过来的,这里给想学python的小白们分享一点我的学习心得。
1《笨方法学Python》、《流畅的python》、《EffectivePython:编写高质量Python代码的59个有效方法》、《PythonCookbook》。
2《利用Python进行数据分析(原书第2版)》、《Python数据科学手册(图灵出品)》。
自然语言处理技术有标记化、删除停止词、提取主干、单词嵌入、词频-逆文档频率、主题建模、情感分析。
1、标记化(Tokenization)
标记化指的是将文本切分为句子或单词,在此过程中,我们也会丢弃标点符号及多余的符号。
这个步骤并非看起来那么简单。举个例子:纽约(New York)一词被拆成了两个标记,但纽约是个代名词,在我们的分析中可能会很重要,因此最好只保留一个标记。在这个步骤中要注意这一点。
标记化的好处在于,会将文本转化为更易于转成原始数字的格式,更合适实际处理。这也是文本数据分析显而易见的第一步。
2、删除停止词(Stop Words Removal)
在标记化之后,下一步自然是删除停止词。这一步的目标与上一步类似,也是将文本数据转化为更容易处理的格式。这一步会删除英语中常见的介词,如“and”、“the”、“a”等。之后在分析数据时,我们就能消除干扰,专注于具有实际意义的单词了。
通过比对定义列表中的单词来执行停止词的删除非常轻松。要注意的重要问题是:并没有普天皆适的停止词列表。因此这个列表一般是从零开始创建,并针对所要处理的应用执行了定制。
3、提取主干(Stemming)
清理文本数据的另一个技术就是提取主干。这种方法是将单词还原为词根形式,目的是将因上下文拼写略有不同,但含义相同的单词缩减为相同的标记来统一处理。例如:考虑在句子中使用单词“cook”的情况。
cook的所有形式含义都基本相同,因此理论上,在分析时我们可以将其映射到同一个标记上。在本例中,我们将cook、cooks、cooked和cooking全部标记为“cook”,这将大大简化我们对文本数据的进一步分析。
4、单词嵌入(Word Embeddings)
从上面三个步骤中,我们已经将数据清理完毕,现在可以将其转化为可用于实际处理的格式。
单词嵌入是一种将单词以数字表达的方式,这样一来,具有相似含义的单词表达也会相似。如今的单词嵌入是将单个单词表示为预定义向量空间中的实值向量。
所有单词的向量长度相同,只是值有差异。两个单词的向量之间的距离代表着其语义的接近程度。举个例子:单词“cook”(烹饪)和“bake”(烘焙)的向量就非常接近,但单词“football”(足球)和“bake”(烘焙)的向量则完全不同。
有一种创建单词嵌入的常见方法被称为GloVe,它代表着“全局向量”。GloVe捕获文本语料库的全局统计信息和局部统计信息,以创建单词向量。
GloVe使用了所谓的共现矩阵(co-occurrence matrix)。共现矩阵表示每对单词在语料库里一起出现的频率。
5、词频-逆文档频率(Term Frequency-Inverse Document Frequency,TF-IDF)
术语“词频-逆文档频率”(常被称为TF-IDF)是一种加权因子,经常在诸如信息检索及文本挖掘类的应用中使用。TF-IDF会使用统计数据来衡量某个单词对特定文档的重要程度。
TF-IDF可以达到完美平衡,并考虑到目标单词的本地与全局统计水平。在文档中出现越频繁的单词,其权重也越高,不过前提是这个单词在整个文档中出现并不频繁。
由于其强大程度,TF-IDF技术通常被搜索引擎用在指定关键字输入时,评判某文档相关性的评分与排名上。在数据科学中,我们可以通过这种技术,了解文本数据中哪些单词和相关信息更为重要。
6、主题建模(Topic Modeling)
在自然语言处理中,主题建模是从文本数据或文档的集合中提取主要话题的过程。本质来讲,由于我们将大量文本数据缩减为数量较少的主题,这是一种降维形式。主题建模在许多数据科学场景中都很有用。
7、情感分析(Sentiment Analysis)
情感分析是一种自然语言分析技术,旨在识别与提取文本数据中的主观信息。与主题建模类似,情感分析可以将非结构化的文本转为嵌入在数据中的信息基本摘要。
大多情感分析技术都属于以下两个类别之一:基于规则和机器学习的方法。基于规则的方法需要根据简单的步骤来获得结果。在进行了一些类似标记化、停止词消除、主干提取等预处理步骤后,基于规则的方法可能会遵从以下步骤:
(1)对于不同的情感,定义单词列表。例如,如果我们打算定义某个段落是消极的还是积极的,可能要为负面情感定义“坏的”和“可怕的”等单词,为正面情感定义“棒极了”和“惊人的”等单词。
(2)浏览文本,分别计算正面与负面情感单词的数量。
(3)如果标记为正面情感的单词数量比负面的多,则文本情绪是积极的,反之亦然。基于规则的方法在情感分析用于获取大致含义时效果很好。但是,如今最先进的系统通常会使用深度学习,或者至少经典的机器学习技术让整个过程自动化。
通过深度学习技术,将情感分析按照分类问题来建模。将文本数据编码到一个嵌入空间中(与上述的单词嵌入类似),这是功能提取的一种形式。之后将这些功能传递到分类模型,对文本情绪进行分类。
基于用户行为分析建立用户偏好模型
我们经常将个性化推荐的思想简单地抽象为:通过用户的行为推测出用户的兴趣,从而给用户推荐满足他们兴趣的物品。那我们其实就是要通过用户行为分析建立一个用户偏好(偏好即兴趣)模型,模型中包含各个用户的一个或更多个偏好。
插叙一段
像「用户行为」,「用户兴趣」这样的词,大多数人都有一个默认的感知,甚至对于这种词的理解可能已固化为常识,所以我很少见到有文章使用这些词时解释它们。我感觉涉及到算法模型时,对这些词的不加限定的宽泛认知就容易影响对算法模型的深入理解,会导致感知模糊却不自知。因为不同人对这些词的基本理解可能一致,但是拓展理解各不相同。本文会作出限定解释,且本文所谈用户行为都是指网络(可以是电信网络,互联网)上的行为。
概念解释
实体域
当我们想基于用户行为分析来建立用户偏好模型时,我们必须把用户行为和兴趣主题限定在一个实体域上。个性化推荐落实在具体的推荐中都是在某个实体域的推荐。比如对于阅读网站,实体域包括所有的图书,我们可以称之为图书域。其他还有,个性化音乐推荐,个性化**推荐,个性化资讯推荐等。
用户行为
用户在门户网站点击资讯,评论资讯,在社交网站发布状态,评论状态,在电商网站浏览商品,购买商品,点评商品,以及在其他类型网站的种种行为都可是用户行为。本文所指的用户行为都是指用户在某实体域上的行为。比如用户在图书域产生的行为有阅读,购买,评分,评论等。
兴趣主题
用户的兴趣维度,同样是限定在某实体域的兴趣,通常可以以标签的形式来表示。比如,对于图书阅读,兴趣主题可以是「悬疑」,「科技」,「情感」等等分类标签。值得一提的是,兴趣主题,只是从用户行为中抽象出来的兴趣维度,并无统一标准。比如qq阅读和豆瓣阅读的图书分类标签大不一样。而兴趣维度的粒度也不固定,就像门户网站有「新闻」,「体育」,「娱乐」等一级分类,而新闻下有「国内」,「社会」,「国际」二级分类,娱乐下有「明星」,「星座」,「八卦」二级分类。我们选取什么粒度的兴趣空间取决于我们对用户偏好模型的要求。
兴趣空间
在同一层次上兴趣维度的集合,比如豆瓣阅读中,可以用「新上架」,「热门」,「特价」,「免费」来构成一个兴趣空间(当然,如果使用这个兴趣空间来表征用户的兴趣,就太粗了,这里只是假设),也可以用「小说」,「幻想」,「计算机」,「科技」,「历史」·····「美食」构成一个兴趣空间。这是两种不同的分类维度。如果将「新上架」也加入到后者集合里,就显然有些莫名其妙。值得一提是,这也并非不可能,这取决于一个如何看待这个集合的问题,如果不把它看作基于内容的分类,而是图书标签库,那么也是可行的,甚至利于建立更好地模型。本文后面我有提到。
用户行为数据
项亮在他的《推荐系统实践》的21节有详细介绍。通常在经过对行为日志的汇总处理后生成的比较容易理解的数据就是一份描述用户行为的会话日志。这种日志记录了用户的各种行为,比如在图书阅读app中这些行为主要包括点击,试读,购买,阅读(在本地app中,阅读行为有可能追踪不到),评分,评论。
建立用户偏好模型
基于用户行为分析建立用户偏好模型的核心工作就是:将用户的行为转换为用户的偏好。
我们采用矩阵运算的思维方式,以图书阅读为例说明。
下图表示用户(user)集合:
下图表示图书(item)集合:
那么用户的行为矩阵可以表达为:
行表示用户,列表示图书,我们暂只考虑图书的购买行为,1表示用户看过该图书,0表示用户没有看过该图书。
如何将上述用户行为矩阵转化为用户兴趣矩阵(即行代表用户,列代表兴趣维度),一种显著的方法是我们先确定图书与兴趣维度的对应关系矩阵。而这个的前提是我们确定了使用何种兴趣空间。一种常见的方式是专家给出一些样本的分类结果,也就是一般意义的训练数据,然后通过分类算法,得到分类模型,然后应用到其余数据的分类问题当中,解决其余大量数据的分类问题。这种分类的特点是一本图书只被标记为一种类别,假如有3个类别,
那么图书-兴趣矩阵为:
那么用户行为矩阵转换为用户兴趣矩阵的运算公式即可表示为下图,行表示用户,列表示兴趣,算出的矩阵再经过归一化后,每个值就代表某个用户在某个兴趣的偏好权重。
选择这样的兴趣空间的局限显而易见:一本图书只能属于一个兴趣维度。实际情况中,一本图书通常不只属于某个分类,并且当图书的数据巨大时,寄希望于编辑分类可能会越来越难以维持,所以通常是由用户主动给图书添加标签,或者机器基于内容,提取关键词。但是这种形式得到的标签集会存在同义,生僻,维度过多等情况,需要经过标签清洗的重要工作。前面已经看到兴趣空间的选择真的是非常重要,直接影响所得到用户的兴趣矩阵。所以同样的方法都得到了用户偏好,但是好不好用,就跟这部分工作有关了。
用户行为加权
上面展示的用户行为矩阵示例是一个非常简单的,直接可以从数据库里提取的例子。而实际中在数据能够支撑的情况下,我们不可能只考虑一种行为。为了获得更合理的行为矩阵,我们就需要进行行为加权。比如,A1表示用户点击的行为矩阵,A2表示购买的行为矩阵,A3表示评分的行为矩阵,那么加权矩阵就是:
至于各矩阵的权重跟我们建立用户偏好模型的目的有关,如果我们更希望找准用户的品味偏好,那么权重可能是:a1 < a2 < a3;如果我们更希望用户购买,那么权重可能是:a1 < a3 < a2。
其他用户行为分析方法
上面介绍的方法也算是一种主流的方法。但是从上面介绍的「兴趣主题」,「兴趣空间」也可以看出作出好的分类并不容易,分类粒度,分类维度等都不好控制,用户打标签也需要复杂的标签清洗工作。在图书,**这样的实体域,我们还可以通过类别给用户推荐喜欢的物品,而在个性化资讯推荐领域(这里仅举个例子,资讯推荐应该有其特殊之处),我们不见得能通过类别推荐用户喜欢的资讯,甚至用户本身也不在意类别。我们并不需要显式地构建物品-兴趣对应关系矩阵,也可以将用户和所喜欢类别的物品关联起来。这就涉及到隐含语义分析技术。这个部分会日后在此文补充。
小总结
以上可以看出基于用户行为分析的用户偏好建模的常规方法非常简单明了。事实上也的确如此,在使用这些方法或者思想编写程序计算都不是什么难事。而实际上,我们遇到的问题却并非是方法本身,而是数据本身。数据方面的两大问题是稀疏和长尾分布。通常有行为数据用户很少,而用户的行为对象也集中在不多的物品上。方法易学,而数据问题只能在实战中才能深刻体会,才会发现主要的精力和难点都在解决数据的稀疏和长尾上。希望日后能结合实际问题写写解决数据问题的文章。
此外,上面虽然是用矩阵运算的思想讲述,但我在实际项目中发现其运算的本质其实是对用户行为的统计。所以在实战中,不一定要先建矩阵,再做计算,直接在数据库里使用sql计算非常方便。
人们期盼着能拥有并使用更为人性化和智能化的计算机。在人机交互中,从人操作计算机,变为计算机辅助人;从人围着计算机转,变为计算机围着人转;计算机从认知型,变为直觉型。显然,为实现这些转变,人机交互中的计算机应具有情感能力。情感计算研究就是试图创建一种能感知、识别和理解人的情感,并能针对人的情感做出智能、灵敏、友好反应的计算系统。
情感被用来表示各种不同的内心体验(如情绪、心境和偏好),情绪被用来表示非常短暂但强烈的内心体验,而心境或状态则被用来描述强度低但持久的内心体验。情感是人与环境之间某种关系的维持或改变,当客观事物或情境与人的需要和愿望符合时会引起人积极肯定的情感,而不符合时则会引起人消极否定的情感。
情感具有三种成分:⑴主观体验,即个体对不同情感状态的自我感受;⑵外部表现,即表情,在情感状态发生时身体各部分的动作量化形式。表情包括面部表情(面部肌肉变化所组成的模式)、姿态表情(身体其他部分的表情动作)和语调表情(言语的声调、节奏、速度等方面的变化);⑶生理唤醒,即情感产生的生理反应,是一种生理的激活水平,具有不同的反应模式。
概括而言,情感的重要作用主要表现在四个方面:情感是人适应生存的心理工具,能激发心理活动和行为的动机,是心理活动的组织者,也是人际通信交流的重要手段。从生物进化的角度我们可以把人的情绪分为基本情绪和复杂情绪。基本情绪是先天的,具有独立的神经生理机制、内部体验和外部表现,以及不同的适应功能。人有五种基本情绪,它们分别是当前目标取得进展时的快乐,自我保护的目标受到威胁时的焦虑,当前目标不能实现时的悲伤,当前目标受挫或遭遇阻碍时的愤怒,以及与味觉(味道)目标相违背的厌恶。而复杂情绪则是由基本情绪的不同组合派生出来的。
情感测量包括对情感维度、表情和生理指标三种成分的测量。例如,我们要确定一个人的焦虑水平,可以使用问卷测量其主观感受,通过记录和分析面部肌肉活动测量其面部表情,并用血压计测量血压,对血液样本进行化验,检测血液中肾上腺素水平等。
确定情感维度对情感测量有重要意义,因为只有确定了情感维度,才能对情感体验做出较为准确的评估。情感维度具有两极性,例如,情感的激动性可分为激动和平静两极,激动指的是一种强烈的、外显的情感状态,而平静指的是一种平稳安静的情感状态。心理学的情感维度理论认为,几个维度组成的空间包括了人类所有的情感。但是,情感究竟是二维,三维,还是四维,研究者们并未达成共识。情感的二维理论认为,情感有两个重要维度:⑴愉悦度(也有人提出用趋近-逃避来代替愉悦度);⑵激活度,即与情感状态相联系的机体能量的程度。研究发现,惊反射可用做测量愉悦度的生理指标,而皮肤电反应可用做测量唤醒度的生理指标。
在人机交互研究中已使用过很多种生理指标,例如,皮质醇水平、心率、血压、呼吸、皮肤电活动、掌汗、瞳孔直径、事件相关电位、脑电EEG等。生理指标的记录需要特定的设备和技术,在进行测量时,研究者有时很难分离各种混淆因素对所记录的生理指标的影响。情感计算研究的内容包括三维空间中动态情感信息的实时获取与建模,基于多模态和动态时序特征的情感识别与理解,及其信息融合的理论与方法,情感的自动生成理论及面向多模态的情感表达,以及基于生理和行为特征的大规模动态情感数据资源库的建立等。
欧洲和美国的各大信息技术实验室正加紧进行情感计算系统的研究。剑桥大学、麻省理工学院、飞利浦公司等通过实施“环境智能”、“环境识别”、“智能家庭”等科研项目来开辟这一领域。例如,麻省理工学院媒体实验室的情感计算小组研制的情感计算系统,通过记录人面部表情的摄像机和连接在人身体上的生物传感器来收集数据,然后由一个“情感助理”来调节程序以识别人的情感。如果你对电视讲座的一段内容表现出困惑,情感助理会重放该片段或者给予解释。麻省理工学院“氧工程”的研究人员和比利时IMEC的一个工作小组认为,开发出一种整合各种应用技术的“瑞士军刀”可能是提供移动情感计算服务的关键。而目前国内的情感计算研究重点在于,通过各种传感器获取由人的情感所引起的生理及行为特征信号,建立“情感模型”,从而创建个人情感计算系统。研究内容主要包括脸部表情处理、情感计算建模方法、情感语音处理、姿态处理、情感分析、自然人机界面、情感机器人等。
情境化是人机交互研究中的新热点。自然和谐的智能化的人机界面的沟通能力特征包括:⑴自然沟通:能看,能听,能说,能触摸;⑵主动沟通:有预期,会提问,并及时调整;⑶有效沟通:对情境的变化敏感,理解用户的情绪和意图,对不同用户、不同环境、不同任务给予不同反馈和支持。而实现这些特征在很大程度上依赖于心理科学和认知科学对人的智能和情感研究所取得的新进展。我们需要知道人是如何感知环境的,人会产生什么样的情感和意图,人如何做出恰当的反应,从而帮助计算机正确感知环境,理解用户的情感和意图,并做出合适反应。因此,人机界面的“智能”不仅应有高的认知智力,也应有高的情绪智力,从而有效地解决人机交互中的情境感知问题、情感与意图的产生与理解问题,以及反应应对问题。
显然,情感交流是一个复杂的过程,不仅受时间、地点、环境、人物对象和经历的影响,而且有表情、语言、动作或身体的接触。在人机交互中,计算机需要捕捉关键信息,觉察人的情感变化,形成预期,进行调整,并做出反应。例如,通过对不同类型的用户建模(例如,操作方式、表情特点、态度喜好、认知风格、知识背景等),以识别用户的情感状态,利用有效的线索选择合适的用户模型(例如,根据可能的用户模型主动提供相应有效信息的预期),并以适合当前类型用户的方式呈现信息(例如,呈现方式、操作方式、与知识背景有关的决策支持等);在对当前的操作做出即时反馈的同时,还要对情感变化背后的意图形成新的预期,并激活相应的数据库,及时主动地提供用户需要的新信息。
情感计算是一个高度综合化的技术领域。通过计算科学与心理科学、认知科学的结合,研究人与人交互、人与计算机交互过程中的情感特点,设计具有情感反馈的人机交互环境,将有可能实现人与计算机的情感交互。迄今为止,有关研究已在人脸表情、姿态分析、语音的情感识别和表达方面取得了一定的进展。
目前情感计算研究面临的挑战仍是多方面的:⑴情感信息的获取与建模,例如,细致和准确的情感信息获取、描述及参数化建模,海量的情感数据资源库,多特征融合的情感计算理论模型;⑵情感识别与理解,例如,多模态的情感识别和理解;⑶情感表达,例如,多模态的情感表达(图像、语音、生理特征等),自然场景对生理和行为特征的影响;⑷自然和谐的人性化和智能化的人机交互的实现,例如,情感计算系统需要将大量广泛分布的数据整合,然后再以个性化的方式呈现给每个用户。
情感计算有广泛的应用前景。计算机通过对人类的情感进行获取、分类、识别和响应,进而帮助使用者获得高效而又亲切的感觉,并有效减轻人们使用电脑的挫败感,甚至帮助人们理解自己和他人的情感世界。计算机的情感化设计能帮助我们增加使用设备的安全性,使经验人性化,使计算机作为媒介进行学习的功能达到最佳化。在信息检索中,通过情感分析的概念解析功能,可以提高智能信息检索的精度和效率。
展望现代科技的潜力,我们预期在未来的世界中将可能会充满运作良好、操作容易、甚至具有情感特点的计算机。
1、引言
贝叶斯方法是一个历史悠久,朴素贝叶斯中的朴素一词的来源就是假设各特征之间相互独立。这一假设使得朴素贝叶斯算法变得简单,但有时会牺牲一定的分类准确率。当然有着坚实的理论基础的方法,同时处理很多问题时直接而又高效,很多高级自然语言处理模型也可以从它演化而来。因此,学习贝叶斯方法,是研究自然语言处理问题的一个非常好的切入口。
2、贝叶斯公式
贝叶斯公式其实很简单,但是很常用,就一行:
而我们二分类问题的最终目的就是要判断 P(“属于某类”|“具有某特征”) 是否大于1/2就够了。贝叶斯方法把计算“具有某特征的条件下属于某类”的概率转换成需要计算“属于某类的条件下具有某特征”的概率,而后者获取方法就简单多了,我们只需要找到一些包含已知特征标签的样本,即可进行训练。而样本的类别标签都是明确的,所以贝叶斯方法在机器学习里属于有监督学习方法。
这里再补充一下,一般『先验概率』、『后验概率』是相对出现的,比如 P(Y)与 P(Y|X) 是关于 Y的先验概率与后验概率, P(X)与 P(X|Y)是关于 X的先验概率与后验概率。
4、垃圾邮件识别
我们可以通过一个例子来对邮件进行分类,识别垃圾邮件和普通邮件,如果我们选择使用朴素贝叶斯分类器,那目标就是判断 P(“垃圾邮件”|“具有某特征”) 是否大于1/2。现在假设我们有垃圾邮件和正常邮件各1万封作为训练集。需要判断以下这个邮件是否属于垃圾邮件:
也就是判断概率 P(“垃圾邮件”|“我司可办理正规发票(保真)17%增值税发票点数优惠!”)是否大于1/2。我们不难发现:通过上述的理解,也就是将其转换成的这个概率,计算的方法:就是写个计数器,然后+1 +1 +1统计出所有垃圾邮件和正常邮件中出现这句话的次数啊。也就是:
于是当我们接触到了中文NLP中,其中最为重要的技术之一:分词!!!也就是把一整句话拆分成更细粒度的词语来进行表示。另外,分词之后去除标点符号、数字甚至无关成分(停用词)是特征预处理中的一项技术。我们观察(“我”,“司”,“可”,“办理”,“正规发票”,“保真”,“增值税”,“发票”,“点数”,“优惠”),这可以理解成一个向量:向量的每一维度都表示着该特征词在文本中的特定位置存在。这种将特征拆分成更小的单元,依据这些更灵活、更细粒度的特征进行判断的思维方式,在自然语言处理与机器学习中都是非常常见又有效的。因此贝叶斯公式就变成了:
1、朴素贝叶斯(Naive Bayes),“Naive”在何处?
加上条件独立假设的贝叶斯方法就是朴素贝叶斯方法(Naive Bayes)。将句子(“我”,“司”,“可”,“办理”,“正规发票”) 中的 (“我”,“司”)与(“正规发票”)调换一下顺序,就变成了一个新的句子(“正规发票”,“可”,“办理”, “我”, “司”)。新句子与旧句子的意思完全不同。但由于乘法交换律,朴素贝叶斯方法中算出来二者的条件概率完全一样!计算过程如下:
其中“发票”重复了三次。
3、处理重复词语的三种方式
(1)、多项式模型:
如果我们考虑重复词语的情况,也就是说,重复的词语我们视为其出现多次,直接按条件独立假设的方式推导,则有:
统计计算 P(“词语”|S)时也是如此。
我们扫描一下训练集,发现“正规发票”这个词从出现过!!! ,于是 P(“正规发票”|S)=0 …问题严重了,整个概率都变成0了!!!朴素贝叶斯方法面对一堆0,很凄惨地失效了…更残酷的是这种情况其实很常见,因为哪怕训练集再大,也可能有覆盖不到的词语。本质上还是样本数量太少,不满足大数定律,计算出来的概率失真 。为了解决这样的问题,一种分析思路就是直接不考虑这样的词语,但这种方法就相当于默认给P(“正规发票”|S)赋值为1。其实效果不太好,大量的统计信息给浪费掉了。我们进一步分析,既然可以默认赋值为1,为什么不能默认赋值为一个很小的数?这就是平滑技术的基本思路,依旧保持着一贯的作风,朴实/土但是直接而有效。对于伯努利模型,P(“正规发票”|S)的一种平滑算法是:
接下来的核心问题就是训练出一个靠谱的分类器。首先需要有打好标签的文本。这个好找,豆瓣影评上就有大量网友对之前**的评价,并且对**进行1星到5星的评价。我们可以认为3星以上的评论都是好评,3星以下的评论都是差评。这样就分别得到了好评差评两类的语料样本。剩下就可以用朴素贝叶斯方法进行训练了。基本思路如下:
但是由于自然语言的特点,在提取特征的过程当中,有一些tricks需要注意:
当然经过以上的处理,情感分析还是会有一部分误判。这里涉及到许多问题,都是情感分析的难点:
(2)、拼写纠错
拼写纠错本质上也是一个分类问题。但按照错误类型不同,又分为两种情况:
真词错误复杂一些,我们将在接下来的文章中进行探讨。而对于非词错误,就可以直接采用贝叶斯方法,其基本思路如下:
训练样本1:该场景下的正常用词语料库,用于计算 P(候选词i)。
训练样本2:该场景下错误词与正确词对应关系的语料库,用于计算 P(错误词|候选词i)
当然,朴素贝叶斯也是有缺陷的。比如我们知道朴素贝叶斯的局限性来源于其条件独立假设,它将文本看成是词袋子模型,不考虑词语之间的顺序信息,例如:朴素贝叶斯会把“武松打死了老虎”与“老虎打死了武松”认作是一个意思。那么有没有一种方法提高其对词语顺序的识别能力呢?当然有,就是这里要提到的N-gram语言模型。接下来详细给大家介绍N-gram语言模型。
1、从假设性独立到联合概率链规则
与我们之前我们垃圾邮件识别中的条件独立假设是一样的:
4、N-gram实际应用举例
(1)、词性标注
词性标注是一个典型的多分类问题。常见的词性包括名词、动词、形容词、副词等。而一个词可能属于多种词性。如“爱”,可能是动词,可能是形容词,也可能是名词。但是一般来说,“爱”作为动词还是比较常见的。所以统一给“爱”分配为动词准确率也还足够高。这种最简单粗暴的思想非常好实现,如果准确率要求不高则也比较常用。它只需要基于词性标注语料库做一个统计就够了,连贝叶斯方法、最大似然法都不要用。词性标注语料库一般是由专业人员搜集好了的,长下面这个样子。其中斜线后面的字母表示一种词性,词性越多说明语料库分得越细;需要比较以下各概率的大小,选择概率最大的词性即可:
将公式进行以下改造,比较各概率的大小,选择概率最大的词性:
N-gram分类器是结合贝叶斯方法和语言模型的分类器。这里用 Y1,Y2分别表示这垃圾邮件和正常邮件,用 X表示被判断的邮件的句子。根据贝叶斯公式有:
比较这些概率的大小,找出使得 P(Yi|X)最大的 Yi即可得到 X 所属的分类(分词方案)了。Yi作为分词方案,其实就是个词串,比如(“我司”,“可”,“办理”,“正规发票”)(“我”,“司可办”,“理正规”,“发票”),也就是一个向量了。而上面贝叶斯公式中 P(X|Yi)项的意思就是在分类方案 Yi的前提下,其对应句子为 X的概率。而无论分词方案是(“我司”,“可”,“办理”,“正规发票”)还是(“我”,“司可办”,“理正规”,“发票”),或者其他什么方案,其对应的句子都是“我司可办理正规发票”。也就是说任意假想的一种分词方式之下生成的句子总是唯一的(只需把分词之间的分界符号扔掉剩下的内容都一样)。于是可以将 P(X|Yi)看作是恒等于1的。这样贝叶斯公式又进一步化简成为:
也就是说我们
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)