前一阵某艺人离婚,大家都在看热闹(到目前为止平均全世界每个人都围观了两次了),虽然言语上看似挺同情,但是有些科技公司用大数据分析,居然得出围观者的情绪是快乐。你是不是觉得很奇怪。
最近和朋友聊天时谈到“用大数据分析来了解大众情绪或心态” 的相关问题,比如,如何通过大数据分析从新闻和社交媒体中了解大众情绪?哪些领域可以采用这种分析方法?
身边很多人也有类似的疑问。在这封信里,我尽我所知争取理出一个通俗易懂的答案。
首先讲讲这件事情的意义。用大数据分析大众情绪最有意义的应用在于了解民意(包括大众对政治事件和政策的看法),以及对于产品好坏的评价。美国一些咨询公司和民意调查公司,在几年前就开始利用这项技术了解大众对某个政客,或者一项法案的看法,比如大家对奥巴马健保法案的态度,对禁枪的态度等等。这些事情,过去是由民调公司向民众发放问卷进行调查的。但是,使用调查问卷的方法有诸多问题,比如能够收集的样本数有限,采样未必能完全具有代表性,以至于调查结果未必可靠。其次,调查者的主观性会导致问卷设计不合理,诱导被调查者按照问卷设计者的意愿来回答问题。比如美国一位学者设计了一个调查问卷,里面有这样两个问题:
问题一,如果有人做了一件什么事情,你是否会杀了他,受访的人中95%以上说不会。
但是如果他将问题稍作修改成:
问题二,如果有人做了一件什么事情(同样的事情),他是否该被杀,同一群受访的人中绝大多数(90%左右)会说应该。
出于避免引起种族和宗教方面的麻烦,我隐去了被调查的那件事是什么,被调查者是哪一个群体,不过我可以告诉你的是,那是那个群体颇为在意而敏感的一件事。但是,用不同问题会得到完全不同的统计结果。
除此之外,即便是匿名调查,被调查者有时出于面子或者道德约束的考虑,可能选择别人认为是对的结果,而非他们真实的想法。比如罗胖就说过,过去央视通过调查问卷统计出来的收视率很不准确,后来发现大牌主持人和高大上节目的收视率被严重高估了。
回到上面关于民众对奥巴马健保法案的态度,盖洛普问卷调查的结果(支持的声音较大)和统计学家通过社交媒体分析的结论(反对的声音较大)相差非常大。关于这一点,我在《智能时代》一书中作了更详细的分析。
那么怎么解决上述问题呢?统计学家们发现从互联网上海量的数据出发,利用大数据分析的方法得到结论,比传统问卷得到的结论更准确。在今年的美国大选中,两党的候选人希拉里和特朗普都表示不支持奥巴马的健保法案(希拉里的丈夫克林顿和女儿切尔西已经明确表明了这一点),也说明他们更多地看中大数据分析的结果,而非盖洛普的问卷调查。
等到希拉里和特朗普身上,大数据分析的结果和传统的问卷调查又出现了矛盾。在这两位美国总统候选人第一次电视辩论之后,7家主要媒体问卷调查的结果都是希拉里在辩论中获胜,但是根据推特对50多万使用者统计的结果,55%的人认为是特朗普获胜,差距还是非常大的。
除了了解民意之外,这项技术在商业上使用得更多,很多公司通过它来了解用户对自己产品的意见。比如苹果公司在增加了iPhone的一些功能后,它会通过社交网站的内容,来了解大家是否喜欢这些功能。美国大公司常常很看重顾客对自己产品的态度,早在2001年,IBM就希望我加盟他们公司,做用户情绪的分析。2011年,我帮助某风险投资公司评估一家提供用户情绪分析的小公司,那家小公司的主要客户就是耐克、可口可乐、麦当劳等大公司——它们希望通过大数据分析来了解用户对自己产品的意见。作为全球性的大公司,它们需要了解全世界各个国家不同人的感受,如果在上百个国家用传统的方式同时展开市场调查,成本非常之高,但是利用网络数据,它们就可以一次性地得到各个国家的用户反馈。
那么怎样通过对互联网上的数据,特别是社交网络上的数据(以下简称网络数据)分析大众的情绪或者心态呢?简单地讲,这是一个自动分类的问题,即把人的情绪分为若干类,然后把网络数据根据内容确定为其中的一类(或者几类)。具体实现的方法大致有两种,第一种是有监督的机器学习,大致步骤如下:
首先,从网络数据中选取一些样本(比如帖子,也称为训练样本),手工地对每个帖子打上一个情绪的标签(高兴、愤怒、焦虑等等),这就将它们各自分到所属的类别。
其次,根据每一类情绪对应的帖子,找到相应的特征,这些特征可以是简单的关键词、关键词的组合、表情符号,甚至是一些标点符号(比如问号和感叹号),也可以是表述时用的句式、语法结构等等,每一种情绪对应的特征是不同的。
最后,把大量收集来的网络数据拿来,从中抽取特征,和每一类情绪的特征做比对,就能大致确定大众在网络数据中所反映的情绪。
这种方法主要的缺点是手工标注出每一个样本所对应的情绪,工作量很大,为了克服这个问题,可以采用一种无监督的机器学习方法,也就是说,一开始随机地给样本设定一种情绪,当然这种情绪的初始设定大部分是不正确的,不过没有关系。接下来可以采用一种自适应的机器学习方法,通过多次迭代来修改最初的错误,一般来讲,每迭代一次,就能修正一部分错误,直到计算机找不到更多的错误为止。这样,前面那种算法的第一步就自动完成了,以后的步骤则相同。这种方法的好处是减少人工,缺点是计算量非常大,而且有时机器学习的算法找不出错误,不等于错误不存在。因此,可以讲两种方法各有千秋。
至于机器学习的算法,目前很热门的人工神经网络(也就是Google深度学习的算法基础)方法就非常适用,此外,很多其它机器学习的方法(比如贝耶斯网络或者最大熵模型)也都可以解决这个问题。它们的效果可能略有差别,但是总体来讲差别不大,甚至可以被认为是等价的,采用哪一种都可以。
通过大数据分析大众情绪的好处是,大家在社交网络或者网络媒体上发言时,通常不会刻意隐瞒自己的观点,因此分析的准确性要比问卷调查好很多。
关于这一问题,如果你有什么新的想法,欢迎回信与我交流。