论文部分内容阅读
摘要:随着大数据时代的到来,其应有价值也越来越广泛,特别在“互联网 ”商业推广中的“精准营销”更是发挥着重要的意义。该文利用用户的搜索记录文本为数据,进行分词处理、建模,采用SparkSql与hive进行整合(spark on hive)。首先,采用SparkSql对表中的元数据进行读取,再使用Spark引擎进行底层数据的分析处理达到高效为有搜索记录的用户建立标签从而构建用户画像的,达到构建智能推荐目的。最后,利用几种常用的分词工具对本文测试,并使用Bayes模型比较了它们在项目中的效果。
关键词:搜索记录;分词;用户画像;模型
中图分类号:TP3 文献标识码:A
文章编号:1009-3044(2020)33-0014-03
开放科学(资源服务)标识码(OSID):
1 构建用户画像的概述
1.1 构建用户画像的意义
随着大数据时代的到来,大数据在互联网产业中得到广泛应用,特别是电商、广告、服务搜索等方面的个性化和智能化的水平得到很大的提高,近年来大数据技术加快了对传统行业应用的渗透,驱动生产方式和管理模式进行变革,推动各行各业向网络化数字化、智能化发展,使得在“互联网 ”这样一个宏观市场背景下,大数据技术对经济发展趋势的影响愈发举足轻重。
用户画像分析是指利用大数据技术的算法根据用户在互联网中行为推断用户特征的过程、手段和方法,同时也是对个体进行精确定位的手段,最后利用网联网web、手机应用等工具进行个性化推荐,个性化的搜索,在互联网 商业推广中的“精准营销”更是发挥着重要的意义。比如,你在某电商平台浏览或购买商品的行为发生时,就足够使得该网络商家掌握了你在该电商平台搜索记录等数据,他就可以利用大数据技术开发的第三方应用软件根据你购买商品的偏好和浏览轨迹进行同类产品精准推荐,这也说明了利用用户画像可以做到“精准营销”,是有非常有商业价值的。
1.2 用户画像的具体作用
1)精准营销,分析根据用户的行为,提取用户喜好标签,然后利用互联网等方式进行营销。
2)用户统计,根据高频用户行为分析全国高薪职业Top10。
3)數据挖掘,利用大数据技术构建智能推荐算法,利用关联规则计算,喜欢二次元的用户通常喜欢什么风格品牌,再使用大数据的聚类算法分析出喜欢二次元群体年龄段分布情况。
4)将传统的用户和市场的调研,利用大数据技术分析定位服务群体,完善产品运营,提供高水平的服务。
5)个性化服务,利用大数据技术通过用户画像进行分析,发现形象、价格区间偏好比重最大,那么就给新产品提供了非常客观有效的决策依据。
6)企业发展战略,利用大数据进行业务经营分析以及竞争分析可以及时调整企业发展战略。
1.3基于查询记录的用户画像难点
1)数据源,用户画像需要有大量的数据支持,并且需要较为全面的数据,基于查询记录的用户画像正是依靠非常多的用户查询记录来进行用户画像,用户繁多的查询记录可以给用户进行较为全面的画像。
2)业务结合,对于用户画像不能只存在于理论阶段,需要笔者团队根据实际的业务跟理论基础结合起来。
3)动态更新,因为查询业务是实时更新的用户数据,因此需要根据用户实时的查询数据来对于用户的画像结果进行实时更新,实现精准推荐。
4)用户画像中的处理细节展示。
5)大家知道,用SparkSql整合hive来进行电商用户画像,即使用Hive将hql语句转化为MapReduce来计算的设计方案很好,但因为Hive原因是基于MapReduce的,它会生成MapRe-duce Job,从而查询提交到结果返回需要查询时间非常长,我们可以利用Spark生成Spark Job的快速执行能力来缩短HiveHQL的响应时间。
6)本项目是利用用户的搜索记录文本为数据,进行分词处理、建模,采用SparkSql与hive进行整合(spark on hive)。首先,采用SparkSql对表中的元数据进行读取,再使用Spark引擎进行底层数据的分析处理达到高效为有搜索记录的用户建立标签从而构建用户画像的,达到构建智能推荐目的。最后,利用几种常用的分词工具对本文测试,并使用Baves模型比较了它们在项目中的效果。
2 数据处理
2.1 停用词处理
在实际的自然语言中,有很多的非实意词语或者其他并没有实际作用的词语,这些词语我们必须在分词环节后进行过滤处理即停用词处理。停用词处理的关键在于停用词的认定,我们可以通过使用停用词表,对停用词进行单独处理可以大大加快词语切分速度以及后续的句法分析归约速度,因此在进行分词处理及使用的NLP技术,如BOW,Count Vectorizer或F-IDF(词频和逆文档频率)特征计算的过程中,均保留了空格、标点以及停用词这些信息。
2.2 分词处理
分词就是将句子、段落、文章这种长文本,分解为以字词为单位的数据结构,方便后续的处理分析工作。由于词是信息载体的最小单位,所以分词处理是关键,分词目前已经有很多开源工具可以使用,比如中科大的ICTCIAS.IKanalyzer. hanlp等等。很多分词原理是用的CRF,即条件随机场,通过对词语的位置标注和词性等特征来进行分词。
3 系统设计
本项目中的文本为用户的搜索词条记录,这些词条长度通常短,使得对样本进行分词效果便显得较为重要。本文测试了几种常用的分词工具,并使用Bayes模型比较了它们在项目中的效果。
在本系统中,笔者团队根据数据所产生的误差对于数据进行后置处理也就是分析法中常说的错误分析,根据用户的查询记录以及笔者团队的算法得出了一些错误的样本,做错误样本分析的好处在于错误样本分析可以给模型优化指引方向。在进行错误样本分析的过程中,我们也找到了一些规律:对于属性值存在空缺的样本,我们首先使用属性值已知的样本作为训练样本,使用LR模型训练分类器,再对这部分属性空缺样本进行预测,从而补全空缺值。但我们发现在最终的两级多模型融合得到的结果中,对于教育属性空缺的样例,它们的年龄和性别预测准确率很低;对于年龄属性空缺的样例,教育预测准确率很低;对于性别属性空缺的样例,教育预测准确率很低。 3.1 用户画像建模
根据互联网上个人用户所填写资料信息如:性别,年龄,喜好等等,我们利用大数据技术进行数据处理,主要包括数据预处理,降维,分类,回归,聚类,模型选择等去掉不用的属性保留有用的数据信息,推算出用户标签,进行精准用户画像。比如大数据精准营销,涵盖用户的忠诚度可以分为忠诚型用户(会购买,并且不会对比其他家)、偶尔型用户(有优惠才会购买)、投资型用户、游览型用户、系统未能识别用户。本项目用户画像基本表如表1所示。
3.3 系统分析流程
系统分析流程如图2所示。
特征构造方式:多角度、多粒度、多维度。
优秀的特征群构建体系:特征表达能力强、自动化程度高、泛化能力强。
3.4 系统所用到的技术
系统用到的技术有:scala、hhase、hive、hadoop、spark、flume、sparksql、python、storm、kafka、mysql等,这里需要用到Sparksql hive。
Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是弹性分布式数据集或者文本、Hive、Json等外部的数据源。Spark on Hive是Spark SQL的其中一个分支也是使用Hive中HQL的解析、逻辑执行计划翻译、执行计划优化等逻辑,将物理执行计划从MR作业替换成Spark作业。Spark-Sql整合hive就是获取hive表中的元数据信息,然后通过Spark-Sql来操作数据。
具体的整合步骤为:
1)先将hive-site.xml文件拷贝到Spark的conf目录下,系统配置文件就能找到Hive的元数据以及数据存放位置。
2)准备Mysql相关驱动,比如:mysql-connectoI-java-5.1.49.jar。
3)进行整合成功测试,先启动hadoop集群,再启动spark集群确保启动成功之后执行命令:/var/local/spark/bin/spark-sql-master spark://itcast01:7077 -executoI-memory lg -total-exec-utor-coreS。
4)如果可以进入到命令行里面说明可以运行成功了。
4 具体实现
1) SecondSession该类主要是先读取到元数据,然后切分可用数据,读取到表的结构,创建一个视图,把需要的数据写入到视图里面去。首先先获取到SparkSession类的实例化,需要传人配置文件的信息,也就是如下代码段所示:val spark= Spark-Session. builder(). appName(”FirstSessionAnalysis”). config(”spark.testing.memory”,’’2147480000”).master(”local[*]’’).getOrCreate0然后我们需要创建一个rdd来读取元数据。井且创建表结构valschemas=”cookie,event,ispaid, data_date, time”.split(”,”).map(fp=
关键词:搜索记录;分词;用户画像;模型
中图分类号:TP3 文献标识码:A
文章编号:1009-3044(2020)33-0014-03
开放科学(资源服务)标识码(OSID):
1 构建用户画像的概述
1.1 构建用户画像的意义
随着大数据时代的到来,大数据在互联网产业中得到广泛应用,特别是电商、广告、服务搜索等方面的个性化和智能化的水平得到很大的提高,近年来大数据技术加快了对传统行业应用的渗透,驱动生产方式和管理模式进行变革,推动各行各业向网络化数字化、智能化发展,使得在“互联网 ”这样一个宏观市场背景下,大数据技术对经济发展趋势的影响愈发举足轻重。
用户画像分析是指利用大数据技术的算法根据用户在互联网中行为推断用户特征的过程、手段和方法,同时也是对个体进行精确定位的手段,最后利用网联网web、手机应用等工具进行个性化推荐,个性化的搜索,在互联网 商业推广中的“精准营销”更是发挥着重要的意义。比如,你在某电商平台浏览或购买商品的行为发生时,就足够使得该网络商家掌握了你在该电商平台搜索记录等数据,他就可以利用大数据技术开发的第三方应用软件根据你购买商品的偏好和浏览轨迹进行同类产品精准推荐,这也说明了利用用户画像可以做到“精准营销”,是有非常有商业价值的。
1.2 用户画像的具体作用
1)精准营销,分析根据用户的行为,提取用户喜好标签,然后利用互联网等方式进行营销。
2)用户统计,根据高频用户行为分析全国高薪职业Top10。
3)數据挖掘,利用大数据技术构建智能推荐算法,利用关联规则计算,喜欢二次元的用户通常喜欢什么风格品牌,再使用大数据的聚类算法分析出喜欢二次元群体年龄段分布情况。
4)将传统的用户和市场的调研,利用大数据技术分析定位服务群体,完善产品运营,提供高水平的服务。
5)个性化服务,利用大数据技术通过用户画像进行分析,发现形象、价格区间偏好比重最大,那么就给新产品提供了非常客观有效的决策依据。
6)企业发展战略,利用大数据进行业务经营分析以及竞争分析可以及时调整企业发展战略。
1.3基于查询记录的用户画像难点
1)数据源,用户画像需要有大量的数据支持,并且需要较为全面的数据,基于查询记录的用户画像正是依靠非常多的用户查询记录来进行用户画像,用户繁多的查询记录可以给用户进行较为全面的画像。
2)业务结合,对于用户画像不能只存在于理论阶段,需要笔者团队根据实际的业务跟理论基础结合起来。
3)动态更新,因为查询业务是实时更新的用户数据,因此需要根据用户实时的查询数据来对于用户的画像结果进行实时更新,实现精准推荐。
4)用户画像中的处理细节展示。
5)大家知道,用SparkSql整合hive来进行电商用户画像,即使用Hive将hql语句转化为MapReduce来计算的设计方案很好,但因为Hive原因是基于MapReduce的,它会生成MapRe-duce Job,从而查询提交到结果返回需要查询时间非常长,我们可以利用Spark生成Spark Job的快速执行能力来缩短HiveHQL的响应时间。
6)本项目是利用用户的搜索记录文本为数据,进行分词处理、建模,采用SparkSql与hive进行整合(spark on hive)。首先,采用SparkSql对表中的元数据进行读取,再使用Spark引擎进行底层数据的分析处理达到高效为有搜索记录的用户建立标签从而构建用户画像的,达到构建智能推荐目的。最后,利用几种常用的分词工具对本文测试,并使用Baves模型比较了它们在项目中的效果。
2 数据处理
2.1 停用词处理
在实际的自然语言中,有很多的非实意词语或者其他并没有实际作用的词语,这些词语我们必须在分词环节后进行过滤处理即停用词处理。停用词处理的关键在于停用词的认定,我们可以通过使用停用词表,对停用词进行单独处理可以大大加快词语切分速度以及后续的句法分析归约速度,因此在进行分词处理及使用的NLP技术,如BOW,Count Vectorizer或F-IDF(词频和逆文档频率)特征计算的过程中,均保留了空格、标点以及停用词这些信息。
2.2 分词处理
分词就是将句子、段落、文章这种长文本,分解为以字词为单位的数据结构,方便后续的处理分析工作。由于词是信息载体的最小单位,所以分词处理是关键,分词目前已经有很多开源工具可以使用,比如中科大的ICTCIAS.IKanalyzer. hanlp等等。很多分词原理是用的CRF,即条件随机场,通过对词语的位置标注和词性等特征来进行分词。
3 系统设计
本项目中的文本为用户的搜索词条记录,这些词条长度通常短,使得对样本进行分词效果便显得较为重要。本文测试了几种常用的分词工具,并使用Bayes模型比较了它们在项目中的效果。
在本系统中,笔者团队根据数据所产生的误差对于数据进行后置处理也就是分析法中常说的错误分析,根据用户的查询记录以及笔者团队的算法得出了一些错误的样本,做错误样本分析的好处在于错误样本分析可以给模型优化指引方向。在进行错误样本分析的过程中,我们也找到了一些规律:对于属性值存在空缺的样本,我们首先使用属性值已知的样本作为训练样本,使用LR模型训练分类器,再对这部分属性空缺样本进行预测,从而补全空缺值。但我们发现在最终的两级多模型融合得到的结果中,对于教育属性空缺的样例,它们的年龄和性别预测准确率很低;对于年龄属性空缺的样例,教育预测准确率很低;对于性别属性空缺的样例,教育预测准确率很低。 3.1 用户画像建模
根据互联网上个人用户所填写资料信息如:性别,年龄,喜好等等,我们利用大数据技术进行数据处理,主要包括数据预处理,降维,分类,回归,聚类,模型选择等去掉不用的属性保留有用的数据信息,推算出用户标签,进行精准用户画像。比如大数据精准营销,涵盖用户的忠诚度可以分为忠诚型用户(会购买,并且不会对比其他家)、偶尔型用户(有优惠才会购买)、投资型用户、游览型用户、系统未能识别用户。本项目用户画像基本表如表1所示。
3.3 系统分析流程
系统分析流程如图2所示。
特征构造方式:多角度、多粒度、多维度。
优秀的特征群构建体系:特征表达能力强、自动化程度高、泛化能力强。
3.4 系统所用到的技术
系统用到的技术有:scala、hhase、hive、hadoop、spark、flume、sparksql、python、storm、kafka、mysql等,这里需要用到Sparksql hive。
Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是弹性分布式数据集或者文本、Hive、Json等外部的数据源。Spark on Hive是Spark SQL的其中一个分支也是使用Hive中HQL的解析、逻辑执行计划翻译、执行计划优化等逻辑,将物理执行计划从MR作业替换成Spark作业。Spark-Sql整合hive就是获取hive表中的元数据信息,然后通过Spark-Sql来操作数据。
具体的整合步骤为:
1)先将hive-site.xml文件拷贝到Spark的conf目录下,系统配置文件就能找到Hive的元数据以及数据存放位置。
2)准备Mysql相关驱动,比如:mysql-connectoI-java-5.1.49.jar。
3)进行整合成功测试,先启动hadoop集群,再启动spark集群确保启动成功之后执行命令:/var/local/spark/bin/spark-sql-master spark://itcast01:7077 -executoI-memory lg -total-exec-utor-coreS。
4)如果可以进入到命令行里面说明可以运行成功了。
4 具体实现
1) SecondSession该类主要是先读取到元数据,然后切分可用数据,读取到表的结构,创建一个视图,把需要的数据写入到视图里面去。首先先获取到SparkSession类的实例化,需要传人配置文件的信息,也就是如下代码段所示:val spark= Spark-Session. builder(). appName(”FirstSessionAnalysis”). config(”spark.testing.memory”,’’2147480000”).master(”local[*]’’).getOrCreate0然后我们需要创建一个rdd来读取元数据。井且创建表结构valschemas=”cookie,event,ispaid, data_date, time”.split(”,”).map(fp=