CausalMMM:基于因果结构学习的营销组合建模

1. 摘要

在线广告中,营销组合建模(Marketing Mix Modeling,MMM) 被用于预测广告商家的总商品交易量(GMV),并帮助决策者调整各种广告渠道的预算分配。传统的基于回归技术的MMM方法在复杂营销场景下效果不尽如人意。尽管一些研究尝试使用因果结构进行更好的预测,但它们有一个严格的限制,即因果结构是事先已知且不可改变的。在本文中,我们定义了一个新的因果MMM问题,以自动从数据中发现可解释的因果结构,并得出更好的GMV预测结果。为了实现因果MMM,需要解决两个关键挑战:(1)因果异质性:不同类型广告商家的各渠道间因果关系结构差异很大。(2)营销响应模式:渠道投入对结果GMV的影响,例如在实证研究中发现的衰减效应和饱和效应。本研究认为,因果MMM需要动态地为不同广告商家发现营销行为间具体的因果结构,并且预测结果应符合先验已知的营销响应模式。因此,我们提出了CausalMMM,它在变分推断框架中集成了Granger因果,以测量不同渠道之间的因果关系,并在时态和饱和度营销响应模式的规范化下预测GMV。大量实验证明,CausalMMM不仅可以实现5.7%+的因果结构学习性能提高,在阿里妈妈真实数据上,还可以大幅提高GMV预测结果的准确性,为不同广告商家提供更可靠的GMV预测以及广告渠道间因果关系挖掘。

该项工作由阿里妈妈SDS团队和中科院计算所毕经平研究员与姚迪副研究员团队合作完成,基于该项工作整理的论文已被WSDM 2024接收,欢迎阅读交流。

论文:CausalMMM: Learning Causal Structure for Marketing Mix Modeling

作者Chang Gong, Di Yao, Lei Zhang, Sheng Chen, Wenbin Li, Yueyang Su, Jingping Bi

下载(↓阅读原文↓):https://dl.acm.org/doi/10.1145/3616855.3635766

延展阅读:CausalMTA: 基于因果推断的无偏广告多触点归因技术


2. 背景

阿里妈妈目前已有丰富的广告产品,包含搜索、展示、直播、短视频、品牌等多种形态。广告主往往会将预算分配在不同广告渠道上,来覆盖用户转化旅程下的不同触点。广告主希望能精确衡量多渠道预算对整体销量的贡献,从而优化GMV、投入产出比(ROI)等目标,形成多渠道间预算投入的最优方案。

营销组合模型(Marketing Mix Modeling,简称MMM)是一种统计分析技术,帮助平台与广告主评估不同营销行为的效果以指导预算规划决策,并提高整体营销决策的有效性。MMM利用平台丰富的营销领域数据来训练模型,衡量各个营销渠道的影响,同时考虑店铺品牌、宏观经济、大盘等对最终转化数据有影响的非营销因素。基于对未来转化情况的预测,为后续广告投放计划提供全局预算调控指导,是在线数字广告系统中一个重要的提效手段。

f50cc701b636ca9910d93b71d5d34807.png
图1:MMM输入-输出示意图

现有MMM工作大多可以分为两类:基于回归的方法、基于因果的方法。前者[1]基于不同渠道的消耗对GMV做回归,以回归系数解释各渠道重要性程度,但忽视了渠道之间的相互影响,影响模型的解释能力;后者[2]大多从先验知识出发预先定义因果结构,但忽略了不同商铺之间因果结构的异质性,难以用于实际场景中指导决策。因此,从传统MMM出发引入因果发现方法,动态挖掘不同店铺的因果结构,显得尤为重要。

6eff781a19061e805c9529050947471f.png
图2:MMM多渠道间的异质因果结构、上下文环境对GMV影响

然而,在MMM任务中动态挖掘因果结构并非易事,存在以下挑战:

挑战一:因果异质性(Causal Heterogeneity)

不同店铺特点和不同时期,渠道的因果结构和动态会有所不同。如图2(a)所示,影响销量的潜在因果驱动因素以及营销反应曲线,通常在不同品牌档次和营销事件中是异质的。与男装店铺相比,美妆店铺中品牌广告和页面浏览之间的因果效应更为关键。这种因果结构的异质性,在数据不平衡的情况下更加难以被传统MMM发现。

挑战二:营销响应模式(Marketing Response Patterns)

在前人的研究[3]中,已经验证了广告效果随投入发生响应的几种重要模式,如溢出效应和饱和效应。如图2(b)所示,广告投入的影响会随时间衰减,并随着投入的增加而饱和。除了因果结构,GMV曲线也受到一些背景变量的影响,如经济状况和竞争情况。因此,因果MMM中对预测目标与各变量的关心应该被精细建模,以满足各种营销响应模式。

3. 方法

为了解决这些挑战,我们提出了一种新的营销组合模型,称为CausalMMM,它可以同时处理因果异质性和营销模式,实现因果营销组合模型。总的来说,CausalMMM是一种基于图变分自编码器的方法,由两个关键模块组成:因果关系编码器(Causal Relational Encoder)和营销响应解码器(Marketing Response Decoder)。在因果关系编码器中,我们对店铺的历史数据进行编码,以Gumbel softmax采样生成特定的因果结构。基于因果结构,营销响应解码器被设计为满足营销响应模式的先验条件,并实现良好的预测性能。解码器中集成了顺序模型和S曲线转换,分别捕获了溢出和饱和效应。对于优化,CausalMMM直接用变分推理损失拟合历史数据,以端到端的方式学习参数。此外,CausalMMM具有理论保证,得到的因果结构是格兰杰因果[8]关系,且算法复杂度随店铺数目增加而线性增长。

9c22c91f2d162b02ccb82912a0767cc3.png
图3:CausalMMM的Encoder-Decoder整体框架

3.1 因果关系编码器模块 Causal Relational Encoder

因果关系编码器旨在根据历史广告支出和营销目标,推断因果关系的可能性。具体来说,因果结构的联合分布可表示为,其中表示从节点i到j存在一条有向边(即),且i≠j。由于事先不知道潜在的因果结构,我们从一个完全连通的图开始预测因果关系。利用图神经网络(GNN)在完全连通的图上传播信息,预测因果边[7]。因果关系编码器包括三个步骤,即成对嵌入、关系交互和Gumbel softmax采样。

我们首先通过广告消耗-营销目标间的成对嵌入在完全连通图中初始化边表示。成对嵌入的形式如下,这种方式以成对的方式捕捉了营销行为与目标间初始的局部信息:

在关系交互阶段,为了考虑与其他节点的关系交互,即全局信息,我们进一步计算边嵌入,其公式如下:

上述公式可以总结为通过编码器框架来推导结构分布,如下所示:

由于潜在分布是离散的,无法直接通过重参数化技巧进行反向传播学习模型参数,因此在训练过程中我们添加了Gumbel分布噪声[5],来推断因果结构:

3.2 营销响应解码器 Marketing Response Decoder

解码器的目的是在推断的因果结构下建模营销响应,预测最终的营销目标。尽管基于上述推断的因果结构能够建模复杂的因果交互,但其他营销模式仍然不容忽视。营销组合建模中存在两个典型的假设:

  • 时序营销反馈(Temporal Marketing Response):广告渠道的投资具有滞后性和时间衰减效应,即carryover effect。

  • 饱和营销反馈(Saturation Marketing Response):广告渠道的投资收益具有边际递减效应。

如何系统地建模时间和饱和模式是一个不容忽视的问题。在大多数情况下,每个时间段内的渠道消耗相比于历史每个时间点累积的总消耗要更小。因此,我们首先建模时序模式,然后建模饱和模式。如图4所示,营销响应解码器由两个步骤组成,即时序营销响应模块和饱和营销响应模块。

e8091d7aacdb0238e6ab45f09219c93b.png
图4:解码阶段的时序营销与饱和营销反馈建模
时序营销响应模块 Temporal Marketing Response Module

为了考虑时序特征,我们在原有的GNN消息传递机制中添加了序列模型。即,

其中,前一时间步的循环隐藏状态被用于消息传递机制。是这里使用RNN实现的序列模型,它以、当前值和前一个隐藏状态作为输入,捕捉每个营销变量的时间模式。

饱和营销响应模块 Saturation Marketing Response Module

递减收益对营销决策非常重要,因为它反映了渠道营销投资和目标收入之间的动态响应关系。在这个模块中,我们关注S-curve (Hill)变换[3],这是建模饱和度最广泛使用的方法,我们采用基于梯度的方式来学习变换参数预测下一时刻营销目标。传统上,用于描述渠道对y的饱和效应的S-curve S(·)定义如下:

其中,α控制曲线在指数和S型之间的形状,γ表示响应曲线的拐点。它们的值受广告主、渠道、市场特性的影响。

我们通过神经网络对α和γ进行建模,输入为上下文变量C的向量。这为模型带来了更强的表示能力和可解释性[6],因为包括店铺类型、事件和宏观趋势在内的附加信息可用于确定饱和曲线的形状。具体来说,营销目标的传统S曲线模型扩展为以下形式:

其中,fγ(·)表示用于计算市场拐点的神经网络,fα(·)是一个神经网络,其输出控制曲线在介于指数和S型之间的形状。在这个模块中,神经网络的模型能力和S曲线的显式表达能力被集成在了一起,已互补取得更好的预测效果。

基于上述两个模块,我们可以得出,分别刻画了d维渠道上的营销行为和营销目标的预测值。最终的基于历史的成对时间序列,对下一时刻多渠道、营销目标值的预测概率如下所示:

其中,σ是固定的方差项。对于多个时间步的预测,结果会以递归的方式进行调用预测,即:

3.3 变分优化 Variational Inference for Optimization

这一节给出了基于变分推理的优化过程。上面详述的和的参数可以根据以下内容导出:

且损失函数可以改写为变分下界(variational lower bound):

其中,第一项是拟合数据的负对数似然,第二项是正则化的结构先验分布的KL散度。

4. 实验

本文分别在具有已知因果结构的仿真数据集与阿里妈妈真实数据集上实验。本文对比了CausalMMM模型与7个基准模型的实验情况,基准模型可分为两类,时序因果发现方法:Linear Granger[9],NGC[10],GVAR[11],InGRA[12];以及传统用于MMM与GMV预测的方法:LSTM[13],Wide&Deep[14],BTVC[4]。此外,本文还对比了三个消融方法(CM-FULL,CM-MARKOV,CM-RW)。

图5是不同模型在不同变量数目、不同时间步长、不同因果异质性下因果发现的性能,CausalMMM在三类不同设定下都有更好的表现。

45add02082df129c410caa726a85e9cd.png

图5:不同模型在不同参数下仿真数据集的预测效果

图6是GMV预测的MSE结果,比较了不同预测步长(1步、7步、30步)下各种方法的表现。我们可以观察到:

(1) 在所有比较的方法中,BTVC在M=30时表现最好,这可能归因于它明确引入了趋势和季节性信息的有益作用。

(2) 我们提出的CausalMMM在M=7时取得了最佳性能,在M=1和M=30时也达到了第二好的表现,这体现了该方法的有效性。

3ef6b1573d90da6e24a671f8cc988eb6.png
图6:CausalMMM对比因果发现、传统预测、消融方法在阿里妈妈数据上的GMV预测效果

图7可视化了在真实数据集中一家美妆店铺学习到的因果结构。我们展示对比了CausalMMM和之前最好方法GVAR学习到的11个营销渠道、页面浏览量(PV)以及营销目标(即GMV)的因果结构。在这些营销渠道中,前六个(即x-brand-0, ..., x-feed)是品牌广告渠道,旨在提高用户的认知和兴趣。相反,剩余的5个(即x-live, ..., x-effect)是效果渠道,用户在这些渠道更可能采取行动并实现转化。我们可以观察到,从品牌渠道到PV,再从PV到效果渠道存在因果关系。这些结果与营销领域专家的知识一致,并且与营销漏斗效应的结论一致。我们的方法还发现了一些有意义的关系,包括x-brand-1到x-search-1/2,表明在外部视频网站投放广告会导致电商平台上的搜索量增加。

6415fa07b7ad151b72c7e557456c599a.png
图7:CausalMMM与GVAR在阿里妈妈数据上对广告渠道因果结构的学习

5. 总结

MMM模型评估了不同营销行为下的营销效果,能够帮助商家从全局视角优化广告资源投放,从而提升整体营销收益。本文定义了因果营销混合模型(Causal MMM)的问题,该模型推断每个广告商家下各渠道间因果结构,并学习从渠道支出到GMV预测的映射关系。为了建模因果异质性和营销响应模式,我们提出了CausalMMM模型,该模型既能从异构数据中学习因果结构,又能建模营销响应模式。CausalMMM使用因果关系编码器和营销响应解码器。在仿真数据集和电商平台的实际商业数据上的实验结果表明,CausalMMM优于基线模型,并在应用中表现良好。

▐ 关于我们

🏷 阿里妈妈SDS(Strategic Data Solutions)团队致力于用数据让商家和平台的增长战略更加科学有效。我们为阿里妈妈全线广告客户提供营销洞察、营销策略、价值量化及效果归因的技术服务。我们将持续在数字营销领域MTA、MMM等方向进行探索和落地,欢迎各业务方关注与合作。同时,真诚欢迎感兴趣的同学和我们取得联系、互相交流。

联系邮箱:alimama_tech@service.alibaba.com

📝 CausalMMM 是阿里妈妈SDS和中科院计算所毕经平、姚迪老师团队多年合作的共同成果。双方不仅在MTA、MMM等学术领域做出了创新成果,也根据阿里独特的电商业务场景做了针对性的适配和优化,最终在学术研究与实际业务都取得满意的结果。毕老师的课题组围绕时序数据智能、网络智能、AI算法安全等领域开展研究,面向国家权益保障、国家网络与信息安全等国家重大战略需求,承担了多项国家科技重大专项、国家自然科学基金、国防预研项目和研制项目等重大项目。近三年来,课题组在KDD、WWW、ICDE、TKDE、TON等期刊会议上累计发表CCF A类论文十余篇。欢迎感兴趣的同学合作交流。

联系邮箱:yaodi@ict.ac.cn

▐ Reference

[1] Richard Wigren and Filip Cornell. 2019. Marketing Mix Modelling: A comparative study of statistical models.

[2] Aiyou Chen, David Chan, Mike Perry, Yuxue Jin, Yunting Sun, Yueqing Wang, and Jim Koehler. 2018. Bias correction for paid search in media mix modeling. arXiv:1807.03292 (2018).

[3] Yuxue Jin, Yueqing Wang, Yunting Sun, David Chan, and Jim Koehler. 2017. Bayesian methods for media mix modeling with carryover and shape effects. (2017).

[4] Edwin Ng, Zhishi Wang, and Athena Dai. 2021. Bayesian Time Varying Coefficient Model with Applications to Marketing Mix Modeling. In AdKDD'21 Workshop.

[5] Eric Jang, Shixiang Gu, and Ben Poole. 2017. Categorical Reparameterization with Gumbel-Softmax. In 5th International Conference on Learning Representations, ICLR'17.

[6] Kui Zhao, Junhao Hua, Ling Yan, Qi Zhang, Huan Xu, and Cheng Yang. 2019. A Unified Framework for Marketing Budget Allocation. In KDD'19. ACM, 1820–1830.

[7] Thomas N. Kipf, Ethan Fetaya, Kuan-Chieh Wang, Max Welling, and Richard S. Zemel. 2018. Neural Relational Inference for Interacting Systems. In ICML'18, 2693–2702.

[8] Sindy Löwe, David Madras, Richard Z. Shilling, and Max Welling. 2022. Amortized Causal Discovery: Learning to Infer Causal Graphs from Time-Series Data. In CLeaR'22, 509–525.

[9] Andrew Arnold, Yan Liu, and Naoki Abe. 2007. Temporal causal modeling with graphical granger methods. In KDD'07. ACM, 66–75.

[10] Alex Tank, Ian Covert, Nicholas J. Foti, Ali Shojaie, and Emily B. Fox. 2022. Neural Granger Causality. In TPAMI'22, 4267–4279.

[11] Ricards Marcinkevics and Julia E. Vogt. 2021. Interpretable Models for Granger Causality Using Self-explaining Neural Networks. In ICLR'21.

[12] Yunfei Chu, Xiaowei Wang, Jianxin Ma, Kunyang Jia, Jingren Zhou, and Hongxia Yang. 2020. Inductive Granger Causal Modeling for Multivariate Time Series. In ICDM 2020, 972–977.

[13] Sepp Hochreiter and Jürgen Schmidhuber. 1997. Long Short-Term Memory. Neural Comput. 9, 8 (1997), 1735–1780.

[14] Heng-Tze Cheng, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi Aradhye, Glen Anderson, Greg Corrado, Wei Chai, Mustafa Ispir, Rohan Anil, Zakaria Haque, Lichan Hong, Vihan Jain, Xiaobing Liu, and Hemal Shah. 2016. Wide & Deep Learning for Recommender Systems. In RecSyS'16. ACM, 7–10.

END

8a1912a4ff759333d01fdf8047b9bed2.gif

也许你还想看

CausalMTA: 基于因果推断的无偏广告多触点归因技术

【阿里妈妈营销科学系列】第六篇:营销组合模型MMM

广告营销场景下的隐私计算实践:阿里妈妈营销隐私计算平台SDH

开放下载 | 阿里妈妈营销科学系列上线啦!

关注「阿里妈妈技术」,了解更多~

322bfc6810347c3382b41e87874ff26c.gif

喜欢要“分享”,好看要“点赞”哦ღ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/357618.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

34 - 指定日期的产品价格(高频 SQL 50 题基础版)

34 - 指定日期的产品价格 -- row_number(行号) 生成连续的序号,不考虑分数相同 -- 在2019-08-16之前改的价格,使用最近一期的日期,没有在2019-08-16之前改的价格,默认价格为10 select t.product_id, t.new_price as price from (s…

华为某员工爆料:三年前985本科起薪30万,现在硕士起薪还是30w,感慨互联网行情变化

“曾经的30万年薪,是985本科学历的‘标配’,如今硕士也只值这个价?” 一位华为员工的爆料,揭开了互联网行业薪资变化的冰山一角,也引发了不少人的焦虑:互联网人才“通货膨胀”的时代,真的结束了…

板凳-------unix 网络编程 卷1-1简介

unix网络编程进程通信 unpipc.h https://blog.csdn.net/u010527630/article/details/33814377?spm1001.2014.3001.5502 订阅专栏 1>解压源码unpv22e.tar.gz。 $tar zxvf unpv22e.tar.gz //这样源码就被解压到当前的目录下了 2>运行configure脚本,以生成正确…

【区块链】区块链架构设计:从原理到实践

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 区块链架构设计:从原理到实践引言一、区块链基础概念1.1 区块链定义…

k8s上使用ConfigMap 和 Secret

使用ConfigMap 和 Secret 实验目标: 学习如何使用 ConfigMap 和 Secret 来管理应用的配置。 实验步骤: 创建一个 ConfigMap 存储应用配置。创建一个 Secret 存储敏感信息(如数据库密码)。在 Pod 中挂载 ConfigMap 和 Secret&am…

荣耀社招 测试工程师 技术一面

面经哥只做互联网社招面试经历分享,关注我,每日推送精选面经,面试前,先找面经哥 1、自我介绍 2、具体介绍做过的项目,支撑的事什么业务 3、防火墙测试时、平时有写脚本或者使用第三方工具吗 4、对互联网的安全测试规…

浏览器插件利器-allWebPluginV2.0.0.14-bata版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持谷歌、火狐等浏…

DataStructure.时间和空间复杂度

时间和空间复杂度 【本节目标】1. 如何衡量一个算法的好坏2. 算法效率3. 时间复杂度3.1 时间复杂度的概念3.2 大O的渐进表示法3.3 推导大O阶方法3.4 常见时间复杂度计算举例3.4.1 示例13.4.2 示例23.4.3 示例33.4.4 示例43.4.5 示例53.4.6 示例63.4.7 示例7 4.空间复杂度4.1 示…

从零开始搭建一个酷炫的个人博客

效果图 一、搭建网站 git和hexo准备 注册GitHub本地安装Git绑定GitHub并提交文件安装npm和hexo,并绑定github上的仓库注意:上述教程都是Windows系统,Mac系统会更简单! 域名准备 购买域名,买的是腾讯云域名&#xf…

神经网络实战1-Sequential

链接:https://pytorch.org/docs/1.8.1/generated/torch.nn.Sequential.html#torch.nn.Sequential 完成这样一个网络模型 第一步新建一个卷积层 self.conv1Conv2d(3,32,5)#第一步将33232输出为32通道,卷积核5*5 注意一下:输出通道数等于卷积…

JavaSE基础总结复习之面向对象の知识总结

目录 Java语言的基础特点 面向对象 类和对象 类 类的构造 一,发现类 二,发现类的共有属性(成员变量) 三,定义类的成员方法(行为,动词) 四,使用类创建对象 对象…

用TensorRT-LLM进行LLama的推理和部署

Deploy an AI Coding Assistant with NVIDIA TensorRT-LLM and NVIDIA Triton | NVIDIA Technical BlogQuick Start Guide — tensorrt_llm documentation (nvidia.github.io) 使用TensorRT-LLM的源码,来下载docker并在docker里编译TensorRT-LLM; 模型…

Eureka 服务注册与发现

目录 前言 注册中心 CAP 理论 常⻅的注册中心 CAP理论对比 Eureka 搭建 Eureka Server 引⼊ eureka-server 依赖 完善启动类 编写配置⽂件 启动服务 服务注册 引⼊ eureka-client 依赖 完善配置⽂件 启动服务 服务发现 引⼊依赖 完善配置⽂件 远程调⽤ 启动…

江协科技51单片机学习- p16 矩阵键盘

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

web安全渗透测试十大常规项(一):web渗透测试之JAVA反序列化

渗透测试之PHP反序列化 1. Java反序列化1.1 Java安全-反序列化-原生序列化类函数1.1.1 原生序列化类函数:1.2 Java安全-SpringBoot框架-泄漏&CVE1. Java反序列化 1、序列化与反序列化 序列化:将内存中的对象压缩成字节流 反序列化:将字节流转化成内存中的对象2、为什么…

数据仓库和数据库有什么区别?

一、什么是数据仓库二、什么是数据库三、数据仓库和数据库有什么区别 一、什么是数据仓库 数据仓库(Data Warehouse)是一种专门用于存储和管理大量结构化数据的信息系统。它通过整合来自不同来源的数据,为企业提供统一、一致的数据视图&…

SuiNS发布子名及新命名标准,推动Web3身份结构的进步

SuiNS子名是Sui Name Service的强大扩展,最近与新命名标准一起发布。子名允许用户在一个主要的SuiNS名下创建额外的自定义身份,而无需额外费用。用户 gia 可以创建如 gaminggia 或 lendinggia 这样的子名,从而增强个人组织和支持群组与组织的…

通过Socket通信实现局域网下Amov无人机连接与数据传输

1.局域网下的通信 1.1 局域网 厂家提供的方式是通过Homer图数传工具(硬件)构建的amov局域网实现通信连接. 好处是通信距离足够长,支持150m;坏处是"局部",无法访问互联网. [IMAGE:…

AGV机器人的调度开发分析(1)- 内核中的路线规划

准备开始写一个系列,介绍下AGV机器人的调度的开发和应用。 按照openTCS的核心内容,国内多家广泛应用于AGV的调度。那么架构图如下: Kernel中有一个是Routing,这是路由规划模块,需要实现的细节功能包括如下&#xff1a…

SpringBoo+vue3+vite整合讯飞星火3.5通过webscoket实现聊天功能(前端代码)附带展示效果

访问地址: 天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/site 后端文档: SpringBoovue3整合讯飞星火3.5通过webscoket实现聊天功能(全网首发)附带展示效果_springboot websocket vue3-CSDN博客https://blog.csdn.net/qq_53722…