用户画像是一种目标用户的人物原型,它不仅可以快速了解用户的基本信息并快速归类,并且可以进一步精准地分析用户行为习惯和态度偏好。用户画像虽然是用户的虚拟代表,但必须基于的是真实用户和真实数据。
我们尝试去做一个用户画像,往往是基于以下情景:
确定目标用户,将用户根据不同特征划分不同类型,确定目标用户的比例和特征;
统计用户数据,获得用户的操作行为、情感偏好以及人口学等信息;
根据目标用户确定产品发展相关优先级,在设计和运营中将焦点聚焦于目标用户的使用动机与行为操作;
方便设计与运营,据用户画像提供的具体的人物形象进行产品设计和运营活动,也比仅有模糊的、虚构的、或是有个人偏好的用户形象更为方便和可靠;
根据不同类型用户构建智能推荐系统,比如个性化推荐,精准运营等等。
从用户画像的使用情境也可以看出,用户画像适用于各个产品周期:从潜在用户挖掘到新用户引流,再到老用户的培养与流失用户的回流,用户画像都有用武之地。
采用定性的方法(如,深度访谈、焦点小组)或定量的方法(如,定量问卷、行为日志数据)都能够完成用户画像的构建,不同的方法各有优缺点:
但是,不论是选择定性还是定量的方法,都首先需要对用户类型有一个基本“量”的了解,否则在选用样本时就会产生偏差。那么如何通过定量的方法(聚类)构建用户画像呢?
选择那些指标?
用户指标的选择,可以是封闭性的,也可以是开放性的。在封闭的指标中,用户群的类型是固定的,所有用户类型构成了全部的用户整体,比如轻度用户、重度用户;男性用户,女性用户。但是这种划分方式维度可能过于单一,无法体现用户群的复杂性,并且不利于指标体系的补充改进和迭代,因此在研究中我们更倾向于采用开放性的分类方式,可以根据不同应用场景变更或者拓展指标。
开放式的指标体系包括用户人口属性、行为操作属性、态度偏好属性、用户价值属性等,用户的行为和态度是不断变化的。
其中,注意一点,封闭式指标中的人口属性指标是相对稳定的静态数据。通常,从我们的经验和掌握到的用户信息,我们对用户的年龄结构、性别比例都已经明确,如果在聚类中人口属性指标对聚类干扰较大(共线性较强),或在模型中作为因子影响过高,可以在聚类时重点关注用户的行为操作和态度偏好等指标,聚类成功之后再比较每一种用户类型的人口学背景信息等。
如何获得和筛选数据?
在确定指标后,我们需要确定指标的来源。有些数据是后台行为日志可以记录到的,有些是需要用问卷调查的。一般而言,行为层面的指标可以用后台日志,更加准确。而态度层面的则要用问卷来获取。两种数据渠道各有优缺点:
理论上,所有的数据都可以通过问卷获得。但是,为了最优化研究效果,我们采取了问卷+行为日志结合的方式。在发问卷的同时,抓取了用户的设备号和ID,以匹配后台数据。
在保证问卷效度的前提下,问卷设计还需要注意结合用户特征,以提高填答率以及数据准确率。比如,针对二次元用户,在用户群年龄结构偏小的前提下问卷不能太长,不能出现深奥的专业术语;同时问卷的语句表达以及页面风格也要相应调整,使其没有距离感。同时,注意筛除多次填答和注册的马甲账号问卷。此外还要注意新用户的占比,需要评估填答问卷中新注册用户的比例是否与投放期新用户正常增量一致。用户画像是否需要包含新用户取决于项目目的,也可以和产品方讨论后决定。
把用户分成几种类型?
聚类分析是探索性的研究,他根据指标或者变量之间的距离判断亲疏关系,将相似性的聚为一类,因此会出现多个可能的解,并不会给出一个最优的解,最终选择哪一种方案是取决于研究者的分析判断。
把用户分的类型越少,颗粒度就越粗,每种类型之间的特征就不会很分明;用户类型越多,颗粒度也就越细,但复杂的类型划分也会给产品定位和运营推广带来负担。因此,细化颗粒度不仅需要定量的聚类来调整,还需要结合产品经验来验证。同时,因为采用的是开放性的指标体系,我们不可能像区分“男性用户、女性用户”那样清楚地知道用户类型的数量,因此,在用数据进行用户画像时,最关键的一步就是确定把用户分成几种类型。
我们将数据导入spss尝试进行聚类分析。如果变量数据形式不统一(选择的指标有定序、有定类),则需要首先对数据进行标准化;其次,两个强相关的变量和其他变量一起进行聚类会加大因子的权重,使聚类效果不理想,所以我们还要使用因子分析对选择的指标提取公共因子,对因子共线性判断,因子分析是选择合适变量进行聚类的前提,如果因子之间共线性强,则提取公因子进行聚类,若共线性不强,则直接聚类。
在确定因子之后需要选择合适的聚类方法。不同方法适用的情况不同,常用的是K均值聚类以及层次聚类。
K均值聚类 也称快速聚类,内存少,复杂程度低,快速高效,适用大数据量。但是需要提前明确分类数目,并对均值进行定义。只能对样本聚类,不能对变量聚类,样本的变量需是连续性变量。
层次聚类 可以对变量聚类,也可以对样本聚类,可以是连续变量也可以是分类变量。能提供多种计算距离的方法,但是计算复杂度高,适用小数据量,我们需要结合项目的具体情况,包括项目周期、数据形式、数据量、聚类特征等等来确定聚类方法。
最后通过尝试不同的聚类数、距离算法和分类方法,我们可以根据以下几点来确定分类的数量:
1、依据产品经验,不同产品的典型用户不同
2、根据已有的用户研究以及相关研究结论
3、根据具体的分类效果确定
4、根据层次聚类“步数——距离”拐点
聚类效果好坏的评估可以从聚类中心之间的距离、组件与组内的方差以及群组数量之间的比例是否符合产品特征、比例是否协调以及划分的类型对产品是否有意义等方面去评估。
在已经得知了分类结果并且分析得出了每一类用户在各项指标上的特征之后,构建用户画像的工作也就好比在一副骨架上填充血肉。一方面,我们可以直接利用获取的数据,找到具有显著特征的信息,赋予到用户身上。比如第一类用户60%使用iOS系统,而其他三类均不超过20%,我们就可以将第一类用户抽象为一个平时使用iPhone 的人。除了问卷数据之外,想要使人物形象更加鲜明,可以对问卷本文题进行分析,或者根据产品经验、用户反馈或已有研究进行画像,这样可以使用户形象更加有血有肉。
但是,把数据还原成用户本身用户也需要遵循几个原则,画像(Persona)意味着一个令人信服的用户角色要满足七个条件:
通过定量化的调研可以快速对用户建立一个精准的认识,对不同数量、不同特征的用户进行比较统计分析,在后期产品迭代改进的过程中可以将用户进行优先级排序,着重关注核心的、规模大的用户。但是,依靠数据这种偏定量的方式建立的用户画像依然是粗线条的,难以描述典型用户的生活情景、使用场景,难以挖掘用户情感倾向和行为操作背后的原因和深层次动机。因此,如果有足够精力和时间,后续可以对每类用户进行深入的访谈,将定量和定性的方法结合起来,建立的用户画像会更为精准和生动。
我在 《爬取百万页面 分析用户画像》 中分析了用户的书籍喜好,这里继续尝试通过影评文章的抓取、内容清洗、影评句子提取,建立机器学习情绪预测模型,挖掘分析用户对流行**的喜好。
涉及的NLP(自然语言处理)知识点:
涉及的ML(机器学习)知识点:
**的拍摄成本高、票价也不低,消费者投入的关注度和观看成本高(最终的投入成本是包括注意力投入、金钱投入、时间投入和感情投入)。
简单算下观看一部**的成本(步骤):先看下预告内容,做下同期上映**的比较,觉得导演、演员阵容都不错,下定决心要看了,跟男/女友/老婆 /老公/基友/闺密做推荐,推荐成功后去选座买票,观影当天说不定还得先吃个饭,饭后乖乖的在影院呆上90分钟(关键时刻还得憋尿),观影结束后指不定还得来个夜宵、开个房间探讨下人生什么的。。。
读一本书的成本(步骤):1打开书/电子阅读器/手机;2 读!
这样对比看一部**比读一本书的投入成本高多了!
因此观众给出的反馈自然也比书籍会强烈一些,特别是满怀期待看完却发现是一部烂片,有种上当受骗的感觉。
因此对**光是通过词频作为喜好度是不够的,用户可能反复的在骂呢。
所以需要引入多一个分析的因子:情绪。用户提及某个**时的情绪是怎么样的,是积极愉悦、还是负面愤怒,加上这个才能有效判定用户对**或者某个事物的喜好。
在豆瓣上,用户的评分就是最直接的情绪数值:5力荐,4推荐,3还行,2较差,1很差。
但在这类写作平台上,发布文章时是没有一个选项来填写分数,也没提供选择心情的选项。
“所言即其所思”,这是普遍人性。每个用户写下的文字表达想法,在字里行间都会不经意的使用一些情绪用词来表达,这些便是我可以获取的“原始数据”。
精准推荐!用户谈论得多的东西未必是TA所喜爱的,也许是TA痛恨的(比如说前任)。如果用户在自己大力差评某部**的文章底部看到另一部相似烂片的推荐,推荐文案还写着“亲,我猜你还喜欢看这些”,估计这用户会有种吃了苍蝇刚吐出来发现迎面又飞来几只的感觉。
通过用户在讨论某事物时上下文的情绪分析,来判断对该事物的喜恶,将预测结果加入对事物的打分计算中,最后得出一个可量化、可计算的分数值,便是一个精准推荐系统的需要解决的问题。
理论上只需要一句话:要识别出文章中提及的**,以及作者对该**的评论,是好评还是差评,作为文章作者对该**的喜恶,并根据评论的情绪强烈程度转化为喜恶程度即可。
那实际上,就要解决以下问题:
下面逐一细说。
我采集了上几个比较受欢迎的**专题以及一个大V帐号文章(数据截止至采集数据时):
但由于对专题页面加了访问限制,每个专题只能访问到最新的200个列表页面,因而每个专题可获取2~3000篇文章,以此作为抽样数据样本。
要分析对**的评价,首先就要获取到文章中提到**名称有哪些,最简单的匹配规则便是提取书名号 《》 内的内容。
而实际获取到的**名称真可谓“脏乱差”,有**名、书籍名、文章名等,有些**名称会用缩写引用(如《变1》、《复联》、《生化危机4/5/6》),或者中英文混合在一起(如《机器人总动员(wall-e)》),甚至还有错漏别字(如《那些年,我们一起追过的女孩》,多了个“过”字),以及包含中英文特殊标点空白符号等,例如:
因此需要进行一轮“数据大清洗”,我使用如下清洗策略:
其中“**专用词典”,是通过采集了 「猫眼 影片总票房排行榜」 2000~2017年间上榜的所有**,约有3000+部,如图:
再根据文章中所收集到的**名称的候选文本,抓取「豆瓣网」的官方**名字(遭遇了豆瓣业内闻名的反爬策略就不多说了),合并去重后约有8400多部。看一眼才发现好多**连听都没听过,有些**名称还挺有趣,以后有时间还可以做下**名称的分析。
为了解决错别字,我通过文本相似性算法,在**专用词典里找出与之最相似名称。
知名的相似算法有不少,如:
经过简单比较,我选择了其中表现最好的 jaro_winkler_distance
运用到文章内容上,可得到相似**名称,感觉效果还可以:
构建一个Pipeline用于提取页面中**名称,对单个页面测试效果如下:
运用到所有页面上:
至此完成了**名称的提取、清洗,得出每篇文章提及的**名称,如图:
判断一篇文章的情绪,最简单的做法是通过提取所有情绪词来统计下词频及其权重可得到一个粗糙的结果,但这样的结果对“影评”类文章不是很准确。
根据观察,一篇**评论文章中,往往会有大段的**情节描述,然后夹杂一两句评论。而有些**本身剧情就是比较负面、阴暗的(如灾难片类的),但影片本身质量很高(如《釜山行》,豆瓣评分82),如果文章内容包含大量的剧情描述,那么得到关键词会偏向于负面情绪,并不能用于表达出作者对**的喜好情绪。
因此我使用了这样的提取策略:
评论句子提取的结果示例如下:
这样的策略对有些内容不是很适用,例如这样的标题:《同样是豆瓣92分,它或许比《摔跤吧!爸爸》更深》,这是典型的“借势营销”型文案,文章内容中推介的是另外一部韩国**《熔炉》,而时下《摔跤吧!爸爸》正热,标题中带上这个会更吸引用户点击。
另外一个思路是对文章进行摘要提取,然后对摘要进行情绪识别。而对于文章的主题提取,可以使用在ML算法中的用于解决 主题模型 问题的算法(如LDA),但不确定是否适合影评这种混合了大量剧情描述的文章内容。
得到相关评论文本后,便可对文本进行分词及情绪识别,这里有两种做法,一是使用带有情绪情感度的专业词典,配合专有算法;另外一种是使用机器学习算法。
一开始我使用了大连理工大学的《大连理工情感词汇本体库》,是目前最权威的中文情绪词典,共含有情感词共计27466个,包含了词语的词性种类、情感类别、情感强度及极性等信息,例如:
中文情感词汇本体的情感分类体系是在国外比较有影响的Ekman的6大类情感分类体系的基础上构建的。在Ekman的基础上,词汇本体加入情感类别“好”对褒义情感进行了更细致的划分。最终词汇本体中的情感共分为7大类21小类,如图:
把情感词典加入分词词典,对候选每个句子进行分词,得出情感词组,并累加每个情感词的强度值作为句子的情感值。
但经过测试后,发现预测效果并不理想,究其原因发现是情感词典中命中的词语太少,在句子中得不到相关词语,也就无法判断情感极性和强度。
使用情感词典的测试结果:
而专业词典的扩展需要专业领域知识,扩展起来很困难,我目前没找到更新的专业词典,国内这块的资料相当匮乏,而国外有个知名的SentiWordNet库,中文NLP研究的难度系数可想而知。
鉴于情感词典的资源限制,决定尝试使用机器学习来对文本做正、负面情绪预测。
1) 构建分词词典:
分词需要构建专用领域的词典,这样得到的分词结果才会更精确。
因为只需要有正负情感类别、不需要有情感强度及极性等信息,我使用了网络上公开的一些情感词典,:
合并、清洗和去重后,最终构建出了 14000+ 个词的积极情绪词典, 18000+ 个词的消极情绪词典。
积极词典:
消极词典:
2) 准备训练语料
从网上搜集到几个带有积极、消极的标注的评论语料数据集,分别包含了书籍、DVD、音乐、购物领域的各有4000条评论,如下图:
可惜没找到中文影评相关的语料,但找到 国外英文的影评语料 ,对,英文资料很丰富。。。
3) 训练模型
由于是文本型特征,分类算法上选择了 朴素贝叶斯 ,把数据分为2份,一半训练,另一半做测试。
使用 jieba 分词工具,对文本进行分词得到候选词组,把得到的词组作为特征输入来训练情绪预测模型。
训练后的模型测试结果如下:
训练后的模型在书籍、音乐、影碟及购物评论的语料上都有不错的效果。
在提取出的影评短句上测试:
又是“无聊”、“又俗又傻”而一个“但”字就反转了情绪,真是难为分类器了:
经过反复对比实验,发现语料的质量决定了模型的精度,而语料的扩展对比扩展专业词典却容易多了。例如几年前都没有“ 因吹斯汀 ”这些网络流行词,更不知道它代表是正面情绪,以后只要不断更新相关领域的语料库来重新训练则可得到更精确的模型。
俗话说“是骡子是马拉出来遛遛”。
得到一个预测情绪的模型后,便可对影评文章进行预测,但预测的结果是否准确?准确率又有多高?这又是个问题。
每当事情陷入停滞,我就会想起日本漫画大师安达充说过“当故事情节发展不下去的时候,加入一个新角色,是最简单的做法”。
这时需要祭出一个“旁证”了。这所谓的“旁证”,也就是目前大家比较认可的**评分网站——豆瓣网。
大家都知道豆瓣网上的**用户通过打星(5力荐,4推荐,3还行,2较差,1很差),转换得出的10分制的评分,我们可简单把1 49分视作负面评价、5 10分视作正面评价,没有分数的视作中性评价。再把豆瓣的评价结果视作大部分人认同的结果,当然这样肯定是有偏差的。
大胆假设,小心求证,先试试看吧。
根据**名词典再次去抓取豆瓣网上的**信息,这次包含了**分数::
使用获取到的**专题『**院』文章内容测试,结果如下:
1048篇中,豆瓣评分结果与模型预测符合的有974篇,准确率是929%,WOW!真的这么准吗?
看下详细结果,豆瓣评分是正面的有1022条,预测对了973篇,例如:
而豆瓣评分是负面的有28条记录,而模型只预测出1篇是负面的:
真的是模型预测错了吗?
从负面例子中抽样看看模型分解的结果:
评论《麻烦家族》(豆瓣评分48)的:
从自动摘要出来的句子来看,实际上文章作者表现出正面情绪,模型预测为正面,预测正确
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)