加密货币市场在短时间内经历了爆炸式增长,其市值从2017年的170亿美元飙升至2021年的2.25万亿美元,涨幅超过130倍。尽管增长迅猛,加密货币仍以高波动性著称,其价格受市场趋势、政治事件、技术发展乃至社交媒体言论等多重因素影响。特别是在Twitter等平台上,知名人物的推文甚至能直接引发币价剧烈波动。
在哈佛大学扩展学院的一门数据工程与分析课程中,我们小组完成了一个项目:构建一个加密货币数据湖,供数据工程师、机器学习从业者和商业智能分析师等不同角色使用,旨在分析加密货币的长期趋势,尤其是社交媒体情绪对加密货币(如比特币)价格波动的影响。我们利用Databricks Lakehouse平台,通过Tweepy库摄取Twitter的非结构化数据,并通过yfinance库获取来自雅虎财经的传统结构化价格数据,最终构建了一个机器学习预测模型,用于分析投资者情绪对加密货币估值的影响。聚合后的趋势和可操作的见解通过Databricks SQL仪表板展示,方便相关利益方查阅。
项目架构概述
加密货币的一大优势是全天候交易,市场数据随时可用,这为分析推文与币价之间的相关性提供了便利。下图展示了数据和机器学习管道的高层架构:
我们的完整业务流程运行了一系列Databricks笔记本,执行以下任务:
数据摄取管道
- 将原始数据导入加密货币Delta Lake的Bronze表。
数据科学处理
- 清理数据并将Twitter情感机器学习模型应用于Silver表。
- 将精炼后的Twitter和雅虎财经数据聚合到Gold表。
- 计算价格与情感之间的相关性机器学习模型。
数据分析
- 在Gold表上运行更新的SQL商业智能查询。
Lakehouse范式结合了数据湖和数据仓库的关键能力,支持各种商业智能和人工智能用例。采用Lakehouse架构后,我们仅用一周时间就完成了管道的搭建。团队中不同成员扮演了不同数据角色,该范式实现了数据工程、机器学习和商业智能之间的无缝衔接,无需跨系统移动数据。
数据与机器学习管道
基于Medallion架构的数据摄取
主要数据源包括Twitter和雅虎财经。我们使用了一个查找表来存储加密货币代号及其对应的Twitter话题标签,以便后续搜索相关推文。
我们使用yfinance Python库从雅虎财经API以15分钟为间隔下载历史加密货币交易市场数据。原始数据存储在Bronze表中,包含代号、时间戳、开盘价、收盘价、最高价、最低价和成交量等信息。随后,我们创建了一个Delta Lake Silver表,添加了更多数据,如该时间段内代号的相对价格变化。Delta Lake保证了每次操作的原子性,便于数据重新处理,同时强制执行模式,防止不良数据进入数据湖。
我们使用tweepy Python库下载Twitter数据,将原始推文存储在Delta Lake Bronze表中。从中移除不必要的数据并过滤掉非ASCII字符(如表情符号)后,将精炼数据存入Delta Lake Silver表。
数据科学实践
数据科学部分包括三个主要环节:探索性数据分析、情感模型和相关性模型。目标是构建情感模型,并利用其输出评估情感与不同加密货币(如比特币、以太坊、Coinbase和币安)价格之间的相关性。情感模型采用有监督的多类别分类方法,而相关性模型使用线性回归模型。我们使用MLflow管理两个模型的生命周期,包括实验、可重现性、部署和中央模型注册。MLflow注册表通过提供集中式模型存储、API和UI,协作管理MLflow模型的全生命周期,支持模型溯源、版本控制、阶段转换(如从暂存到生产或归档)和注释等功能。
探索性数据分析
探索性数据分析部分通过可视化呈现数据集的深入洞察。例如,我们使用Seaborn的小提琴图查看了各情感类别推文长度的分布情况;通过matplotlib和wordcloud库生成正面和负面推文的词云,展示两种情感类型中最常见的词汇;还基于Gensim构建了交互式主题建模仪表板,展示数据集中最常见的主题、各主题中的高频词以及主题之间的相似度。
情感分析模型
开发准确的情感分析模型是本项目的核心任务之一。该模型的目标是将原始推文中表达的情感极性分类为“正面”、“中性”或“负面”。由于情感分析具有重要的实际意义,文献中提出了多种机器学习策略:
- 情感词典算法:将推文中的每个词与标注了正面或负面情感的词数据库进行比较。优点是方法直接,缺点是性能通常较差,且高度依赖词库质量。
- 现成情感分析系统:如Amazon Comprehend、Google Cloud Services和Stanford Core NLP。优点是不需要大量数据预处理,可即开即用;缺点是对特定用例的微调有限(可能需重新训练以调整模型性能)。
- 经典机器学习算法:应用逻辑回归、随机森林、支持向量机或朴素贝叶斯等传统监督分类器。优点是知名度高、成本低、易解释;缺点是对文本等非结构化数据的性能通常较差,且预处理工作繁重。
- 深度学习算法:应用BERT、GPT-2/GPT-3等自然语言处理神经网络架构,主要通过迁移学习实现。优点是存在许多预训练神经网络(对迁移学习特别有帮助),深度学习模型能有效随数据规模扩展;缺点是调整架构和超参数难度大、计算成本高。
本项目聚焦后两种方法,因为它们最具潜力。我们选择SparkNLP作为自然语言处理库,因其功能广泛、可扩展性强(完全由Apache Spark™支持)且准确性高(包含多种最先进的嵌入技术,支持迁移学习)。首先,我们使用上述经典机器学习算法构建了情感分析管道,包括预处理、特征向量化以及训练和超参数调优三个部分。
我们在每个分类器上运行该管道,并比较它们在测试集上的准确率。结果,支持向量分类器的准确率最高,达到75.7%,逻辑回归(75.6%)、朴素贝叶斯(74%)和随机森林(71.9%)紧随其后。为提升性能,可测试XGBoost或GradientBoostedTrees等其他监督分类器,或将多个算法组合成集成模型进行预测(如多数投票或堆叠)。
除了第一条管道,我们还开发了第二条Spark管道,架构类似但利用了SparkNLP丰富的预训练词嵌入和深度学习模型功能。从标准文档组装注释器开始,我们仅使用标准化注释器移除Twitter句柄、字母数字字符、超链接、HTML标签和时间戳,未使用其他预处理相关注释器。在训练阶段,我们使用了SparkNLP提供的预训练(基于知名IMDb数据集)情感深度学习模型。使用默认超参数设置时,测试集准确率已达83%,若采用其他预训练词嵌入或情感深度学习模型,性能还可能进一步提升。因此,深度学习策略明显优于图5中支持向量分类器管道,准确率高出约7.4个百分点。
相关性模型
项目要求包含情感与价格的相关性模型,因此我们使用scikit-learn和mlflow.sklearn构建了线性回归模型。
我们通过为负面推文赋值-1、中性推文0、正面推文1来量化情感。每种加密货币的总情感得分按15分钟时间窗口累加计算。线性回归模型利用所有加密货币在各窗口内的总情感得分预测价格百分比变化。然而,该模型未显示情感与价格变化之间存在明确的线性关系。未来改进方向可能是利用情感极性预测价格变化。
商业智能应用
理解股票相关性模型是生成买卖预测的关键,但与信息交互并传达结果对于做出明智决策同样重要。市场动态变化,需要实时可视化来聚合和组织趋势信息。Databricks Lakehouse将所有商业智能分析师任务协调在一处,简化了对数据湖表的访问。首先,生成一组SQL查询从Lakehouse提取和聚合信息;然后通过GUI工具轻松导入数据表,快速创建仪表板视图。除仪表板外,还设置了警报触发器,用于通知用户关键活动,如股票涨跌幅超过X%、特定加密货币话题的Twitter活动增加或各加密货币整体正面/负面情绪变化。
仪表板生成
商业智能仪表板使用Databricks SQL创建。该系统提供完整的生态系统,用于生成SQL查询、创建数据视图和图表,并最终通过Databricks仪表板组织所有信息。
Databricks中的SQL编辑器是简化流程的关键。每个查询均可通过编辑器GUI选择不同的数据视图,包括表格、图表和摘要统计信息,即时查看输出结果。随后,视图可直接导入仪表板,消除了冗余,实现了同一查询用于不同可视化。
可视化呈现
针对Twitter情感分析主题,有三个关键视图帮助用户更深层次地与数据交互:
- 视图1:概览页面,从高层视角展示Twitter影响者、股票变动以及与特定加密货币相关的推文频率。
- 视图2:情感分析,用于理解每条推文是正面、负面还是中性。可轻松可视化给定时间窗口内哪些加密货币最受关注。
- 视图3:股票波动性,为用户提供各加密货币价格的详细信息及随时间变化的趋势。
主要发现
通过数据分析,我们得出以下结论,凸显Twitter用户对加密货币价格的影响程度:
- 推文数量与加密货币价格波动相关:高推文频率时期与加密货币变动存在明显相关性。值得注意的是,这发生在股价变化前后,表明部分推文狂潮先于价格变化并可能影响价值,而另一些则是对大幅价格变动的回应。
- 粉丝数多的Twitter用户对加密货币价格影响未必更大:媒体事件中常讨论这一点,尤其是针对知名度较低的货币。虽然像埃隆·马斯克这样的极端影响者能以少量针对性推文引发巨大市场波动,但粉丝数量与货币价格变动之间并无底层相关性。转发次数与价格变动甚至呈轻微负相关,表明影响者的Twitter活动可能通过新闻文章等其他媒介产生更广泛的影响,而非直接触达投资者。
- Databricks平台在解决复杂问题方面极具价值:总体而言,使用Databricks协调从数据摄取、Lakehouse数据结构到商业智能报告仪表板的管道,极大提高了项目完成效率。短时间内,团队就构建了数据管道,完成了机器学习模型,并生成了高质量的可视化结果。Databricks平台提供的基础设施消除了许多技术挑战,确保了项目成功。
尽管这一工具无法助您智胜加密货币市场,但我们坚信它能预测波动性加剧的时期,这对特定投资条件有利。
免责声明: 本文不对金融投资决策负责。本网站内容不应被解释为投资建议。
常见问题
1. 为什么选择Delta Lake作为数据湖解决方案?
Delta Lake提供了ACID事务、模式强制执行和数据版本控制等功能,确保数据质量和一致性。它简化了数据重新处理流程,并防止不良数据污染数据湖,特别适合高频率更新和数据协作场景。
2. 情感分析模型的选择有哪些考量?
我们对比了经典机器学习算法和深度学习算法。经典方法成本低、易解释,但性能较低;深度学习方法准确率高、扩展性好,但计算成本较高。最终根据项目需求和资源选择了SparkNLP的预训练深度学习模型。
3. 如何保证数据管道的可扩展性?
Databricks Lakehouse平台基于Apache Spark构建,天然支持分布式计算和数据并行处理。Medallion架构(Bronze、Silver、Gold层)确保了数据逐步精炼,易于扩展和维护。
4. 推文情感与加密货币价格是否始终相关?
我们的模型未发现强烈的线性关系,但高推文频率时期与价格波动存在相关性。未来可探索非线性模型或引入其他因素(如交易量、市场情绪指数)增强预测能力。
5. Databricks在项目中的主要优势是什么?
Databricks提供了端到端的统一平台,整合了数据工程、机器学习和商业智能工作流。其协作笔记本、MLflow集成和SQL编辑器大幅降低了技术复杂度,加速了项目开发。
6. 该项目是否适用于其他金融数据分析场景?
是的,该架构和方法可扩展至股票、外汇等其他金融领域,只要数据源可用且分析目标涉及情感与市场行为的关联研究。
通过本项目,我们展示了如何利用现代数据平台和机器学习技术深入探索社交媒体与金融市场间的复杂关系。无论您是数据工程师、科学家还是分析师,这类方法都能为您提供强大的分析基础和 actionable 的洞察。