前言

题目可参见这里:C题

下面简单做一下另外一篇O奖论文的笔记,上一篇O奖论文较难,这篇相对来说比较好读。

论文

题目: 《在线销售战略:融合深度学习和差分模型的评论跟踪系统》

Summary
作者用少量的语言介绍了一下background,接着讲述了解决问题的一个overview.

  • 首先基于star rating和review text设定了5个指标:average star rating,favorable rate,number of reviews,average number of review words,average review sentiment value. 使用TF-IDF算法提取关键词,使用BP神经网络计算评论情感得分。通过这种方式,探索出了review sentiment和star rating之间的特定关系,并提出三种产品的设计焦点所在。
  • 接着,建立差分模型,探索每个评价指标随时间和其他指标的变化模式
  • 最后,根据PCA,提出success index(成功指数),来评价三种产品成功与否,给出企业建议

接着,作者在第三段列举出了4个建模得到的重要结论,这里不多说了,详见原文。

倒数第二段说还给企业写了一封信,此处也列出了信件的3个核心要点.

最后一段用两句话,夸了一下自己的模型(simple,effective,practical)

1 - Introduction
谈了一下用户购买数据对商家的潜在价值,简单重述了一下问题,并挂出建模框架总图

2 - Assumption

  • 亚马逊给出的数据是真实可用的. 辩解(justification): 题目要求只能使用提供的数据集,因此,在数据来源唯一的情况下,需要假设这些数据是available和reliable的!
  • 外部环境影响因素不考虑进来. 辩解: 认为这三样东西都是生活必需品,受外部环境因素的影响可以忽略。
  • Amazon的内部系统不考虑进来. 辩解: 因为数据来源唯一,缺少Amazon内部如监控环境等的数据,因此必须忽略Amazon的内部系统才能继续建模。

3- Nomenclature

4 - Data Processing and Analysis

4.1 数据清洗:

  • 缺失值和异常值
  • 只有一条评论的产品
  • 2010年前交易数据(因为这些数据存在不连续,占的比例也太多,尽管清洗吧~)

4.2 数据观察:

4.2.1 产品生命周期观察

定义产品的lifecycle为观测到的第1条评论和最后1条评论的时间段

这幅图讲的大概是这么一个意思(以hair_dryer为例):活跃评论在3个月内的hair_dryer品牌数有3个,活跃评论在 3个月 ~ 1年内的品牌数有11个,如此下去… (笔者番外:就直觉来讲,一个品牌的评论能够活跃越长的时间,这个品牌口碑好的可能性较大)

从上图还能提取到的一个重要信息是:所有商品数据的时间跨度至少在3个月以上,也就是说,可以 以季度为单位 做时间序列。

4.2.2 星级和文本指标 变化趋势

论文作者认为helpfulness ratings对销售的影响大,单独抽出来。结果如上图,每类商品都有两条曲线,一条是 star rating-时间曲线,一条是 helpfulness ratings-时间曲线。

作者在计算评论对应的星级时,发现hair_dryer和pacifier的平均星级处于稳定趋势,没有什么显著的变化;而microwave处于上升趋势。但作者同时发现,如果只计算helpful votes,那么三件产品的趋势都是下降的。此外,作者认为必须关注helpfulness ratings更多的reviews,helpfulness更多,对顾客的吸引力越大,能够更好地预测未来商品走势。

对于review文本,作者计算了review的总量和每条review平均的词数,发现三种商品的reviews数都是处于上升状态,而每条review平均的词数都是下降趋势。

对于文本的情感,鉴于目前尚未建立起一套完整的分析系统,作者先定义满足下面两个要求的是情感倾向good的评论:

  • 包含褒义词
  • 没有贬义词

附录A举出了这样的词语:

有了这个评价手段,就可以计算每个季度里三类产品的好评率。根据下图,作者看出好评率呈现出强自相关。原文如下:


4.2.3 基于star ratings和基于文本 评价指标关系

原文写道:Obviously, there is a positive correlation between star ratings and percentage of favorable reviews – the higher the star ratings, the higher the percentage. Moreover, the numbers of reviews has no evident impacts on the percentage of favorable reviews. In addition, the average text word number does not have fixed effects on the percentage of favorable reviews.

就是说了以下三点:

  • star rating和好评率存在正相关
  • reviews数量和好评率没有明显相关性
  • reviews平均词数和好评率没有固定相关性

4.2.4 基于star ratings和文本的评价指标

首先是star ratings 的评价指标:

Nt是在第 t 季度得到的评论数,rj是第 j 条评论的星级,vj是第 j 条评论的helpfulness,IVerified和IVined是indicator functions。

接着是文本的评价指标:

这里的ej需要接下来的模型帮助确定。

5 - Model Construction

5.1 A Text Sentiment Analysis Model Based on Deep Learning

5.1.1 Steps of the Text Sentiment Analysis Model

作者首先做了关键词抽取,因为关键词是最能够代表句子情感的。但是,在进行抽取之前,先去掉所谓的停顿词(stop words),附录B记录了891个stop words:

其次,作者使用TF-IDF算法抽取关键词,TF-IDF是自然语言处理中使用的一种算法,这里不多讲,上网学习一下就可以了。

再次,作者将这些关键词转化为词向量。其实有两种方法可以判定文本的情感,本文作者选择了第2种:

  • 第一种是查找情感字典,一般这些字典里面都已经预定好了情感词的参数,判定的时候只需要根据计算方法把这些指标综合即可
  • 第二种是深度学习,将关键词转为数学向量,搭建并训练神经网络

首先对关键词进行计数并转化为独热编码:

但关键词一多,这些向量也会变得很长,神经网络训练的时间将会十分缓慢。所以,作者还使用了连续词袋模型,进行降维。

最后,将词向量转为句子向量,用神经网络训练。通过上面的处理,可以得到各个关键词向量。对于一个reivew,作者把这些词向量求和平均,作为review的句向量。有了句向量后,将该向量送入神经网络,最后得到一个代表review句子情感得分的值。训练需要训练数据集,作者如下处理:

整个深度学习框架用下图总结(作者高妙之处,在合适的地方做阶段总结,且总结能用图表就用图表,实在不行才用文字)

5.1.2 Analysis of Model Results

上面的深度模型精度还挺高(94%),接下来要填上面的一个坑:

现在模型已经有了,那么ej可以由模型来确定,也就是重新审视review和star rating的关系。

这张图给出的信息量其实挺大,作者从中提炼出了以下信息:

  • 2010-2012,中性和正面评论文本量化值与赞同率正相关,但2012年后这种关系就不明显了
  • 三种产品的差评率和负面文本量化值的相关关系明显。原文:

作者同时观察统计了正负面评价对应的星级高低,发现高星级会引发更多正面的评价,但很难衡量低星级和负面评价之间的关系。

作者使用经过TF-IDF算法提取之后的关键词,来给sunshine公司提供产品建议。下面图中,出现频次最多的当然是情感词,其次是描述性形容词(descriptive adjectives),然后是产品特征形容词。


提出的建议如下(基本就是对症下药):


5.2 A Difference Equation Prediction Model

5.2.1 Correlation Analysis of Evaluation Indicators

计算ACF和PACF,以hair dryer为例,有:

如果指标的一阶ACF较大且拖尾,且一阶PACF被截断,则表明该指标具有较强的一阶自相关。结果表明,Nt在3种产品中均表现出明显的自相关,Pt和NtW在奶嘴和微波炉中表现出自相关,而Rt和Et仅在吹风机中表现出自相关。除了平均星级和平均情感值外,我们还验证了4.2.2节中其他三个指标存在自相关的结论。在对帮助度评分、验证购买、vine设置不同权重后,每个季度的平均星级和情绪值基本保持稳定。这说明这两个指标可能主要受其他指标的影响,而不是它们本身。

接着使用皮尔逊相关系数观测变量之间的相关性:

5.2.2 Construction of Difference Equation Model
上面测定了各参数的自相关性和与其他参数的相关性之后,建立如下的差分方程:

5.2.3 Results and Analysis of Parameter Fitting
作者将三种产品的参数丢进模型进行拟合:


通过分析参数的拟合结果,作者得出:

  • star rating的提升与前季度star rating和情感值呈现负相关
  • 好评率、reviews数量和情感值的提升也和前季度对应的值负相关

这个现象看起来挺怪诞。为了探索上面现象出现的原因,作者还找到了证据(tqlb Orz),原因是存在Amazon’s click farming现象 点击跳转论文中出现的链接。

简单来说,就是顾客看到过多的好评,反而会觉得这样不真实(可能是Amazon卖家雇佣了网络水军,在“网络农场”上“耕耘”),所以在好评率高的产品面前,可能会给出差评(有点负反馈的味道)。可以阅读这个链接加深理解。

5.3 A Principal Component Analysis Model

5.3.1 Principle Introduction

这里简要介绍了主成分分析PCA,这里就不展开说了。

5.3.2 Model Results and Construction of the Success Index

选择累积方差贡献率在90%以上的成分作为主成分,例如hair dryer的PCA结果如下:


5.3.3 Effectiveness and Application of the Success Index


success index对于区分successful的产品和unsuccessful的产品,是一个good indicator。

6 - Sensitivity Analysis

作者在之前训练神经网络时,200条训练集数据通过人工标注打分。为了验证深度学习的稳定性,选取了5%和10%的text出来,这次不进行人工标注,直接观察会对最终的情感分数造成多大影响。


根据上面图表,减少人工标注的text对最终结果造成了很小的影响。这就说明建立的模型具有鲁棒性,之前产生的情感分数是可信、准确的。

此外,作者还对产品success index做了灵敏度分析,发现参数的变化对模型的影响也不大。

7 - Model Evaluation

7.1 Strengths

  • 通过先进深度学习模型,提高情感分析精度(参见5.1)
  • 探索了基于时序的review数据,结果与真实数据一致(参见5.2)
  • 提供了一个简单、有效和使用的追踪系统给公司(参见5.3)

7.2 Weaknesses

  • 神经网络训练的时间长,且需要的数据集大。However, once the network is trained, it can be used for a long time, so the time cost is relatively small.
  • 模型最多只到2015年,但2015年之后的评价指标可能会变。However, the patterns might change in the future, so it will be better to use the latest data.

8 - Conclusions and Future Work
概述了一下论文做的工作,通过模型得到的结论,阐述了一下Future work:

  • 收集最新的数据
  • 收集更具有代表性的reviews,从而对review文本的打分做出更精确的判断
  • 引入更多review的特征,得到更多有说服力的参数,这里作者枚举了图片、评论者的信誉等等

9 - A Letter to the Marketing Director of Sunshine Company


接下去,作者阐述了建模过程中工作的概貌,但较少使用专业术语,显得通俗易懂。最后是提出一些见解,这里挑几个看看:

后记

最后推荐一些我个人觉得受用的学习或者工具链接:

[1] code-of-learn-deep-learning-with-pytorch(https://github.com/L1aoXingyu/code-of-learn-deep-learning-with-pytorch)

[2] 使用pytorch快速搭建BP神经网络(包含示例)(https://www.cnblogs.com/wangqinze/p/13424368.html)

[3] 八爪鱼采集器-免费网络爬虫软件 (https://www.bazhuayu.com/)

[4] scikit-learn-Machine Learning in Python【python机器学习库】(https://scikit-learn.org/stable/index.html)

[5] 美赛常用的建模方法 (https://blog.csdn.net/qq_45467148/article/details/104340051)

[6] nlp-pytorch-zh【自然语言处理】 (https://github.com/apachecn/nlp-pytorch-zh/tree/master/docs)

[7] LaTeX的"API"文档 (https://blog.csdn.net/Gentleman_Qin/article/details/79963396)

[8] LaTeX的使用教程 (https://liam.page/2014/09/08/latex-introduction/)

[9] Excel数据分析 (https://www.zhihu.com/question/19754722)

[10] Excel数据透视 (https://zhuanlan.zhihu.com/p/36785151)

[11] 武汉大学 - 黄正华的主页 - LaTeX的详尽用法与模板 (http://aff.whu.edu.cn/huangzh/)

[12] 时间序列-详解 (https://www.biaodianfu.com/arima.html)

2020年美赛C题(数据分析题)O奖论文笔记 (2)相关推荐

  1. 2021美赛建模ICM_Problem _D题音乐思路与代码

    2021ICM D 题:音乐的影响 我们的目标是了解和衡量之前制作的音乐对新音乐和音乐艺术家的影响. 这里的之前制作的音乐是某艺术家之前制作的还是历史所有的音乐暂未表明,所以可能需要大家选择其中一个角 ...

  2. 2023美赛春季赛Y题保姆级思路及代码 了解二手帆船

    2023_MCM_Problem_Y  Understanding Used Sailboat Prices 背景: 和许多奢侈品一样,帆船的价值会随着老化和市场条件的变化而变化.附件中所附的 &qu ...

  3. 2023 美赛数学建模 | D 题 确定联合国可持续发展目标的优先级 思路、分析

    文章目录 一.前言 二.主要内容 三.总结 一.前言 你能搜索到这篇博客,无疑你是幸运的! 2023 美赛数学建模 D 题:确定联合国可持续发展目标的优先级 关键词: 17 个可持续发展目标.复杂网络 ...

  4. 2020年美赛回顾与总结

    目录 前言 基本情况 赛前计划 分工合作 选题 建模 编程 论文写作 赛后总结 前言   北京时间2020年2月18日,比赛刚刚结束1个小时,我就开始写博客了.   我们队伍在今天凌晨3点左右提交了论 ...

  5. (五)美赛写作篇:Summary官方模板+论文模板

    Summary官方模板+论文+MEMO模板 1.单独的summary sheet(Word/LaTex) 2.整合2020新版summary sheet的论文模板(Word) 美赛的其他干货分享可到[ ...

  6. 2023年美赛春季赛 Y题详细思路

    由于今年各种各样的原因,导致美赛头一次,据说也将是最后一次,临时调整,加设春季赛.这对于急需建模奖项的大家来说是一个很好的机会.无论怎样的原因,今年美赛我们可能有所遗憾.但,春季赛也许就是弥补遗憾的一 ...

  7. 数学建模美赛E、F题备考策略(自用,大部分复制粘贴)

    这里要讲一下故事的背景,我们小组三个人都是大一大二的学生,我的队友们都是数学专业的学生,所以比赛中的编程部分就交给了我这样的工业工程系的选手.我们在看完了历年赛题后一直认为:前面的几题我们都很难建立出 ...

  8. 排队论MM1与MMN的java仿真(含源代码)(美赛17年D题所用到)

    做美赛练习的时候有用到. 嗯...练习做完了自己又把代码重新更新了一下. 两个类,一个是MM1类,一个是MMN类,MMN类继承的MM1类,改了一下方法 测试类我又写了一遍,这样就可以对大家所用了,还把 ...

  9. 2020年美赛E题翻译

    2020 ICM Weekend 1 Problem E: Drowning in Plastic 自1950年代以来,由于其用途广泛,例如食品包装,消费品,医疗设备和建筑业,塑料制造业呈指数增长.尽 ...

  10. 2023美赛数学建模ABCDEF题思路模型代码

    占个位置吧,开始在本帖实时更新赛题思路代码,文章末尾获取! 下面一些题目是简单分析 A题:受干旱破坏的植物群落 A题是一个植物群落的环境问题,涉及到预测.评估分析,该题难度较大,我们可以考虑通过微分方 ...

最新文章

  1. 多级中间表示概述MLIR
  2. 【面试】上中断和下中断
  3. 缓存区溢出漏洞工具Doona
  4. vue 事件总线EventBus的概念、使用以及注意点
  5. LeetCode 1368. 使网格图至少有一条有效路径的最小代价(BFS最短路径,难)
  6. google 浏览器默认打开控制台_chrome浏览器使用 Console(控制台)
  7. Oracle日期类型转换格式
  8. Vue2版Cnode社区webapp
  9. 高科技公司的 CEO 要写代码吗?
  10. 税务计算机 试题分析,税务师考试方式、题型、计算器使用规定
  11. 四叉树 gis java_GIS中四叉树索引及其分类介绍
  12. 使电动机反转的matlab仿真图,基于MATLAB的电机仿真研究
  13. 基于javaEE的超市库存管理系统
  14. excel之高级筛选与VLOOKUP函数
  15. 根据epc和ra定位linux kernel panic或者应用程序的出错位置
  16. cvs100e_CVS100E断路器
  17. 大数据计算 PCIe 扩展坞系统
  18. 云计算的六大核心技术,你了解多少?
  19. 行为驱动开发(BDD)全面介绍
  20. 国产超低功耗华大单片机HC32L136开发板上手入门

热门文章

  1. 游戏计算机lnv10,Win10日文游戏乱码转换工具(Locale Emulator)
  2. ST25读FeliCa卡记录
  3. 天翼网关密码忘记(猫密码忘记)
  4. 可行性研究报告——机房收费系统
  5. 斗鱼直播云原生实践之注册中心篇
  6. [Unity官方教程]Tanks!单机双人坦克大战源码和素材
  7. .gen格式文件读取,完成兰伯特和墨卡托投影转换
  8. 字体引起的用户密码错误
  9. 用python计算工程量_基于Python脚本程序的电缆工程量快速统计方法与流程
  10. SuperMap GIS 10i大数据GIS 技术白皮书