谈谈 LLM 在推荐域的渗透,探索推荐新范式

news2025/1/24 8:37:43

搜索慢慢的被大模型渗透,那么很自然很多人想到了推荐,但是推荐是不是真的可以被大模型渗透呢?大模型能改变推荐的范式吗?

最近大模型真的很火,从个人到公司,各行各业都在学习大模型、总结大模型和尝试应用大模型。大模型其实不是一个新的产物,已经在NLP发展了很多年。ChatGPT的诞生,经验的效果震惊了所有人,虽然也有一些瑕疵,但是瑕不掩瑜。微软投资OpenAI看到了它的未来。微软快速围绕ChatGPT对相关的产品进行了产品升级,从搜索到微软365各种产品。

5.29号有机会和部门的一些同事一起到上海微软进行了参观访问,微软给我们从内部产品升级到针对企业级的ChatGPT,全方位进行了解读,很震撼。一个大象级别的公司,竟然在AI面前这么灵活,而且有决心、有魄力对全部产品进行改造,ALL IN AI 。微软的几个点给我印象深刻:

1、50%左右的人没有用过AIGC;

2、80%的人只用过简单的提示词,把AI作为知识库;

3、90%的人过度理解AI,AI可以解决一切。

微软用ChatGPT把New-Bing进行了升级之后,给了业界很大的震撼,搜索的范式发生了变化,基于大模型的生成式搜索随之引入眼帘。这个文章《大模型时代的文本检索》详细的介绍了生成式搜索。最近在看一些LLM相关的文章,组内也基于小蜜快速搭建了基于检索增强的全流程,顺便撸了一下推荐方面的LLM的一些相关的论文,这个行业开始有一点动静了。搜索慢慢的被大模型渗透,那么很自然很多人想到了推荐,但是推荐是不是真的可以被大模型渗透呢?大模型能改变推荐的范式吗?刚好我们在通过对相关的推荐场景快速的进行个性化升级之后,在最近尝试了基于LLM相关的推荐改造,目前从离线来看效果还是蛮不错的。

技术交流群

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

建了技术答疑、交流群!想要进交流群、需要资料的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、添加微信号:mlc2060,备注:技术交流
方式②、微信搜索公众号:机器学习社区,后台回复:技术交流

资料1
在这里插入图片描述

资料2
在这里插入图片描述

现状

推荐系统

推荐系统发展了这么多年,只要是做过推荐系统的下面的架构大家已经耳熟能详了。

图片

如上图所示,一个完整的推荐系统包含召回、排序(粗排、精排、重排、端排序)、业务过滤层等几个重要的逻辑分层。这多年虽然很多论文层出不穷,但是主要框架没有发生很大的变化,围绕这个架构的各个层进行深入优化,通过分阶段的贪心的方式来优化算法的效果,来提升整体的业务指标,算法“卷”起来。

对于现在的整个推荐系统而言,虽然看似是一个智能化的推荐系统,但是本质还是在通过过拟合用户在场景内的行为来进行各种预测。过拟合是个毒药,效果好,但是会出现各种各样的问题(冷启动用户、买了还推、内容单一),于是也出现了很多算法来解决这一类问题的,怎么提高推荐系统的多样性?怎么了提高推荐系统的惊喜性。所以说旧时代的推荐系统,还是不是一个真正意义上的智能的推荐系统,依靠过拟合用户行为来学习用户兴趣,并没有真正的了解用户的心智变化。

大模型

一般认为NLP领域的大模型>=10 Billion参数(也有人认为是6B、7B, 工业界用, 开始展现涌现能力);经典大模型有GPT-3、BLOOM、Flan-T5、GPT-NeoX、OPT、GLM-130B、PaLM、LaMDA、LLaMA等;

图片

那么LLM为什么会被这么关注呢?大模型有哪些能力吗?

涌现

涌现, Emerge(abilities), 即一般指在大模型中出现而小模型没有的能力。所谓“涌现”,在大模型领域指的是当模型突破某个规模时,性能显著提升,表现出让人惊艳、意想不到的能力。比如语言理解能力、生成能力、逻辑推理能力等。一般来说,模型在100亿到1000亿参数区间,可能产生能力涌现。关于涌现能力的更加详细的介绍可以读一下《大语言模型的涌现能力:现象和解释》。

上下文学习&COT能力

上下文学习(ICL)是指不需要微调,只需要少数几个样例作为示例,就能在未知任务上取得不错的效果(提升few-shot能力)。

ICL主要思路是,给出少量的标注样本,设计任务相关的指令形成提示模板,用于指导待测试样本生成相应的结果。

ICL的过程,并不涉及到梯度的更新,因为整个过程不属于fine-tuning范畴。而是将一些带有标签的样本拼接起来,作为prompt的一部分,引导模型在新的测试数据输入上生成预测结果。

COT能力,也是一种奇妙的能力,大模型涌现出来的COT能力,让模型可以解决复杂问题,而且具有了可解释性。

ICL方法的表现大幅度超越了Zero-Shot-Learning,为少样本学习提供了新的研究思路。因为ICL离不开与Prompt的结合,感兴趣的可以去读一下《A Survey on In-context Learning》和《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing》这两个综述。

LLM4Rec

为什么要用LLM

LLM有很多特性可以被用来对推荐系统来进行改进。

  • 可以利用大模型的知识和推理能力来对用户的上下文行为来进行深入理解

  • 大模型有很强的zero-shot/few-shot的能力,可以很方便的进行下游任务的适配。相应的推荐也有很多的场景,有的场景样本多,有的场景样本小,这种范式给推荐提供了一种统一的可能,是否未来可以构建类似的高速适配的能力

  • 推荐系统发展到今天,都离不开过拟合场景数据来提升效果,会带来很多的负向作用(各种公平性、bias问题),LLM型虽然也有问题,但是大模型是建立在巨大的知识之上的,可以利用这些知识来尝试去打破各种目前的问题。

  • 多场景多任务、冷启动是推荐系统里面经常遇到的场景优化,很多的工作都在这个方向的优化。LLM提供了一种能力可以快速来进行一些冷启动场景的优化和多场景多任务的优化。

  • 推荐系统的可解释能力一直被大家诟病,LLM有很丰富的知识,可以利用这部分知识来进行推荐结果的可解释性。

  • 最后一种就是直接利用大模型来进行推荐结果的生成

总的来说,已经尝试的工作可以分为下面的三大类,当然有很多的划分方式:

1、LLM Embeddings + RS

这种建模范式将语言模型视为特征提取器,将物品和用户的特征馈送到LLMs中,并输出相应的嵌入。传统的推荐系统模型可以利用知识感知嵌入来完成各种推荐任务。

2、LLM Tokens + RS

这种方法基于输入的物品和用户特征生成token。通过语义挖掘,生成的token可以捕捉潜在的偏好,这些偏好可以融入到推荐系统的决策过程中。

3、LLM AS RS

这种方式直接把LLM作为一个RS系统,不过这种对LLM精准性要求比较高。

图片

Pretraining-FLM

Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt & Predict Paradigm (P5)

在这个论文中作者提出了一个统一的架构来利用大模型来进行推荐。文章提出来对目前主流的推荐场景(序列推荐、评分预测、可解释性推荐、评论总结等)多个任务都进行了统一,构造了一个模型P5。在预训练阶段,采用统一的一个模型结构,设计不同的prompt模版来进行个性化的推理,所有的任务做到很大程度的统一。预训练模型用了T5模型。通过自己场景的数据Pretraining之后,在各个数据集上的表现都还是不错的,不过在各个数据集合上的表现是不一样的。但是这个论文感觉还是蛮不错的,可以做到各个任务的统一,而且最终效果还是可圈可点的。这个论文值得精读一下。

图片

Fine-Tuning-FLM

Chat-REC: Towards Interactive and Explainable LLMs-Augmented Recommender System

本文中提出了一种用 LLMs 增强传统推荐的范式 ,通过将用户画像和历史交互转换为 Prompt,Chat-Rec 可以有效地学习用户的偏好,它不需要训练,而是完全依赖于上下文学习,并可以有效推理出用户和产品之间之间的联系。通过 LLM 的增强,在每次对话后都可以迭代用户偏好,更新候选推荐结果。和基于检索增强的QA一样,LLM与传统搜推系统结合,为了保证结果更加可靠,还需要增强一下。论文图如下,流程还是蛮清晰的。给推荐系统怎么使用LLM指明了一条路。

图片

M6-Rec: Generative Pretrained Language Models are Open-Ended Recommender Systems

整个推荐的思路是基于达摩院的M6的模型上进行的探索,并将推荐系统中的任务转换成了语言模型可以处理的语言理解或语言生成任务,主要贡献有这么几条:

1、作者提出了一种统一的推荐框架思路,这个框架是基于M6之上的,不仅可以做开放域的推荐,还可以针对下游任务进行简单的微调就可以用

2、为了减小推荐系统的推理延迟,本文在late interaction的基础上提出了multi-segment late interaction. 简单来说就是把transform的前几层的结果先缓存起来。

图片

A First Look at LLM-Powered Generative News Recommendation

对于传统的新闻推荐,往往有如下的几个问题:

1. 冷启动。对于长尾或新用户,模型无法较好的建模和理解他们的兴趣。冷启动是推荐系统经常遇到的问题

2. 用户画像建模。出于隐私保护的考量,现有的数据集可能无法包含详细的用户画像信息。另外用户的兴趣往往是多样的,怎么能比较精准的客户还是蛮有挑战性的。

3. 新闻内容理解。由于新闻数据中标题和内容存在不一致的问题,导致难以识别新闻中的关键概念和主题。而且新闻一般内容都会比较多。

本文提出来GENRE框架,这个框架可以提供一种灵活的,可以配置的,能快速把LLM的相关的能力引入进来来进行相关的推荐。

图片

Prompt-Tuning

Is ChatGPT a Good Recommender? A Preliminary Study

这个文章是阿里内部自己写的一个文章,文章主要讲是设计了一系列的prompt并评估了 ChatGPT 在五种推荐场景的性能。在这个文章里面,并没有对LLM来进行微调,只是依靠prompt来进行全流程设计。

Prompt Learning for News Recommendation

代码:https://github.com/resistzzz/prompt4nr

采用了一种称为prompt learning的预训练、提示和预测范式。在这个框架中,任务被转化成一个填空式掩码预测任务,通过设计个性化的提示模板和相应的答案空间,以充分利用预训练过程中嵌入的丰富语义信息和语言知识。这种方式通过prompt learning的方式在预测的时候可以保证很好的性能,应用价值比较高。

图片

Zero-Shot Next-Item Recommendation using Large Pretrained Language Models

代码:https://github.com/AGI-Edgerunners/LLM-Next-Item-Rec

在这个论文里面作者提出了一种新的prompt策略来进行商品推荐,主要可以理解分为下面几个步骤:

1、候选生成

类似搜索检索增强一样,把推荐系统的召回部分保持不动,交给传统的(协同过滤或者其他向量)等方式来进行

2、Prompt策略

本文提出了多个环节设计Prompt:用户偏好理解Prompt、候选商品二次选择Prompt、最终推荐结果生成Prompt。用户偏好理解Prompt主要是对用户的行为进行理解。候选商品二次选择Prompt主要是根据用户偏好和候选商品,设计Prompt来选择对候选商品来排序。最终的推荐结果是在第二个基础上来对最终的结果进行选择组合。

3、结果抽取

图片

Recommendation as Instruction Following: A Large Language Model Empowered Recommendation Approach

这个论文主要思想是,用户的偏好或需求可以用自然语言描述(称为指令),以便LLMs能够理解并进一步执行指令以满足推荐任务。主要是提出推荐系统的指令调优方法,名为InstructRec。该方法允许用户在与推荐系统交互时,用自然语言指令自由表达他们的信息需求。考虑与用户需求表达相关的三个关键方面,即偏好、意图和任务形式来设计指令。本文采用3B Flan-T5-XL作为骨干型号。由于Flan-T5基于T5进行了微调。

图片

Survey

Language Models as Recommender Systems:Evaluations and Limitations

Uncovering ChatGPT’s Capabilities in Recommender Systems

代码数据:https://github.com/rainym00d/LLM4RS

这篇论文从IR的角度,分别从point-wise, pair-wise, 和 list-wise ranking三个方面来对chatgpt在recommendation的角度来进行了能力分析。作者并没有对模型进行finetune,只是设计了很多domain-specific的prompt工程,并得到下面的几个不错的结论:

1、chatgpt相对于其他LLM模型,在三个ranking的方式上效果都是很明显;这本质还是由模型自己的精度来保证的;

2、综合性价比额,作者任务chatgpt在list-wise ranking 方面效果更好;

3、chatgpt在冷启动场景效果会更加显著一点(主要偷取外部知识);

A Survey on Large Language Models for Recommendation

这个综述是组内中科大的AIR实习生的一个组的老师发的,王老师把最近的一些关于LLM相关的推荐论文进行了详细的了解和梳理。

图片

LLM-Based 长文档推荐

刚好我们在通过对相关的推荐场景快速的进行个性化升级之后,在新闻类的文章领域SOTA相关的论文有很多,在最近尝试了基于LLM相关的推荐改造,目前从离线来看效果还是蛮不错的。

图片

几个改进点:

1、利用大模型的总结和推理能力来对长文档进行总结,因为本身长文档就是有很强的逻辑性的,普通的向量建模方式只能一定程度表征语义,如果用bert等传统的来说还有字数限制,对文章的内容进行高精准的提取(文章的表征放到离线),对于文章来说可以采用下面三种方式来进行总结。

图片

2、利用大模型的推理能力来对用户上线文来进行离线的推理,对用户行为进行建模,从用户繁杂的行为中找到背后的逻辑(用户的理解也放到离线),用户历史浏览的文章都会首先被LLM表征,然后利用LLM的COT能力来对上线文进行总结和表征。

3、这里需要涉及两个Prompt,一个Prompt是对长文档进行summarize,另外一个Prompt是对用户浏览历史做summarize。

目前效果:

我们的场景式技术类文章的推荐场景(类似知乎、简书、CSDN等),这些场景的特点是技术文章逻辑性很强、文章通常很长。新文章也比较多,文章需要经过很长时间之后才能出来比较热的文章。我们在约1000W的样本量,30W+的候选长文档,模型可以选择(chatglm6b/chatm6等)是做的实验,实验效果如下:(其中NAML/NRMS/NPA/FedRec都是新闻领域SOTA的推荐排序模型)

图片

一些消融实验的效果:

图片

从上面的实验可以初步得到一个结论,LLM对于文档类推荐效果还是比较显著,不论是用来做商品理解还是用户上下文理解。

总结&展望

不管你是主动接受还是被动接受,LLM相关的从底层硬件到上层应用已经全面开花。

大模型是目前推荐系统领域的热门话题之一,其将信息检索、自然语言处理和深度学习技术相结合,能够捕捉更多的用户兴趣和行为,提高推荐的准确性和效果。

未来,大模型在推荐系统中的应用将会越来越广泛。一方面,随着数据量的不断增长,大模型能够更好地处理这些数据,并从中发掘更深层次的用户兴趣和行为;另一方面,随着模型算法的不断升级,大模型将不断提高推荐的效果,并能够更好地应对多样化的推荐需求。

此外,大模型还有很多未被发掘的潜力。例如,将大模型应用于社交网络中的推荐、个性化广告推荐、音视频推荐等领域,都有很大的发展空间。

总之,大模型是未来推荐系统发展的一个趋势。同时大模型也给我们提供了一个统一的方式未来。

参考文献:

[1]Zero-Shot Next-Item Recommendation using Large Pretrained Language Models :https://arxiv.org/pdf/2304.03153.pdf

[2]Is ChatGPT a Good Recommender? A Preliminary Study :https://arxiv.org/pdf/2304.10149.pdf

[3]Chat-REC: Towards Interactive and Explainable LLMs-Augmented Recommender System :https://arxiv.org/pdf/2303.14524.pdf

[4]A First Look at LLM-Powered Generative News Recommendation :https://arxiv.org/pdf/2305.06566.pdf

[5]Language Models as Recommender Systems: Evaluations and Limitations :https://openreview.net/pdf?id=hFx3fY7-m9b

[6]Prompt Learning for News Recommendation :https://arxiv.org/pdf/2304.05263.pdf

[7]Generating Personalized Recommendations via Large Language Models (LLMs) :https://www.tdcommons.org/cgi/viewcontent.cgi?article=6685&context=dpubs_series

[8]Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt & Predict Paradigm (P5) :https://arxiv.org/pdf/2203.13366.pdf

[9]Uncovering ChatGPT’s Capabilities in Recommender Systems :https://arxiv.org/pdf/2305.02182.pdf

[10]Recommendation as Instruction Following: A Large Language Model Empowered Recommendation Approach ::https://arxiv.org/pdf/2305.07001.pdf

[11]A Survey on Large Language Models for Recommendation :https://arxiv.org/pdf/2305.19860.pdf

[12]M6-Rec: Generative Pretrained Language Models are Open-Ended Recommender Systems

[13]PBNR: Prompt-based News Recommender System :https://arxiv.org/pdf/2304.07862.pdf

[14]LLM4Rec相关的论文:https://github.com/nancheng58/Awesome-LLM4RS-Papers

[15]Rethinking the Evaluation for Conversational Recommendation in the Era of Large Language Models :https://arxiv.org/pdf/2305.13112.pdf

[16]Do LLMs Understand User Preferences? Evaluating LLMs On User Rating Prediction :https://arxiv.org/abs/2305.06474

[17]TALLRec: An Effective and Efficient Tuning Framework to Align Large Language Model with Recommendation

[18]推荐策略产品经理必读系列—第二讲推荐系统的架构 :https://www.woshipm.com/pmd/5541932.html‍

[19]《大语言模型的涌现能力:现象和解释》:https://zhuanlan.zhihu.com/p/621438653

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot项目静态资源默认访问目录

SpringBoot项目:静态资源默认访问目录 参考博客:https://blog.csdn.net/weixin_43808717/article/details/118281904

Brushed DC mtr--PIC

PIC use brushed DC mtr fundmental. Low-Cost Bidirectional Brushed DC Motor Control Using the PIC16F684 DC mtr & encoder

iOS——UIPickerView选择器

UIPickerView UIPickerView是 iOS 开发中常用的用户界面组件之一,用于在垂直方向上显示一个滚动的列表,用户可以通过滚动选择其中的一项。 UIPickerView的协议方法 UIPickerView和UItableView差不多,UIPickerView也要设置代理和数据源。UI…

【Effective C++】条款7:为多态基类声明virtual析构函数

如果你实现的一个类打算作为基类&#xff0c;并且要实现多态&#xff0c;那么就应该将析构函数声明为virtual。 class TimeKeeper { public:TimeKeeper();~TimeKeeper(); }; TimeKeeper::TimeKeeper() {cout << "TimeKeeper构造" << endl; } TimeKeeper:…

修改移远提供的GobiNet、quectel-CM源码,使其支持有方N720 4G模块

最近在研究imx6ull linux下4G模块驱动的移植&#xff0c;参考的移远ec20的移植方法&#xff0c;添加了GobiNet驱动&#xff0c;编译了quectel-CM工具&#xff0c;并且可以正常拨号&#xff0c;分配到ip&#xff0c;如下&#xff1a; ping外网也没有压力&#xff0c;如下…

MySQL之数据库及表操作

MySQL之数据库及表操作 文章目录 MySQL之数据库及表操作一、数据库的基本结构二、数据库的创建和删除三、数据表的结构定义和操作四、数据的插入五、主键和自增长属性1、什么是主键2、自增长属性 一、数据库的基本结构 数据库系统由数据库服务器为载体&#xff0c;拥有一个或者…

实用篇 | 一文学会人工智能中API的Flask编写(内含模板)

----------------------- &#x1f388;API 相关直达 &#x1f388;-------------------------- &#x1f680;Gradio: 实用篇 | 关于Gradio快速构建人工智能模型实现界面&#xff0c;你想知道的都在这里-CSDN博客 &#x1f680;Streamlit :实用篇 | 一文快速构建人工智能前端展…

class063 双向广搜【算法】

class063 双向广搜【算法】 算法讲解063【必备】双向广搜 code1 127. 单词接龙 // 单词接龙 // 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 // 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> … -> sk &#xff1a; // 每一对相邻的单词只…

听GPT 讲Rust源代码--src/tools(10)

File: rust/src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_is_empty_from_len.rs 在Rust源代码中&#xff0c;rust-analyzer是一个Rust语言的IDE插件和代码分析器。其中&#xff0c;generate_is_empty_from_len.rs是rust-analyzer中的一个处理程序&#x…

超声波清洗机可以清洗什么?2023年超声波清洗机推荐

之前跟朋友聊天了解到&#xff0c;他作为一个眼镜党&#xff0c;竟然不知道要清洗自己的眼镜&#xff0c;如果眼镜长时间不清洗的话&#xff0c;很容易细菌感染并且导致眼睛酸痛&#xff0c;这是一个弊端&#xff0c;还有就是如果不正确清洗眼镜方法也很容易导致眼镜被刮花&…

算数运算符和算数表达式

基本算数运算符 算数运算符&#xff1a; &#xff08;加法运算符或正值运算符&#xff09;、-&#xff08;减法运算符或负值运算符&#xff09;、*&#xff08;乘&#xff09;、/&#xff08;除&#xff09;、%&#xff08;求余数&#xff09; 双目运算符&#xff1a; 双目…

行业地位失守,业绩持续失速,科沃斯的故事不好讲

特劳特曾在《定位》一书中提到&#xff0c;为了在容量有限的消费者心智中占据品类&#xff0c;品牌最好的差异化就是成为第一&#xff0c;做品类领导者或开创者&#xff0c;销量遥遥领先&#xff1b;其次分化品类&#xff0c;做到细分品类的唯一&#xff0c;即细分品类的第一。…

C# Solidworks二次开发:三种获取SW设计结构树的方法-第三讲

今天要讲的文章接着上一篇讲&#xff0c;第三种获取SW设计结构树的方法。 这个方法的逻辑是通过先获取第一个特征&#xff0c;然后通过循环不断的寻找下一个特征来完成获取所有节点。 1、获取第一个特征的API如下所示&#xff1a;FirstFeature Method (IModelDoc2) 这个API的…

构建Servlet项目流程

第一步&#xff1a;创建maven项目 部分基础 依赖的模板基础部分如下 maven-archetype-quickstart: 这是最基本的Archetype&#xff0c;它创建一个包含简单Java类和单元测试的项目。 maven-archetype-webapp: 这个Archetype创建一个简单的Java web应用&#xff0c;包括一个serv…

(数据结构)单链表的定义

#include<stdio.h> typedef struct LNode {int data;struct LNode* next; }LNode,*LinkList; //LNode为结构体类型&#xff0c;LinkList为指向单链表的指针 //初始化一个空的单链表 void InitList(LinkList L) {L NULL; //空表&#xff0c;暂时没有任何节点 } //判断单…

启动游戏出现concrt140.dll错误的8种解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是找不到concrt140.dll文件。这个错误通常会导致程序无法正常运行&#xff0c;给用户带来困扰。本文将介绍找不到concrt140.dll无法继续执行代码的8个方法&#xff0c;同时探讨concrt140.dll丢…

六:Day03_Mybatis-Plus

一、介绍 MyBatis-Plus&#xff08;简称 MP&#xff0c;是由baomidou(苞米豆)组织开源的&#xff09;是一个基于 MyBatis 的增强工具&#xff0c;它对 Mybatis 的基础功能进行了增强&#xff0c;但未做任何改变&#xff0c;Mybatis-Plus 其实可以看作是对 Mybatis 的再一次封装…

Compilation failureFailure executing javac, but could not parse the error

记一次maven编译错误导致的打包失败问题。错误如下 Compilation failure Failure executing javac, but could not parse the error: javac: Ч ı :  ? : javac <options> <source files> -help г ܵ ѡ 排查路径如下&#xff1a; 1&#xff…

java+springboot+ssm学生社团管理系统76c2e

本系统包括前台和后台两个部分。前台主要是展示社团列表、社团风采、社团活动、新闻列表等&#xff0c;前台登录后进入个人中心&#xff0c;在个人中心能申请加入社团、查看参加的社团活动等&#xff1b;后台为管理员与社团负责人使用&#xff0c;应用于对社团的管理及内容发布…

C#之扩展方法详解

前言&#xff1a; 我们想要向一个类型中添加方法&#xff0c;可以通过以下两种方式&#xff1a; 1.修改源代码。 2.在派生类中定义新的方法。 但是这两种方式都有缺点&#xff0c;1如果是别人的代码&#xff0c;你对其直接进行修改&#xff0c;可能破坏代码的完整性&#x…