推荐系统八股总结
精排推荐算法的5个维度交叉结构FTRL:传统时代的记忆大师FM解决的问题:FM的前身就是LR,担心一阶特征表达能力弱,而加入了二阶特征交叉。
\operatorname{logit}_{\mathrm{FM}}=b+\sum_{i=1}^{n} w_{i}x_{i}+\sum_{i=1}^{n}\sum_{j=i+1}^{n} w_{ij}x_{i}x_{j}新的问题:引入二阶特征交叉后,增加了训练难度,具体体现在以下两点。
如果有n个特征需要两两交叉,增加的权重项$w_{ij}$就引入了$n^2$个要训练的参数;训练参数增加,就会需要更多的训练数据,否则就容易造成过拟合。
只有$xi$和$x_j$同时不会0,$w{ij}$才会得到一次训练机会,由于推荐系统类别特征高维稀疏的特点,所以符合条件的$xi$和$x_j$特征少之又少,导致$w{ij}$得不到充分的训练。
基于以上问题,就提出了FM,公式如下:
\operatorname{logit}_{FM}=w_{0}+\sum_{i=1}^{n} w_{i}x_{i}+\sum_{i=1}^{n}\sum_{j=i+1}^{n} ...
Git学习笔记
引入教程简介
学习方式
图形演示+操作
常用功能
仓库管理、文件管理、分支管理、标签管理、远程操作
进阶功能
使用开发工具来集成Git软件和访问GitHub,Gitee这样的第三方代码托管平台
功能指令
add、commit、log、branch、tag、remote、status
为什么学习Git软件
为什么要学习Git软件?
资源管理:人力资源、代码资源、文档资源
代码资源:.html, .css, .js, .java, .py, .c等
文档资源:需求文档、设计文档等(如doc、ppt、xls、img、pdf、zip等)
这些项目文件都需要专门的软件管理。这样的软件就叫SCM软件(Software configuration Management):
软件配置管理(SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。
为什么要学习Git软件?
集中式版本控制
VSS软件(visual sourcesafe)微软早期开发的版本控制系统。集中式版本控制,服务器上的同 ...
Transformer常见八股及手撕
Transformer详解:Transformer模型详解(图解最完整版) - 知乎 (zhihu.com)
手写Attention讲解视频:手写self-attention的四重境界-part1 pure self-attention_哔哩哔哩_bilibili
手写Transformer Decoder讲解视频:一个视频讲清楚 Transfomer Decoder的结构和代码,面试高频题_哔哩哔哩_bilibili
常见八股Transformer 的 attention 除以根号 k 的原因防止点积过大导致softmax梯度消失
为什么是$\sqrt{d_k}$而不是其他?
transformer的结构是什么?
为什么transformer用LN而不用BN?Transformer使用Layer Normalization(LN)而非Batch Normalization(BN),主要有以下原因:
序列长度可变性
Transformer处理变长序列(如NLP中的不同长度句子)
BN在batch维度归一化,但同一特征在不同序列位置具有不同统计意义
LN在特征维度归一化,对每 ...
搜广推面经总结
常见面试问题LightGBM和XBoost的联系与区别(可以引申到Boosting和Bagging)如何解决过拟合?(可以引申到L1/L2正则化的区别)Shared bottom、MMoE、PLE的联系以及演讲过程高频八股1、AUC/F1
2、Transformer(encoder/decoder/attention/masked机制常见)
3、优化器
4、L1/L2正则化
5、lightgbm/xgboost等树模型(这个如果项目用到被问到的几率非常大,一般就是讲区别与联系)
6、激活函数
7、归一化(尤其是LN和BN区别)
8、推荐的整个流程,召回/粗排/精排典型模型
9、过拟合/欠拟合
10、dropout
11、bagging和boosting
12、bert
13、损失函数
14、准确率/召回率/精确率
15、梯度消失/梯度爆炸
16、NDCG
17、word2vec
18、LR/SVM等
搜广推最高频八股(一)1.评估特征重要性有哪些方法2.auc 的含义,怎么计算,以及 guac3.过拟合的解决办法(围绕模型结构,特征数,样本处理,L1L2 正则化,dropout 等等回 ...
Python之ACM输入
单行输入1234if __name__=="__main__": ls = list(map(int,input().strip().split())) ls.sort() print(" ".join(map(str,ls)))
多行输入不确定行1234567if __name__=="__main__": while True: try: a,b = map(int,input().strip().split()) print(a+b) except EOFError: break
确定行数指定结束符号123456789if __name__=="__main__": while True: try: a,b = map(int,input().strip().split()) if a==0 and b==0: break print(a+b) except EOFError: bre ...
天池新闻推荐代码解读_2
总体分析两阶段推荐系统架构1召回层 (Recall) → 排序层 (Ranking) → 重排层 (Reranking)
召回策略
ItemCF召回:基于物品相似度的协同过滤
相似度计算:改进的余弦相似度 + 时间衰减
优点:个性化强,能发现长尾物品
热度召回:基于时间窗口的热门推荐
24小时时间窗口过滤
优点:实时性强,覆盖热门内容
排序模型
模型类型:LightGBM排序模型(LGBMRanker)
训练方式:Pairwise排序学习
特征工程:
用户特征:设备、地区、OS等
物品特征:类别、字数、创建时间
交叉特征:时间差等
技术亮点
负采样策略解决类别不平衡
时间衰减因子提高推荐实时性
MRR指标评估推荐质量
多路召回融合提高覆盖率
评估指标
MRR(Mean Reciprocal Rank):衡量推荐排名的质量
召回率:衡量召回阶段的效果
特征重要性:分析模型决策依据
代码解读导入库和基础设置实现功能:
导入库:包括系统库和数据分析库(pandas,numpy),还有机器学习库
忽略所有警告(需要import warnings)
设置路径
123456 ...
天池新闻推荐代码解读_1
data.py1234567891011import argparseimport osimport randomfrom random import sampleimport pandas as pdfrom tqdm import tqdmfrom utils import Logger # 从自定义工具模块导入日志工具random.seed(2020) # 设置随机种子保证可重复性
123456789# 命令行参数解析parser = argparse.ArgumentParser(description='数据处理')parser.add_argument('--mode', default='valid') # 模式参数,默认'valid'(线下验证)parser.add_argument('--logfile', default='test.log') # 日志文件名参数args = parser.parse_args() # 解析命令行参数mo ...
FTRL算法的数学原理
FTRL算法的数学原理我们来深入讲解 FTRL(Follow The Regularized Leader)的数学原理。
我将从直观理解、公式拆解、与经典方法的对比、几何解释四个方面,完整地解析其数学原理。
直观理解:FTRL这个名字的含义FTRL的名字“Follow The Regularized Leader”已经揭示了它的核心思想:
Leader(领导者):指的是“到目前为止,在所有已见数据上累积损失最小的那个模型权重”。
Follow The Leader:一个朴素的想法是,每一步都直接采用当前的Leader。但这会导致模型剧烈震荡,因为每个新数据都可能让Leader完全改变。
Regularized(正则化的):为了避免震荡,我们不直接跟随Leader,而是跟随一个带有正则化约束的、更稳定的版本。
FTRL的本质:在每一步,寻找一个权重 w,它既要能很好地解释历史数据(Follow the Leader),又要保持稳定和简洁(Regularized)。
公式深度拆解让我们仔细分析图中的公式:
w_{t+1} = \arg\min_{w}
\bigg(
\ ...
hexo常见问题
hexo 命令1234567hexo clearhexo generatehexo deployhexo see # 预览hexo n 文件名 # 创建新的post
文章目录序号问题
根目录下找到”_config.butterfly.yml”
更改toc: 下面的number属性为false
关于latex公式渲染问题
参考链接:
butterfly主题插入数学公式LaTeX_hexo butterfly 公式-CSDN博客
Hexo-Butterfly主题的文章如何嵌入数学公式 | InsectMk的个人空间
Butterfly 文檔(三) 主題配置 | Butterfly
DeepSeek+LoRA+FastAPI
(该页面的 .md 和 .pdf 文件已放在视频简介,.md 文件可用该软件 (Obsidian) 或用 VS Code打开)
简介本期视频主要分为以下五部分:
需求和技术
企业对于大模型的不同类型个性化需求
SFT(有监督微调)、RLHF(强化学习)、RAG(检索增强生成)-关注:基本概念;分别解决什么问题;如何根据需求选择;
微调部分详细介绍:
微调算法的分类
**LoRA 微调算法
微调常见实现框架
整体步骤说明
在 Linux 系统上微调一个大模型、部署模型、暴露 API 给 web 后端调用,本机前端展示全过程
模型微调
框架: LLama-Factory (国产最热门的微调框架)
算法: **LoRA (最著名的部分参数微调算法)
基座模型:DeepSeek-R1-Distill-Qwen-1.5B-蒸馏技术通常用于通过将大模型(教师模型)的知识转移到小模型(学生模型)中,使得小模型能够在尽量保持性能的同时,显著减少模型的参数量和计算需求。
模型部署和暴露接口
框架:FastAPI(一个基于 python 的 web 框架)
web后端调用
通过 HTTP 请求 ...
