前言
深度学习是当前热门课题,核心流程包含:数据表征、数据录入与建模、基于结果调优。“万丈高楼平地起”,如果数据根基不稳,那么很难达成理想结果。
本文从这个问题切入,和大家交流如何用Embedding表征对象,以及如何在业务落地。
万物皆可Embedding
Embedding简史
Embedding最早由Hinton在1986年提出,直到2013年word2vec的推出,让一切皆可embedding,并迅速应用在特征表达,画像构建召回排序业务场景
在正式接触Embedding之前,我们先了解一下One-Hot编码表征对象方法:
浅粉红 | 粉红 | 猩红 | One-Hot编码 |
---|---|---|---|
1 | 0 | 0 | 浅粉红:[1,0,0] |
0 | 1 | 0 | 粉红:[0,1,0] |
0 | 0 | 1 | 猩红:[0,0,1] |
One-Hot编码优点是简单实现,但是无法表达更多有意义的含义(比如范例中的色差)。每多一种色彩,那么维度就多一层,在成功表征对象的同时,引发了新的多维度问题(维度灾难)
如何解决上述问题呢?有请Embedding主角登场!
Embedding定义
Embedding 字面理解是“嵌入”,实质是一种映射,从语义空间到向量空间的映射,同时尽可能在向量空间保持原样本在语义空间的关系。
通俗理解:用特定的数字表达一个“对象”object,并且保留原样本的语义(比如色差、距离) 。
同样借助色彩表征例子来理解概念:
颜色 | RGB格式 |
---|---|
浅粉红 | [255, 182, 193] |
粉红 | [255, 192, 203] |
猩红 | [220, 20, 60] |
通过One-Hot和Embedding对比来加深理解:
- Embedding映射后的数据,相较于One-hot更加稠密
- One-Hot每一个对象独立标识,那么存在维度灾难
- One-Hot只能标识一个对象,但是无法像embedding赋予对象更多寓意表达(相似度、距离、色差等)
Embedding原理
文本:“Embedding技术对深度学习推荐系统的重要性”
目标:将里面的每一个分词,都可以用向量数字表达
模型:Embedding有两种建模方式CBOW(给定上下文,预测中心词)和Skip-gram(给定输入词,预测上下文),这里选择Skip-gram作介绍
主要分为三个步骤:
- 数据预处理,去掉“对”、“的”等无意义的语气助词
- 滑窗获取素材,滑窗定为3,那么每次将邻近3个词做为一组素材(eg:Embedding、技术、深度学习),同时将中心词(eg:技术)作为输入,另外词(Embedding、深度学习)作为输出,以此类推
- 数字向量表达对象,有了训练素材集合,再加上借助Item2Vec模型,就可以水到渠成得到每个词的向量化表达了
Embedding技术在业务实践
实践思路
我们将站台用户点击序列拼接得到长文本,输入到item2Vec建模,得到每个物件的Embedding向量值Post_Embedding向量表达。再将用户所看到Post_Embeddings值整合,就得到User_Embedding。
数据分析
基础信息比对:
深度信息比对:
结论:用户实际看物件与Embedding推荐集合,存在深度相关性,大概率会被用户点击!
业务场景
基于用户浏览行为,每天定时为用户推送 “喜好” 笋盘集
注:图源安居客(侵删),我司业务场景与其类似,仅供参考
实践步骤
1. 将站台所有用户的点击序列串连
用户id | 点击序列 |
---|---|
A | 1,2,3,4 |
B | 2,3,6,7 |
C | 3,4,7,6 |
聚合点击序列得到click_order_str:1,2,3,4,2,3,6,7,3,4,7,6…
2. 点击序列集合导入到item2vec中
model = word2vec.fit(click_order_str)
3. 得到每个物件的embedding
4. 通过物件集求embedding之和,得到人的embedding
result = scores_table.select('userId','emb').rdd.map(lambda x: (x[0], x[1])) .reduceByKey(lambda a, b:[a[i] + b[i] for i in range(len(a))]).collect()
- 以人的embedding为参数,得到相似度最高前N个物件
syms = model.findSynonyms(row[1], 150)
- 对相似集业务过滤,推荐给对应用户
业务过滤包含不限于:用户已看、价差较大、物件质量较低等,在推送给用户前剔除
我另外整理了简版demo(包含代码和测试数据)便于大家学习
业务成效
在原有ALS基础上,我们融合了Embedding集合,最终物件点阅数显著提升 !
Embedding进阶
如果我们的业务实际素材不够丰富,或者期望更多的训练素材,大家可使用随机游走得到“模拟”训练集。
基于Graph-Embedding的随机游走:Deep Walk
除了串联已有的点击序列,作为数据建模,还可以利用图结构,扩大我们的数据集,以得到更丰富的embedding向量表达。
我们将被点击到的已知物件ID取出,再结合用户点击序列顺序,进行如图b所示随机游走,得到图c更为丰富的点击序列。同样借助item2vec建模,得到数据集。
结论:用Deep Walk在租售场景应用,得到的结果不理想,体现在用户已看物件和推荐物件落差极大,因此不做更进一步探究!
总结
目前我们已经学习了ALS、Embeding两种推荐算法,并在业务落地应用,这些都是多路召回的不同策略。下一篇,我们会重点探讨精准排序的实现,让推荐场景从推送衍生到搜索排序,发挥更大业务价值!
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
本文转自 https://blog.csdn.net/python12345_/article/details/141181592?spm=1001.2014.3001.5501,如有侵权,请联系删除。