Algorithm-Practice-in-Industry Documentation

搜索、推荐、广告、用增等工业界实践文章收集(来源:知乎、Datafuntalk、技术公众号)

4,616 stars HTML HTML 1 file · ~48,636 tokens
RAW Doc

Technical Documentation: Doragd/Algorithm-Practice-in-Industry

ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference

Overview (README.md)

Algorithm-Practice-in-Industry

仓库介绍

一开始这个仓库是做如下内容:

搜索、推荐、广告、用增等工业界实践文章收集(来源:知乎、Datafuntalk、技术公众号)

本文仅做资源收集,未引用具体内容,如有侵权,请联系删除。
源文件:source.xlsx,可以执行自定义排序

随后扩展了以下内容:

当前仓库功能

当前仓库主线代码位于 paperBotV2/,主要维护搜广推方向的论文、顶会和工业实践内容:

  • arXiv 每日论文:抓取 cs.IR 等方向新论文,使用大模型进行粗排、精排和摘要翻译,生成每日 JSON 与网页,并支持飞书群推送。
  • 顶会论文汇总:维护 ACL、CIKM、ECIR、EMNLP、ICLR、ICML、KDD、NAACL、NIPS、RecSys、SIGIR、WSDM、WWW 等会议论文列表,生成按会议和年份组织的 Markdown 页面。
  • 顶会论文日推:从 paperBotV2/conf_summary/data/results.json 中挑选推荐、搜索、广告相关论文,补全摘要、翻译摘要,并通过飞书机器人推送。
  • 行业实践文章:维护大厂搜广推、广告、搜索、推荐、生成式等实践文章,支持 Issue 驱动更新 README、数据文件和网页版本。
  • GitHub Actions 自动化:通过 workflow 定时或按 Issue 标签触发 arXiv 更新、飞书通知、顶会更新、会议日推和行业实践页面部署。

代码入口

  • arXiv 主流程:python -m paperBotV2.arxiv_daily.arxiv
  • arXiv 飞书通知:python paperBotV2/arxiv_daily/arxiv_feishu_msg.py
  • 顶会 Issue 更新:python paperBotV2/conf_summary/update_from_issue.py
  • 顶会日推:python paperBotV2/conf_summary/conf_daily.py
  • 顶会 Markdown 生成:python paperBotV2/conf_summary/convert_to_md.py
  • 顶会 README 更新:python paperBotV2/conf_summary/update_readme_papers.py
  • 行业实践更新:python paperBotV2/industry_practice/maintain.py

旧版脚本和旧 arXiv workflow 已归档到 legacy/,仅用于历史回溯、兼容排查和必要时回滚;日常开发和自动化入口以 paperBotV2/ 为准。

贡献新文章

提交issue,利用github action自动更新readme和source.xlsx内容

已提供issue模板,具体内容参考issue:https://github.com/Doragd/Algorithm-Practice-in-Industry/issues/1

一起交流

  • 关于我:2023届毕业,之前做NLP方向,毕业后转去搜广推方向,一枚努力适应的菜鸡。目前在做召回方向。
  • 我的论文阅读笔记:https://github.com/doragd/paperreading
  • 和我交流:

搜广推论文推送Bot 【✨Newest:网页版本🥹=>[点击查看](https://doragd.github.io/Algorithm-Practice-in-Industry/arxiv_daily)】

  • Arxiv论文:利用github action + 大模型排序翻译 + 飞书机器人每天推送cs.IR等方向的新论文到飞书群组中。配置文件
  • 顶会论文:利用github action + 彩云小译 + 飞书机器人每天推送搜广推顶会的论文到到飞书群组中。配置文件
  • PS: 虽然论文没太大用,但是可以无聊时候刷刷,扩展下思路。
  • 比如早上通勤的时候,可以刷刷推送,看看有没有有意思的论文,也不需要花太多时间,毕竟摘要都翻译好了~

顶会论文列表

ACL CIKM ECIR EMNLP ICLR ICML KDD NAACL NIPS RECSYS SIGIR WSDM WWW
2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013
2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 2014
2015 2015 2015 2015 2015 2015 2015 2015 2015 2015 2015 2015 2015
2016 2016 2016 2016 2016 2016 2016 2016 2016 2016 2016 2016 2016
2017 2017 2017 2017 2017 2017 2017 2017 2017 2017 2017 2017 2017
2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018
2019 2019 2019 2019 2019 2019 2019 2019 2019 2019 2019 2019 2019
2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020
2021 2021 2021 2021 2021 2021 2021 2021 2021 2021 2021 2021 2021
2022 2022 2022 2022 2022 2022 2022 2022 2022 2022 2022 2022 2022
2023 2023 2023 2023 2023 2023 2023 2023 2023 2023 2023 2023 2023
2024 2024 2024 2024 2024 2024 2024 2024 2024 2024 2024 2024 2024
2025 2025 2025 2025 2025 2025 2025 2025 2025 2025 2025 2025 2025

大厂实践文章【✨Newest:网页版本🥹=>[点击查看](https://doragd.github.io/Algorithm-Practice-in-Industry/industry_practice/)】

公司 内容 标签 时间
百度 基于统一语义空间的搜索广告生成式排序 广告 2025-10-30
快手 端到端短视频多目标排序机制框架EMER详解 推荐 2025-10-30
美团 可验证过程奖励在提升大模型推理效率中的探索与实践 大模型 2025-10-09
快手 快手广告领域的大模型技术探索与实践 广告 2025-10-05
小红书 AIGC 赋能展示广告:大模型在小红书标题生成中的深度实践 广告 2025-10-05
阿里 对话淘宝姜宇宁:如果你只推低价商品,是不需要用大语言模型的 推荐 2025-10-01
阿里 深度学习框架RecIS,专为超大规模稀疏+稠密计算设计 推荐 2025-10-01
百度 百度推荐技术标题改写实践 生成式 2025-09-30
阿里 ULIM:解锁用户长期兴趣,推荐场景下的用户超长序列召回 推荐 2025-09-25
快手 生成式强化学习在广告自动出价场景的技术实践 广告 2025-09-23
快手 快手端到端生成式搜索框架OneSearch 搜索 2025-09-18
京东 京东健康基于大模型的生成式推荐在电商标品推荐的应用 推荐 2025-09-12
美团 [datafun分享] MTGR:美团外卖生成式推荐 Scaling Law 落地实践 生成式 2025-09-11
百度 GRAB:百度推荐广告生成排序模型技术实践 生成式 2025-09-09
百度 百度Feed端到端内容理解与序列生成项目 生成式 2025-09-08
百度 百度搜索广告端到端拍卖技术实践 广告 2025-09-04
腾讯 腾讯广告LFM4Ads基础大模型:全表征多粒度知识迁移,全平台GMV提升2.45% 广告 2025-09-03
阿里妈妈 阿里妈妈展示广告提出基于多归因学习的CVR预估范式MAL 广告 2025-08-28
快手 快手搜索提出个性化生成式SUG 搜索 2025-08-07
阿里妈妈 在线广告系统的智能算力资源回收框架 广告 2025-08-06
快手 快手SL-MGAC精准稳定插播直播赢用户时长 推荐 2025-08-06
快手 快手LCRON:工业级级联排序系统一体化建模新范式,助力商业化收入增长 广告 2025-07-23
百度 百度商业大模型在线推理工程优化实践 生成式 2025-07-10
阿里 EasyRec 推荐算法训练推理优化 推荐 2025-07-04
快手 快手提出端到端生成式推荐系统OneRec 推荐 2025-06-20
百度 百度生成式广告推荐召回工业级新范式 生成式 2025-05-30
百度 百度搜索广告召回的生成式革新 生成式 2025-05-29
百度 百度推荐广告生成式排序模型技术实践 生成式 2025-05-22
阿里妈妈 集成大语言模型与电商知识的通用召回大模型URM 广告 2025-05-15
美团 [美团技术团队] MTGR:美团外卖生成式推荐 Scaling Law 落地实践 生成式 2025-05-15
京东 深度拆解One4All框架,生成式推荐在京东CPS广告的技术探索 广告 2025-05-06
阿里妈妈 大模型深度赋能搜索广告:相关性大模型多维知识蒸馏 广告 2025-04-23
京东 京东广告创意:高质量创意生成和千人千面的创意推荐 广告 2025-04-15
阿里 首猜两阶段端到端多兴趣新范式 推荐 2025-03-14
阿里妈妈 阿里妈妈搜索广告大模型2024思考与实践 广告 2025-03-14
美团 上下文感知的聚合页广告优化实践 广告 2025-02-27
阿里 淘宝直播技术新范式(二)|新型商品推荐链路带来百万级DAU增量 推荐 2025-02-06
阿里 淘宝直播技术新范式(一)|实时挂品识别能力实现精准即时的人货匹配 推荐 2025-01-23
阿里 认知推荐(二):基于LLM的淘宝推荐算法显著提升发现性比例 推荐 2025-01-16
腾讯 腾讯搜索广告:基于混元大模型的生成式召回探索与应用 广告 2025-01-09
阿里妈妈 生成式拍卖:感知排列外部性的整页优化机制 广告 2024-12-25
京东 京东电商搜索:大模型生成式检索优化实践 搜索 2024-12-14
阿里 淘宝拍立淘应用多模态属性理解新范式,曝光相关性突破95% 搜索 2024-12-05
京东 [datafun分享] 京东电商搜索:大模型生成式检索优化实践 搜索 2024-11-28
阿里 时令品智能推荐系统让淘宝与用户实现“四季之约” 推荐 2024-11-21
淘宝 简单又高效:多场景近线召回在淘宝推荐中的最新范式 推荐 2024-10-31
小红书 小红书去中心化内容分发技术 推荐 2024-10-29
淘宝 LAST——重排在线学习范式的全新可能 重排 2024-10-24
腾讯广告 腾讯广告基于长序列建模的落地实践 推荐 2024-10-17
腾讯广告 腾讯广告基于混元大模型的生成式召回落地实践 召回 2024-10-14
淘宝 多样性重排算法在淘宝首页信息流的创新应用 重排 2024-10-10
爱奇艺 在线深度学习:爱奇艺效果广告分钟级模型优化 广告 2024-10-10
美团 全域用户建模在美团首页推荐的探索与实践 推荐 2024-10-10
小红书 小红书搜索:生成式检索的探索与实践 搜索 2024-10-05
爱奇艺 AI技术在爱奇艺视频搜索中的应用 搜索 2024-09-26
小红书 多模态对齐在小红书推荐的研究及应用 推荐 2024-09-23
网易云 多模态推荐在网易云音乐社区的创新实践 推荐 2024-09-16
京东 京东健康基于大模型的生成式推荐在电商标品推荐的应用 推荐 2024-09-16
爱奇艺 爱奇艺广告智能算力探索与实践 广告 2024-09-12
京东 京东搜索重排:基于互信息的用户偏好导向模型 重排 2024-08-31
腾讯 深入理解推荐模型中的辅助排序损失 推荐 2024-08-27
腾讯广告 推荐模型中的辅助排序损失 推荐 2024-08-27
腾讯 跨领域迁移学习在广告用户价值预估场景应用探索 广告 2024-08-26
腾讯广告 跨领域迁移学习在广告用户价值预估场景应用探索 广告 2024-08-26
淘宝 大语言模型改写技术在淘宝搜索中的应用 搜索 2024-08-22
快手 推荐系统融合排序的多目标寻优技术 排序 2024-08-17
淘宝 淘宝全域空间下的自适应连续迁移学习 推荐 2024-08-15
美团 信息流广告预估技术在美团外卖的实践 排序 2024-08-15
B站 B站搜索建库架构优化实践 搜索 2024-08-13
淘宝 触发式推荐场景的用户动态即时兴趣预估 推荐 2024-08-08
网易 多场景多任务统一建模在网易云音乐的算法实践 排序 2024-08-07
阿里妈妈 展示广告预估技术最新突破:基于原生图文信息的多模态预估模型 排序 2024-08-02
小红书 小红书搜索广告召回实践 召回 2024-08-01
淘宝 认知推荐:基于LLM的首页推荐新范式 推荐 2024-08-01
小红书 小红书去中心化内容分发技术 排序 2024-07-31
腾讯广告 腾讯广告推荐算法优化实践 推荐 2024-07-17
淘宝 淘宝“小时达”算法技术革新:精准匹配供需,重塑即时消费体验 推荐 2024-07-11
美团 搜索广告召回技术在美团的实践 召回 2024-07-04
腾讯音乐 音频表征大模型在QQ音乐歌曲冷启的应用与探索 冷启动 2024-06-30
阿里妈妈 展示广告预估模型优势特征应用实践 排序 2024-06-13
阿里妈妈 展示广告多模态召回模型:混合模态专家模型 召回 2024-05-29
百度 多域图大模型在百度推荐系统的实践与思考 图推荐 2024-05-09
百度 百度推荐资源冷启动实践 冷启动 2024-05-09
小红书 小红书高时效推荐系统实践:从系统提效到内容冷启动 冷启动 2024-05-07
美团 百亿大规模图在广告场景的应用 图 2024-03-28
美团 大众点评内容搜索算法优化的探索与实践 搜索 2024-03-21
爱奇艺 稀疏大模型在爱奇艺广告排序场景中的实践 排序 2024-03-01
360 360信息流推荐Mind召回 召回 2024-01-19
百度 百度搜索Push个性化 搜索 2024-01-17
小红书 小红书推荐用户及内容冷启动实践 冷启动 2024-01-12
百度 百度feed图模型演进 推荐 2024-01-11
百度 百度推荐排序技术的思考与实践 推荐 2024-01-07
OPPO OPPO 广告召回算法实践与探索 召回 2023-12-30
美团 美团交易视频推荐探索与实践 推荐 2023-12-23
美团 内容搜索算法优化的探索与实践 搜索 2023-12-23
得物 粗排优化探讨|得物技术 粗排 2023-12-20
百度 百度视频推荐跨域多目标预估与融合的实践和思考 推荐 2023-11-29
腾讯 AI大模型「改造」QQ浏览器搜索 搜索 2023-11-19
阿里妈妈 HC^2:基于混合对比学习的多场景广告预估建模 广告 2023-11-15
阿里 融合复杂目标且支持实时调控的重排模型 召回 2023-11-14
网易 网易云音乐推荐系统的冷启动技术 冷启动 2023-11-10
华为 多任务和多场景在华为推荐系统中的应用 推荐 2023-11-09
阿里妈妈 BOMGraph:基于统一图神经网络的电商多场景召回方法 召回 2023-11-01
小红书 小红书推荐系统创新性探索 冷启动 2023-10-31
爱奇艺 爱奇艺效果广告双出价优化历程 广告 2023-10-20
快手 快手内容冷启动推荐模型实践 冷启动 2023-10-11
百度 百度推荐排序技术的思考(提取码:r5kv) 推荐 2023-08-26
新浪 推荐系统大模型启发的MemoNet(提取码:ckpa) CTR预估 2023-08-26
网易 网易云音乐推荐的多模态冷启技术(提取码:x72d) 冷启动 2023-08-26
快手 快手内容冷启动模型实践(提取码:cjbc) 冷启动 2023-08-26
百度 百度视频推荐跨域多目标预估与融合的实践和思考(提取码:cva3) 多目标 2023-08-26
虎牙 面向直播场景的虎牙排序算法实践(提取码:yhb8) 排序 2023-08-26
58同城 深度学习在互联网房产推荐场景的算法实践(提取码:wcz7) 排序 2023-08-26
京东 图机器学习在京东视频召回中的应用(提取码:gfkx) 召回 2023-08-26
百度 图模型在百度推荐系统的实践与思考(提取码:huaz) 推荐 2023-08-26
百度 百度新资源冷启动实践(提取码:bji6) 冷启动 2023-08-26
蚂蚁 图算法在蚂蚁集团营销推荐场景的应用(提取码:xvvi) 推荐 2023-08-26
百度 百度凤巢大模型与搜索广告满意度设计与实践 搜索 2023-08-13
美团 美团外卖推荐关于用户新颖体验优化的技术探索 推荐 2023-07-20
美团 美团外卖智能陪伴型导购的探索与实践 Query推荐 2023-07-13
京东 京东搜索EE链路演进 搜索生态 2023-07-12
阿里妈妈 基于特征自适应的多场景预估建模 多场景排序 2023-07-05
阿里妈妈 转化率预估新思路:基于历史数据复用的大促转化率精准预估 推荐 2023-06-28
腾讯 对话双塔——腾讯视频中的粗排相关性模型 粗排相关性 2023-06-28
小米电商 多任务学习梯度冲突在电商场景的改进 多任务学习 2023-06-24
阿里妈妈 排序和准度联合优化:一种基于混合生成/判别式建模的方案 排序 2023-06-21
小红书 语义模型在小红书社区搜索的应用(提取码:xfkv) 搜索 2023-06-17
蚂蚁 支付宝搜索的Query理解与语义召回技术(提取码:p6gc) 召回 2023-06-17
阿里淘系 Generator-Evaluator重排模型在淘宝流式场景的实践 重排 2023-06-09
得物 得物多场景统一推荐技术演进 推荐 2023-06-09
阿里 阿里解耦域适应无偏召回模型详解 召回 2023-06-04
Shopee 多任务学习最新进展:基于神经元级共享的 CTR、CVR 多任务联合预估方法 推荐 2023-05-29
阿里妈妈 AdaSparse: 自适应稀疏网络的多场景CTR预估建模 精排 2023-05-10
得物 得物App相关推荐价格体验优化 推荐 2023-05-10
阿里淘系 淘宝内容化推荐场景下对多场景全域表征的思考与应用 推荐 2023-04-28
阿里飞猪 因果推断技术在飞猪保险模块推荐以及可解释性应用 推荐 2023-04-28
阿里淘系 每日好店——店品排序探索模型升级 推荐 2023-04-24
微博 微博推荐实时大模型的技术演进 推荐 2023-04-24
阿里健康 阿里可解释性推荐算法应用 推荐 2023-03-06
Shopee Calibration4CVR:2018年关于“神经元级别共享的多任务CVR”的初探 推荐 2023-03-05
得物 得物社区推荐精排模型演进 推荐 2023-01-11
阿里妈妈 阿里妈妈展示广告召回之多场景建模算法 召回 2022-12-07
美团 大规模异构图召回在美团到店推荐广告的应用 召回 2022-11-24
美团 美团外卖搜索基于Elasticsearch的优化实践 搜索 2022-11-17
美团 图技术在美团外卖下的场景化应用及探索 搜索 2022-09-08
得物 得物分类TAB商品流多目标排序模型的演进 推荐 2022-07-01
得物 得物多兴趣召回模型实践 推荐 2022-05-18
得物 得物社区推荐多目标排序初探 推荐 2021-12-27
阿里 CMDM:基于异构序列融合的多兴趣深度召回模型在内容平台的探索和实践 召回 2021-12-07
爱奇艺 爱奇艺搜索排序算法实践 搜索 2021-07-30
爱奇艺 多目标排序在爱奇艺短视频推荐中的应用 搜索 2021-06-25
爱奇艺 爱奇艺短视频推荐技术中多兴趣召回技术的演变 召回 2021-04-23
爱奇艺 如何提升链路目标一致性?爱奇艺短视频推荐之粗排模型优化历程 粗排 2021-02-26
阿里淘系 淘宝个性化推荐中自适应与无监督的多场景模型建模实践 推荐 2023-04-10
阿里淘系 每日好店——淘宝店铺推荐系统实践 推荐 2023-04-07
小红书 搜推系统召回阶段的前沿进展 召回 2023-04-03
阿里飞猪 飞猪旅行场景下的实时用户理解服务 搜索 2023-04-01
美团 多场景多任务学习在美团到店餐饮推荐的实践 推荐 2023-03-23
小红书 小红书高时效推荐系统背后的技术升级 推荐 2023-03-21
阿里妈妈 代码开源!阿里妈妈展示广告Match底层技术架构最新进展 召回 2023-03-14
阿里妈妈 贝叶斯分层模型应用之直播场景打分校准 精排 2023-03-14
腾讯音乐 粗排上不了COLD?我们提出了异构三塔粗排 粗排 2023-03-07
美团 交互式推荐在外卖场景的探索与应用 推荐 2023-02-16
小红书 小红书广告智能创意能力构建过程详解 广告 2023-02-16
快手 快手精排模型实践 精排&CXR预估 2023-02-01
阿里健康 领域知识增强的预训练语言模型在药电商搜索领域的实践 搜索 2023-01-30
京东 京东零售在电商搜索场景下的数据科学实践 搜索 2023-01-29
阿里达摩院 基于预训练语言模型的行业搜索的应用和研究 搜索 2023-01-28
阿里飞猪 深度召回在飞猪旅行推荐系统中的探索和实践 召回 2023-01-25
腾讯QQ浏览器 QQ浏览器搜索相关性技术演进 搜索相关性 2023-01-18
小米 小米电商算法秘籍:移花接木-新模型如何热启动快速超越线上旧模型 推荐&CXR预估 2023-01-11
阿里健康 阿里健康医药电商搜索相关性实践 搜索相关性 2023-01-11
网易 云音乐评论内容理解技术 内容理解 2023-01-10
阿里淘系 深度统一粗排在淘宝主搜索的优化实践 粗排 2023-01-06
网易 云音乐视频搜索优化之旅 搜索 2023-01-04
快手 金雅然:因果推断主要技术思想与方法总结 因果推断 2022-12-26
度小满 因果推断在度小满金融场景的应用探索 因果推断 2022-12-22
小红书 小红书广告投放机制详解,如何用算法实现全站自动化投放 广告 2022-12-15
小米 小米电商推荐算法CVR模型实践 精排&CXR预估 2022-12-07
bilibili 百亿数据个性化推荐:弹幕工程架构演进 推荐 2022-11-25
腾讯 带你走进 Redis 工程相关 2022-11-22
网易 机器学习模型在云音乐指标异动预测的应用实践 数据科学 2022-11-18
腾讯 因果推断在腾讯游戏中的应用 因果推断 2022-11-12
小红书 首次解密小红书“种草”机制:大规模深度学习系统技术是如何应用的 推荐 2022-11-11
网易 网易严选跨域多目标算法演进 多目标&多任务 2022-11-01
NVIDIA NVIDIA Merlin HugeCTR 推荐系统框架介绍 精排&CXR预估 2022-10-31
快手 快手异质性因果效应模型构建及应用 因果推断 2022-10-29
阿里 阿里 DeepRec 大规模稀疏模型训练推理引擎(文末附PPT下载) 工程相关 2022-10-21
快手 深度点击率预估模型的One-Epoch过拟合现象剖析 广告 2022-10-19
小红书 上干货!小红书“薯条”业务竞价策略及最优公式详解 广告 2022-10-19
美团 预训练语言模型压缩、双塔蒸馏在美团上的落地实践 召回 2022-10-10
美团 知识图谱在美团搜索酒旅场景认知中的应用 搜索 2022-09-30
腾讯QQ浏览器 搜索场景下的智能实体推荐 搜索 2022-09-26
美团 美团基于知识图谱的个性化新闻推荐系统 推荐 2022-09-25
腾讯 腾讯图神经网络与推荐预训练模型 推荐&图网络 2022-09-19
蚂蚁 图机器学习在蚂蚁集团推荐业务中的应用 推荐&图网络 2022-09-18
华为 华为图神经网络在推荐系统中的应用 推荐&图网络 2022-09-10
阿里 推荐算法中的特征工程 推荐&特征工程 2022-08-30
阿里淘系 连续迁移学习跨域推荐排序模型在淘宝推荐系统的应用 推荐&跨域 2022-08-30
虎牙 虎牙直播用户增长中台算法与工程实践 用增 2022-08-27
腾讯音乐 吴喆:全民K歌直播推荐系统详解 推荐 2022-08-22
网易 云音乐播放页直播推荐实战 推荐 2022-08-17
美团 美团搜索粗排优化的探索与实践 粗排 2022-08-11
腾讯 一文搞懂 Redis 架构演化之路 工程相关 2022-07-26
腾讯 无量深度学习系统在腾讯推荐类业务的应用 推荐 2022-07-08
美团 大众点评搜索相关性技术探索与实践 搜索相关性 2022-07-06
蚂蚁 蚂蚁超大规模商家知识图谱构建及其融合应用 知识图谱 2022-07-01
网易 云音乐FeatureStore建设与实践 推荐&特征工程 2022-06-29
京东 揭秘京东广告精排百分位AUC提升技术方案 精排&CXR预估 2022-06-29
阿里飞猪 章凡:飞猪基于因果推断技术的广告投后归因 因果推断 2022-06-27
京东 吕豪:京东搜索EE场景排序链路升级实践 搜索 2022-06-24
美团 端智能在大众点评搜索重排序的应用实践 重排 2022-06-16
网易 云音乐预估系统建设与实践 精排&CXR预估 2022-06-15
腾讯微信 微信开源大规模embedding训练推理框架 召回 2022-06-15
美团 张鸿志:美团大脑百亿级知识图谱的构建及应用进展 知识图谱 2022-06-03
快手 快手牛亚男:基于多Domain多任务学习框架和Transformer,搭建快手精排模型 精排&CXR预估 2022-06-01
阿里淘系 SIGIR2022 | 流行度偏差如何利用?探索解耦域适应无偏召回模型 召回 2022-05-31
阿里淘系 多模态技术在淘宝主搜召回场景的探索 召回 2022-05-27
京东 陈宏申:浅谈京东电商商品文案挖掘难点与优化实践 文案挖掘 2022-05-25
华为 华为朱杰明:预训练模型在信息流推荐中的应用与探索 推荐 2022-05-22
网易 NUMA架构下的预估系统性能优化 工程相关 2022-05-19
小红书 小红书信息流推荐多样性解决方案 推荐 2022-05-18
阿里淘系 深度粗排在天猫新品中的实践 粗排 2022-05-18
阿里淘系 内容推荐场景中自监督学习的应用 推荐 2022-05-17
阿里飞猪 主题与交互式推荐技术在飞猪个性化分发中的实践 推荐 2022-05-16
美团 杨玉基:知识图谱在美团推荐场景中的应用 推荐 2022-05-16
腾讯QQ浏览器 李晓亮:腾讯搜索词推荐算法探索实践 搜索 2022-05-15
京东 如何提升推荐系统的可解释性?京东智能推荐卖点技术全解析! 推荐 2022-05-07
阿里淘系 多任务学习模型ESMM原理与实现 精排&CXR预估 2022-05-06
华为 点击率预测模型Embedding层的学习和训练 精排&CXR预估 2022-05-04
阿里 序列特征在推荐算法中的应用 推荐 2022-04-28
网易 CIKM 2021 | 云音乐提出与模型无关的冷启动推荐框架: MAIL 冷启动 2022-04-27
阿里 深度解析开源推荐算法框架EasyRec的核心概念和优势 工程相关 2022-04-26
腾讯 腾讯邱东洋:深度模型推理加速的术与道 工程相关 2022-04-22
阿里 杨旭东:冷启动推荐模型DropoutNet深度解析与改进 冷启动 2022-04-21
网易 从跨模态和上升通道谈富媒体内容的冷启动 冷启动 2022-04-20
阿里淘系 生成式重排在内容推荐中的应用实践 重排 2022-04-19
阿里 刘童璇:阿里巴巴稀疏模型训练引擎DeepRec 工程相关 2022-04-17
网易 冷启动算法系列-云音乐歌曲冷启动初探 冷启动 2022-04-13
阿里淘系 商品序列建模在新用户承接上的应用实践 精排&CXR预估 2022-04-06
阿里妈妈 阿里巴巴展示广告智能拍卖机制的演进之路 广告 2022-04-06
网易 5G+智能时代的多模搜索技术 搜索 2022-04-05
腾讯音乐 QQ音乐推荐召回算法的探索与实践 召回 2022-04-03
网易 云音乐隐性关系链的探索与实践 冷启动 2022-03-31
阿里淘系 淘宝逛逛召回算法实践总结 召回 2022-03-29
阿里淘系 Gradient Normalization在多任务学习中的优化实践 多目标&多任务 2022-03-29
美团 李翔:美团到店综合知识图谱的构建与应用 知识图谱 2022-03-28
哈啰出行 周冰倩:广告主视角下的信息流广告算法探索 广告 2022-03-27
快手 王晓伟:图神经网络在快手推荐召回中的应用和挑战 推荐&图网络 2022-03-23
阿里淘系 基于特征全埋点的精排ODL实践总结 工程相关 2022-03-22
小米 崔世起:小米小爱同学无效Query识别 搜索 2022-03-20
腾讯音乐 QQ音乐推荐系统算法架构实践 推荐 2022-03-19
腾讯微信 微信全文搜索技术优化 搜索 2022-03-14
京东 王冬月:京东推荐算法精排技术实践 精排&CXR预估 2022-03-14
网易 蒋能学:网易云音乐广告算法实践 广告 2022-03-12
美团 异构广告混排在美团到店业务的探索与实践 广告&混排 2022-03-10
阿里淘系 GNN在轻应用内容推荐中的召回实践 召回 2022-03-10
京东 张菡:深度学习下的京东搜索召回技术 召回 2022-03-09
网易 实时增量学习在云音乐直播推荐系统中的实践 推荐&增量学习 2022-03-09
阿里淘系 超越I2I和向量内积,淘宝新一代召回范式:PDN模型 召回 2022-03-08
虎牙 李茶:虎牙直播推荐系统架构详解 推荐 2022-03-02
阿里淘系 冷启动系统优化与内容潜力预估实践 冷启动 2022-03-01
哈啰出行 董彦燊:因果推断在哈啰出行的实践探索 因果推断 2022-02-28
贝壳 王志勇:贝壳CVR转化率预估模型实践 精排&CXR预估 2022-02-26
京东 赵鑫:强化学习在京东广告序列推荐中的应用 广告 2022-02-24
阿里淘系 行为稀疏场景下的图模型实践 召回 2022-02-22
快手 赵炜琪:因果推断在快手推荐场景的应用探索 因果推断 2022-02-21
腾讯微信 微信强化学习推荐模型的知识蒸馏探索之路 推荐 2022-02-20
腾讯 一篇详文带你入门 Redis 工程相关 2022-02-18
阿里飞猪 熊飞:"猜你去哪"飞猪用户旅行意图预测 搜索 2022-02-18
虾皮 下拉推荐在 Shopee Chatbot 中的探索和实践 推荐 2022-02-17
美团 美团搜索中查询改写技术的探索与实践 搜索 2022-02-17
美图 多媒体内容理解在美图社区的应用实践 内容理解 2022-02-16
快手 将因果关系估计引入推荐系统、提升推荐模型效果,快手新研究被WWW22接收 因果推断 2022-02-14
腾讯音乐 QQ音乐排序模型优化 推荐 2022-02-14
58同城 苏永浩:Embedding技术在商业搜索与推荐场景的实践 召回 2022-02-11
快手 渠江涛:重排序在快手短视频推荐系统中的演进 重排 2022-02-10
快手 李翱:因果学习在用户增长中的实践 因果推断 2022-02-07
58同城 刘德华:标签推荐与“猜你想找”算法实践 推荐 2022-02-05
腾讯音乐 腾讯音乐知识图谱搜索实践 搜索 2022-02-04
一点资讯 郭沛东:图模型在信息流推荐的原理和实践 推荐&图网络 2022-01-28
阿里淘系 推荐场景下融合多模态信息的内容召回模型 召回 2022-01-26
阿里淘系 多序列融合召回在新用户冷启动上的应用 召回 2022-01-23
阿里淘系 ZEUS:淘宝多场景推荐排序模型 推荐 2022-01-19
贝壳 周玉驰:因果分析在贝壳的探索实践 因果推断 2022-01-17
腾讯音乐 腾讯音乐多模态音乐匹配技术与应用 搜索 2022-01-15
阿里淘系 大淘宝技术“搜索算法”专场①:淘宝搜索召回、个性化搜索排序 搜索 2022-01-14
阿里淘系 大淘宝技术“搜索算法”专场②:电商搜索相关性、电商知识图谱 搜索 2022-01-14
阿里淘系 直播预告 | 1月13日下午,“搜索算法”专场②:电商搜索相关性、电商知识图谱 搜索 2022-01-12
阿里淘系 直播预告 | 1月12日下午,“搜索算法”专场①:淘宝搜索召回、个性化搜索排序 搜素 2022-01-11
阿里淘系 7种经典推荐算法模型的应用 推荐 2021-12-30
京东 赵学敏:京东商品图谱构建与实体对齐 知识图谱 2021-12-29
网易 网易云音乐广告CTR预估模型演进过程 精排&CXR预估 2021-12-21
阿里淘系 多序列融合召回在新用户冷启动上的应用 冷启动 2021-12-21
阿里淘系 大淘宝技术“推荐算法”PART 1 推荐 2021-12-20
阿里淘系 大淘宝技术“推荐算法”PART 2 推荐 2021-12-20
阿里淘系 大淘宝技术“推荐算法”PART 3 推荐 2021-12-20
58同城 沈冰阳:强化学习在推荐冷启动优化中的实践探索! 冷启动 2021-12-17
阿里淘系 内容推荐场景下多模态语义召回的若干实践 召回 2021-12-14
阿里淘系 深度粗排模型的GMV优化实践:基于全空间-子空间联合建模的蒸馏校准模型 粗排 2021-12-13
阿里淘系 阿里新一代召回技术:从TDM到二向箔的新突破! 召回 2021-12-13
58同城 祝凯文:推荐算法在商业化场景中的探索实践 推荐 2021-12-12
阿里淘系 2021召回技术在内容推荐的实践总结 召回 2021-11-30
阿里淘系 阿里淘系技术:算法黑科技 搜索 2021-11-29
快手 「繁星」:快手搜索在向量检索方向的探索和实践 召回 2021-11-29
腾讯音乐 QQ音乐推荐系统的精细化调控 推荐 2021-11-28
阿里淘系 GNN在下拉推荐的应用 推荐 2021-11-24
美团 美团搜索多业务商品排序探索与实践 搜索 2021-11-18
阿里飞猪 阿里飞猪林睿:从核心因子预估>实体识别,如何实现文本和空间的搜索相关性? 搜索相关性 2021-11-16
字节跳动 字节跳动高伟豪:训练目标不一致?损失无法学习?深度召回解难题! 召回 2021-11-10
美团 美团王庆:当老板对指标进行灵魂拷问时,该如何诊断分析? 其他 2021-11-04
京东 京东李欣如:从单目标排序到多目标模型,显著提升多业务效果! 多目标&多任务 2021-11-02
百度 基于用户出行意图建模的百度异地POI推荐 推荐 2021-10-29
阿里飞猪 阿里飞猪推荐算法探索实践 推荐 2021-10-21
腾讯 一文搞懂CTR建模 精排&CXR预估 2021-10-18
58同城 多目标排序在58同城房源推荐中的实践探索 多目标&多任务 2021-10-18
蜻蜓FM 蜻蜓FM实时推荐系统的发展和演进 推荐 2021-10-14
美团 广告深度预估技术在美团到店场景下的突破与畅想 精排&CXR预估 2021-10-14
阿里妈妈 阿里广告技术新突破:面向最终目标的全链路一致性建模 广告 2021-10-11
58同城 广义多目标算法探索实践 多目标&多任务 2021-10-04
58同城 多目标排序在二手房推荐系统的实践探索 多目标&多任务 2021-09-19
阿里淘系 淘宝直播全屏页重排算法实践 重排 2021-09-04
阿里妈妈 阿里妈妈广告创意优选 广告 2021-08-27
阿里淘系 SIGKDD2021 | 淘宝搜索向量化召回实践 召回 2021-08-25
腾讯微信 微信看一看如何过滤广告文章? 广告 2021-08-14
阿里妈妈 朱小强|屠龙少年与龙:漫谈深度学习驱动的广告推荐技术发展周期 广告 2021-08-10
阿里淘系 淘宝视频的跨模态检索 搜索 2021-08-09
阿里妈妈 阿里妈妈展示广告预估校准技术演进之路 广告 2021-08-09
京东 多类目MoE模型在京东电商搜索中的应用 搜索 2021-08-07
阿里淘系 淘宝视频内容标签的结构化分析和管理 内容理解 2021-08-06
微拍堂 深度召回在文玩个性化推荐中的实践 召回 2021-08-04
阿里妈妈 FAE:阿里广告归因分析与用户增长分析引擎 广告 2021-08-03
美团 美团商品知识图谱的构建及应用 知识图谱 2021-07-31
阿里 阿里1688直播推荐算法实践 推荐 2021-07-28
阿里淘系 2021年,算法工程师必备的能力是什么? 其他 2021-07-26
阿里淘系 淘宝详情页分发推荐算法总结:用户即时兴趣强化 推荐 2021-07-24
阿里妈妈 阿里妈妈流量反作弊算法实践 广告 2021-07-23
58同城 58同城CRM多目标排序算法 多目标&多任务 2021-07-17
阿里妈妈 阿里妈妈在线分流 AB Test 数据科学 2021-07-16
腾讯音乐 全民K歌直播推荐算法实践 推荐 2021-07-12
美团 多业务建模在美团搜索排序的实践 搜索 2021-07-10
丁香园 丁香园基于Milvus的向量召回应用 召回 2021-07-02
美团 美团外卖美食知识图谱的迭代及应用 知识图谱 2021-06-20
阿里飞猪 拼接召回在飞猪交通域的实践 召回 2021-06-18
腾讯微信 针对多目标推荐任务,微信看一看用PAPERec框架逼近帕累托最优 多目标&多任务 2021-06-15
阿里妈妈 阿里妈妈搜索广告CTR模型的“瘦身”之路 精排&CXR预估 2021-06-14
腾讯微信 用于看一看list-wise推荐系统的HRL-Rec模型简述 | AAAI-2021 推荐 2021-06-13
阿里淘系 工业界常用的推荐系统模型有哪些? 推荐 2021-06-07
京东 大规模图算法在京东广告的实践 广告 2021-06-02
阿里妈妈 阿里妈妈搜索广告CTR模型演进 精排&CXR预估 2021-06-01
阿里飞猪 阿里飞猪个性化搜索排序探索实践 搜索 2021-05-31
阿里淘系 5大经典排序算法在淘宝“有好货”场景的实践 推荐 2021-05-28
蜻蜓FM 蜻蜓FM信息流推荐探索与实践 推荐 2021-05-26
阿里淘系 分钟级在线深度学习在手淘信息流排序模型中的探索与实践 推荐 2021-05-26
腾讯微信 微信视频号推荐算法挑战赛baseline分享 推荐 2021-05-23
阿里妈妈 你真的懂点击率(CTR)建模吗? 精排&CXR预估 2021-05-20
阿里飞猪 因果推断在阿里飞猪广告算法中的实践 因果推断 2021-05-19
爱奇艺 爱奇艺短视频推荐:多兴趣召回篇 召回 2021-05-15
滴滴 滴滴连续因果森林模型的构造与实践 因果推断 2021-05-13
美团 Query理解在美团搜索中的应用 搜索 2021-05-07
阿里淘系 MIND - 基于动态路由的用户多向量召回 召回 2021-04-26
阿里淘系 SIGIR2021 | 超越I2I和向量内积,淘宝新一代召回范式:PDN模型 召回 2021-04-25
阿里妈妈 阿里定向广告智能投放技术体系 广告 2021-04-24
阿里淘系 没什么是一次排序解决不了的,如果有,那就One more time 推荐 2021-04-17
腾讯看点 腾讯 QQ 看点图文多目标推荐实践经验 多目标&多任务 2021-04-09
腾讯微信 微信看一看实时相关推荐介绍 推荐 2021-04-08
腾讯音乐 全民K歌推荐后台架构 工程相关 2021-04-02
腾讯音乐 全民K歌内容挖掘与召回 召回 2021-04-01
陌陌 模型化召回在陌陌社交推荐的应用和探索 召回 2021-03-20
阿里淘系 超长用户行为建模在躺平家居内容推荐中的应用实践 推荐 2021-03-18
阿里淘系 深度排序模型在淘宝直播的演进与应用 推荐 2021-03-17
腾讯音乐 腾讯音乐:全民K歌推荐系统架构及粗排设计 粗排 2021-03-08
阿里飞猪 阿里飞猪主题与交互式推荐技术实践 推荐 2021-03-04
京东 京东搜索在线学习探索实践 搜索 2021-03-01
爱奇艺 爱奇艺短视频推荐:粗排篇 粗排 2021-02-27
快手 多目标排序在快手短视频推荐中的实践 多目标&多任务 2021-02-24
阿里 阿里粗排技术体系与最新进展 粗排 2021-02-21
阿里淘系 EdgeRec:边缘计算在推荐系统中的应用 推荐 2021-02-17
阿里淘系 阿里深度树匹配召回体系演进 召回 2021-02-15
58同城 多目标推荐场景下的深度学习实践 多目标&多任务 2021-02-13
阿里淘系 5大经典排序算法在淘宝“有好货”场景的实践 推荐 2021-02-11
58同城 深度学习在搜索排序业务中的应用 搜索 2021-02-10
蘑菇街 基于ESMM模型的MTL多目标优化实践——用户活跃度影响排序机制——蘑菇街首页信息流推荐 多目标&多任务 2021-02-08
阿里淘系 MMoE算法在家居内容推荐中的应用与实践 多目标&多任务 2021-02-05
阿里飞猪 阿里飞猪搜索技术的应用与创新 搜索 2021-02-03
Hulu Hulu在Content Embedding的探索与实践 召回 2021-01-29
阿里妈妈 想为特征交互走一条新的路 精排&CXR预估 2021-01-27
Facebook Facebook’s News Feed ranking algorithm 推荐 2021-01-26
知乎 知乎搜索排序模型的演进 搜索 2021-01-25
知乎 知乎搜索文本相关性与知识蒸馏 搜索相关性 2021-01-15
蘑菇街 基于ESMM模型的多目标优化实践——蘑菇街商城篇 多目标&多任务 2021-01-08
贝壳 贝壳用户偏好挖掘的思考与实践 偏好挖掘 2021-01-07
阿里妈妈 算力经济时代:阿里展示广告引擎的"柔性"变形之路 广告 2021-01-04
腾讯 Angel图神经网络算法在推荐场景下的实践 推荐&图网络 2020-12-31
soul 灵魂匹配:陌生社交Soul的增长机制 用增 2020-12-26
腾讯 Angel推荐算法在游戏推荐中的应用 推荐 2020-12-24
阿里淘系 序列检索系统在淘宝首页推荐重排中的实践(附重排经典论文合集) 重排 2020-12-18
蘑菇街 蘑菇街增量学习番外篇三:deepFM的动态正则实践 推荐 2020-12-18
阿里淘系 序列检索系统在淘宝首页信息流重排中的实践 重排 2020-12-17
蘑菇街 蘑菇街增量学习番外篇一:动态正则之tensorflow中div转mod设计(含代码实现) 推荐 2020-12-17
蘑菇街 蘑菇街增量学习番外篇二:优化器设计理论篇(AdamW、AdaDeltaW、FTRL) 推荐 2020-12-17
丁香园 再谈搜索中的Query扩展技术 搜索 2020-12-14
贝壳 贝壳商业化算法中台架构实践 工程相关 2020-12-10
美团 ICDM论文:探索跨会话信息感知的推荐模型 推荐 2020-12-10
腾讯微信 浅谈微信AI在通用图像搜索领域的探索 搜索 2020-12-09
腾讯微信 微信AI从识物到通用图像搜索的探索揭秘 搜索 2020-12-04
阿里 信息流推荐的用户增长机制 用增 2020-12-02
腾讯 主流Embedding技术解析 召回 2020-12-01
NVIDIA Merlin:基于深度学习的推荐系统框架 推荐 2020-11-29
美团 美团本地生活场景的短视频分析 其他 2020-11-22
网易 网易云音乐推荐中的用户行为序列深度建模 精排&CXR预估 2020-11-20
阿里文娱 阿里文娱深度语义搜索相关性探索 搜索相关性 2020-11-16
腾讯微信 搜索query意图识别的演进 搜索 2020-11-15
蘑菇街 蘑菇街首页推荐多目标优化之reweight实践:一把双刃剑? 多目标&多任务 2020-11-13
腾讯微信 要提升微信看一看推荐混排的长期收益?试试深度强化学习 推荐 2020-11-12
爱奇艺 TensorFlow Ranking框架在爱奇艺海外推荐的实践与应用 工程相关 2020-11-09
腾讯 ZeroSearch:腾讯新一代搜索引擎 工程相关 2020-11-08
蘑菇街 文本相关性在蘑菇街搜索推荐排序系统中的应用 搜索相关性 2020-10-30
360 360展示广告智能化演进 广告 2020-10-30
网易 "全能选手"召回表征算法实践 召回 2020-10-28
腾讯 腾讯增长技术:智能投放篇 广告 2020-10-26
阿里淘系 阿里深度召回模型实践 召回 2020-10-23
爱奇艺 爱奇艺视频精彩度分析算法及应用 其他 2020-10-22
阿里淘系 阿里新突破!动态网络表征学习在推荐领域的创新与实践 推荐&图网络 2020-10-17
腾讯 Angel:深度学习在腾讯广告推荐系统中的实践 推荐 2020-10-14
丁香园 医疗搜索中的query词权重算法探索 搜索 2020-10-13
阿里淘系 推荐算法三视角:矩阵,图,时间线 推荐 2020-10-13
阿里淘系 阿里强化学习重排实践 重排 2020-10-04
网易 Embedding在网易严选搜索推荐中的应用 召回 2020-10-01
阿里淘系 内容推荐算法:异构行为序列建模探索 推荐 2020-09-27
美图 美图个性化推送的 AI 探索之路 推荐 2020-09-26
蘑菇街 蘑菇街推荐算法之迷——self attention不如traditional attention? 推荐 2020-09-24
阿里淘系 向量召回在躺平APP的实践 召回 2020-09-22
百度 同义变换在百度搜索广告中的应用 广告 2020-09-21
阿里 阿里跨域点击率预估混合兴趣模型 精排&CXR预估 2020-09-18
腾讯 腾讯信息流热点挖掘技术实践 热点挖掘 2020-09-16
阿里淘系 阿里新一代Rank技术 推荐 2020-09-14
360 TensorNet——基于TensorFlow的大规模稀疏特征模型分布式训练框架 工程相关 2020-09-14
Airbnb 搜索推荐广告排序艺术-Airbnb搜索结果多样性优化 搜索 2020-09-13
Airbnb 搜索推荐广告排序艺术-Airbnb搜索深度学习排序算法进化 搜索 2020-09-12
腾讯看点 腾讯看点投放系统介绍:推荐系统的进化伙伴 推荐 2020-09-07
BIGO 万亿模型参数的训练 排序 2020-09-07
BIGO 万亿模型参数的在线服务 排序 2020-09-07
蘑菇街 蘑菇街首页推荐视频流——增量学习与wide&deepFM实践(工程+算法) 推荐 2020-09-04
阿里妈妈 阿里妈妈深度树匹配技术演进:TDM->JTM->BSAT 召回 2020-09-04
58同城 深度学习在商业排序的应用实践 推荐 2020-09-03
京东 CSCNN:新一代京东电商广告排序模型 广告 2020-09-02
腾讯微信 微信「看一看」 朋友在看的增强推荐系统 推荐 2020-08-31
阿里淘系 淘宝搜索模型核心技术:用户建模篇 搜索 2020-08-29
腾讯 10 分钟快速入门海量数据搜索分析引擎 Elasticearch 工程相关 2020-08-28
阿里淘系 从阿里的User Interest Center看模型线上实时serving方法 工程相关 2020-08-27
阿里飞猪 阿里飞猪个性化推荐:召回篇 召回 2020-08-23
微博 微博推荐算法实践与机器学习平台演进 推荐 2020-08-20
阿里妈妈 阿里定向广告最新突破:面向下一代的粗排排序系统COLD 粗排 2020-08-18
阿里妈妈 阿里妈妈:基于动态背包的多场景广告序列投放算法 广告 2020-08-15
阿里淘系 EdgeRec:边缘计算在淘宝推荐系统中的大规模应用 工程相关 2020-08-05
BIGO 内容流多目标排序优化 排序 2020-08-03
58同城 多业务融合推荐策略实践与思考 多目标&多任务 2020-07-29
BIGO Graph Embedding在直播推荐召回的应用 召回 2020-07-23
腾讯微信 微信"看一看"个性化推荐:排序篇 推荐 2020-07-21
腾讯 推荐系统 Embedding 技术实践总结 召回 2020-07-20
腾讯微信 微信"看一看"多模型内容策略与召回 召回 2020-07-17
腾讯微信 微信「看一看」 推荐排序技术揭秘 推荐 2020-07-10
58同城 跨域推荐技术在58部落内容社区的实践 推荐 2020-07-09
美团 BERT在美团搜索核心排序的探索和实践 推荐 2020-07-09
阿里文娱 优酷视频元素内容召回系统:多级多模态引擎探索 召回 2020-07-08
阿里智能信息 机器学习在高德搜索建议中的应用优化实践 推荐 2020-06-27
腾讯 推荐系统 embedding 技术实践总结 召回 2020-06-24
腾讯 一文搞懂 SQL:基础知识和业务实践总结 工程相关 2020-06-22
阿里文娱 一文详解面向多级多模态场景的召回引擎 召回 2020-06-17
58同城 深度召回在招聘推荐中的挑战和实践 召回 2020-06-17
微博 内容理解在新浪微博广告中的应用 内容理解 2020-06-12
腾讯 仅需少量视频观看记录,就可以精准推断你的习惯 用户挖掘 2020-06-10
58同城 Embedding技术在房产推荐中的应用 召回 2020-06-10
阿里文娱 视频搜索太难了!阿里文娱多模态搜索算法实践 搜索 2020-06-08
京东 京东电商搜索中的语义检索与商品排序 搜索 2020-06-03
阿里文娱 PPT+视频| 优酷视频元素内容召回系统:多级多模态引擎探索 召回 2020-05-28
爱奇艺 爱奇艺深度语义表示学习的探索与实践 召回 2020-05-23
丁香园 搜索中的Query扩展技术 搜索 2020-05-21
滴滴 搜索相关性算法在 DiDi Food 中的探索 搜索相关性 2020-05-16
阿里妈妈 深度时空网络、记忆网络与特征表达学习在 CTR 预估中的应用 精排&CXR预估 2020-05-11
滴滴 基于强化学习的 Contextual Bandits 算法在推荐场景中的应用 推荐 2020-05-09
腾讯 搜索中的 Query 理解及应用 搜索 2020-05-07
华为 华为高级研究员谢凌曦:下一代人工智能计算模型探索 其他 2020-04-30
阿里文娱 因果推断在阿里文娱用户增长中的应用 因果推断 2020-04-23
阿里文娱 阿里文娱搜索算法实践与思考 搜索 2020-04-20
携程 Bandit算法在携程推荐系统中的应用与实践 推荐 2020-04-19
美团 Transformer 在美团搜索排序中的实践 搜索 2020-04-16
阿里妈妈 广告CTR预估中用户行为学习和记忆建模 精排&CXR预估 2020-04-13
阿里飞猪 阿里飞猪“猜你喜欢”推荐排序实践 推荐 2020-04-08
阿里妈妈 CTR预估在动态样式建模和特征表达学习方面的进展 精排&CXR预估 2020-04-08
腾讯微信 热点挖掘技术在微信看一看中的应用 热点挖掘 2020-04-05
阿里文娱 让广告算法做你的增长黑客!阿里文娱工程师这么做 广告 2020-04-03
腾讯微信 揭秘微信"看一看"是如何为你推荐的 推荐 2020-03-31
360 智能推荐算法在花椒直播中的应用 推荐 2020-03-26
腾讯 搜索中的深度匹配模型 搜索 2020-03-24
360 深度学习在花椒直播中的应用—推荐系统冷启动算法 冷启动 2020-03-24
阿里淘系 深度学习在阿里B2B电商推荐系统中的实践 推荐 2020-03-23
美图 美图个性化推送的 AI 探索之路 推荐 2020-03-18
凤凰 信息流推荐在凤凰新闻的业务实践 推荐 2020-03-16
省钱快报 深度学习在省钱快报推荐排序中的应用与实践 推荐 2020-03-12
阿里文娱 广告算法在阿里文娱用户增长中的实践 广告 2020-03-11
汽车之家 汽车之家推荐系统排序算法迭代之路 推荐 2020-02-28
阿里 阿里B类电商用户增长实践 用户增长 2020-02-26
阿里文娱 视频 | 广告算法在阿里文娱用户增长中的实践 用户增长 2020-02-11
阿里 阿里B2B:融合Matching与Ranking的个性化CTR预估模型 精排&CXR预估 2020-02-05
阿里文娱 视频 | 阿里文娱搜索算法实践和思考 搜索 2020-02-03
腾讯 推荐系统中的深度匹配模型 推荐 2020-01-13
腾讯 一种全新的点击率建模方案 精排&CXR预估 2020-01-10
阿里淘系 让机器读懂视频:亿级淘宝视频背后的多模态AI算法揭秘 召回 2020-01-09
阿里淘系 阿里淘外商业化广告工程架构实践 工程相关 2020-01-08
爱奇艺 个性化海报在爱奇艺视频推荐场景中的实践 推荐 2020-01-07
微博 机器学习在微博 O 系列广告中的应用 广告 2020-01-06
知乎 Query 理解和语义召回在知乎搜索中的应用 召回 2020-01-02
腾讯 腾讯在信息流内容理解技术上的解决方案 内容理解 2019-12-31
贝壳 DeepFM在贝壳房源详情页推荐场景的实践 推荐 2019-12-30
阿里淘系 MMoE算法在淘宝躺平推荐中的应用实践 多目标&多任务 2019-12-27
360 ElasticSearch 介绍及使用方法 工程相关 2019-12-27
贝壳 wide&deep 在贝壳推荐场景的实践 推荐 2019-12-18
阿里妈妈 阿里妈妈点击率预估中的长期兴趣建模 精排&CXR预估 2019-12-18
阿里文娱 优酷 DSP 广告投放系统架构实践 广告 2019-12-06
腾讯微信 浅谈微视推荐系统中的特征工程 推荐&特征工程 2019-12-06
美图 多任务学习在美图个性化推荐的近期实践 多目标&多任务 2019-12-06
阿里妈妈 阿里妈妈新一代算法 JTM:如何优化大规模推荐? 召回 2019-12-04
百度 MOBIUS:百度凤巢新一代广告召回系统 召回 2019-11-29
腾讯 新一代海量数据搜索引擎 TurboSearch 来了! 工程相关 2019-11-28
腾讯微信 RALM: 实时 Look-alike 算法在微信看一看中的应用 推荐 2019-11-25
360 向量化召回在360信息流广告的实践 召回 2019-11-23
腾讯 Bing搜索核心技术BitFunnel原理 工程相关 2019-11-19
腾讯 推荐系统中模型训练及使用流程的标准化 工程相关 2019-11-04
360 360展示广告召回系统的演进 召回 2019-10-24
爱奇艺 爱奇艺效果广告的个性化探索与实践 广告 2019-10-17
美图 深度学习技术在美图个性化推荐的应用实践 推荐 2019-10-16
阿里智能信息 UC 信息流推荐模型在多目标和模型优化方面的进展 多目标&多任务 2019-10-14
阿里智能信息 UC 国际信息流推荐中的多语言内容理解 内容理解 2019-10-09
凤凰 OCPC 广告算法在凤凰新媒体的实践探索 广告 2019-09-25
阿里智能信息 浅谈 UC 国际信息流推荐 推荐 2019-09-23
58同城 58同镇下沉市场中的推荐技术实践 推荐 2019-09-18
微博 微博广告策略工程架构体系演进 工程相关 2019-09-16
快看漫画 快看漫画个性化推荐探索与实践 推荐 2019-09-12
滴滴 解读:滴滴“猜你去哪儿”功能的算法实现 推荐 2019-09-04
阿里淘系 推荐系统走向下一阶段最重要的三个问题 推荐 2019-08-28
360 深度学习在花椒直播的应用——Tensorflow 原理篇 工程相关 2019-08-28
阿里妈妈 阿里妈妈深度树检索技术(TDM)及应用框架的探索实践 召回 2019-08-16
京东 京东电商推荐系统实践 推荐 2019-08-08
阿里淘系 极测未来|淘宝"千人千面"内容下的智能评测技术与实践 推荐 2019-08-06
360 360搜索的百亿级网页搜索引擎架构实现 工程相关 2019-07-31
Hulu Hulu 在视频内容理解上的应用和最佳实践 内容理解 2019-07-26
360 深度学习在360搜索广告 NLP 任务中的应用 搜索 2019-07-18
阿里 阿里零售通智能导购推荐技术实践 推荐 2019-07-11
网易 网易新闻推荐:深度学习排序系统及模型 推荐 2019-07-08
居理新房 低频少样本长验证周期场景下的算法设计 推荐 2019-07-05
Hulu 基于行列式点过程的推荐多样性提升算法 推荐 2019-07-03
途家网 Embedding 技术在民宿推荐中的应用 召回 2019-06-25
Airbnb 深度学习在 Airbnb 中的探索与应用 搜索 2019-06-21
阿里 当你打开天猫的那一刻,推荐系统做了哪些工作? 推荐 2019-06-04
小米 小米移动搜索中的AI技术 搜索 2019-05-23
阿里妈妈 阿里妈妈:电商预估模型的发展与挑战 精排&CXR预估 2019-05-20
阿里飞猪 POI 识别在飞猪搜索的探索与实践 搜索 2019-05-10
达观数据 达观数据个性化推荐系统实践 推荐 2019-03-11
Hulu Hulu:视频广告系统中的算法实践 广告 2019-02-25
阿里妈妈 「回顾」阿里妈妈:定向广告新一代点击率预估主模型——深度兴趣演化网络 精排&CXR预估 2019-01-28
搜狗 「回顾」深度学习新技术在搜狗搜索广告中的深化应用 广告 2019-01-23
美团 大众点评搜索基于知识图谱的深度学习排序实践 搜索 2019-01-17
知乎 「回顾」知乎推荐页Ranking经验分享 推荐 2018-12-28
爱奇艺 「回顾」爱奇艺搜索排序模型迭代之路 搜索 2018-12-21
Airbnb Airbnb: 深度学习在搜索排序业务中的探索与演进(二) 搜索 2018-12-13
Airbnb Airbnb: 深度学习在搜索排序业务中的探索与演进(一) 搜索 2018-12-11
51信用卡 「回顾」51信用卡的个性化推荐体系 推荐 2018-11-21
饿了么 「回顾」饿了么推荐算法演进及在线学习实践 推荐 2018-11-07
饿了么 回顾·外卖推荐算法中有哪些机制与手段? 推荐 2018-10-12
阿里淘系 7种经典推荐算法模型的应用 推荐 2018-09-16
阿里智能信息 回顾·神马搜索技术演进之路 搜索 2018-08-17
搜狗 回顾·搜狗信息流推荐算法交流 推荐 2018-07-02
美团 深度学习在美团点评推荐平台排序中的运用 推荐 2017-07-28
美团 美团点评旅游搜索召回策略的演进 召回 2017-06-16

Paperbotv2 Arxiv Daily Review (`docs/paperbotv2-arxiv-daily-review.md`)

paperBotV2.arxiv_daily 逻辑 Review 报告

结论摘要

paperBotV2.arxiv_daily 已经是当前 arXiv 每日论文链路的主线实现,负责从 arXiv API 抓取论文、调用 DeepSeek 做粗排和精排、写入 JSON、生成 GitHub Pages 页面,并通过独立 workflow 发送飞书通知。整体链路可运行,工作流入口也已经从旧脚本迁移到 paperBotV2。

本次 review 未发现 P0 阻断问题,但发现 3 个 P1 和 2 个 P2 风险。最优先需要处理的是:跨日去重路径拼错、HTML 渲染未启用转义、generate_arxiv_html.py --output 参数必然报错。其次建议补强飞书失败观测和 arXiv 请求超时控制。

当前主线入口

入口 触发方式 主要职责 输出或副作用
.github/workflows/arxiv_daily_full.yml 每天 UTC 04:00 定时,或手动触发 安装依赖,执行 arXiv 抓取与排序,生成 HTML,提交数据并部署 Pages paperBotV2/arxiv_daily/data/*.json、paperBotV2/arxiv_daily/output/*.html、gh-pages/arxiv_daily
.github/workflows/arxiv_feishu_msg.yml arxiv_daily_full 成功后触发,或手动触发 读取当天 JSON,筛选精排论文,发送飞书模板卡片 飞书 webhook 消息
legacy/workflows/push_arxiv_daily.yml 已移入 legacy/workflows/ 旧 arXiv workflow 归档 不会被 GitHub Actions 自动识别为线上 workflow
legacy/workflows/push_arxiv_daily_cl.yml 已移入 legacy/workflows/ 旧 arXiv CL workflow 归档 不会被 GitHub Actions 自动识别为线上 workflow

arxiv.py 当前逻辑

文件:paperBotV2/arxiv_daily/arxiv.py

配置读取

arxiv.py 在模块加载阶段读取以下环境变量:

环境变量 默认值 作用
FEISHU_URL 空 旧内置飞书函数仍会读取,但当前主流程不再调用该函数
DEEPSEEK_API_KEY None DeepSeek Chat Completion API Key
TARGET_CATEGORYS cs.IR,cs.CL,cs.CV arXiv 分类列表,逗号分隔
MAX_PAPERS 100 每个分类最多拉取论文数
ROUGH_SCORE_THRESHOLD 4 粗排过滤阈值
RETURN_PAPERS 20 精排和飞书通知数量上限

主处理流程

process_papers() 是主入口,执行顺序如下:

  1. get_papers_from_all_categories():遍历 TARGET_CATEGORYS,调用 arXiv API 获取论文,并初始化 is_filtered=False、is_fine_ranked=False。
  2. perform_rough_ranking():调用 rough_rank_papers(),基于标题使用 PRERANK_PROMPT 进行粗排,过滤低于 ROUGH_SCORE_THRESHOLD 的论文。
  3. perform_fine_ranking():调用 fine_rank_papers(),对粗排前 RETURN_PAPERS 篇论文使用标题和原始摘要做精排,写入 summary、translation、rerank_relevance_score、rerank_reasoning 等字段。
  4. save_results_to_json():将当天结果写入 paperBotV2/arxiv_daily/data/YYYYMMDD.json,并增量合并到 paperBotV2/arxiv_daily/data/results.json。

抓取逻辑

get_daily_arxiv_papers() 查询 http://export.arxiv.org/api/query,使用 cat:<category> AND submittedDate:[yesterday_utc TO now_utc] 作为搜索条件,按 submittedDate 降序排序。每篇论文会被转成以 arxiv_id 为 key 的字典,核心字段包括:

  • title
  • url
  • arxiv_id
  • authors
  • categories
  • pub_date
  • ori_summary
  • summary
  • translation
  • relevance_score
  • reasoning
  • rerank_relevance_score
  • rerank_reasoning

LLM 调用逻辑

call_deepseek_api() 使用 OpenAI SDK 兼容 DeepSeek API,请求 deepseek-chat,并设置 response_format={'type': 'json_object'}。函数通过 tenacity 对 APIConnectionError、RateLimitError、APIStatusError 做最多 5 次指数退避重试。

当前行为特点:

  • 没有 DEEPSEEK_API_KEY 时直接返回 None,不会发起 API 请求。
  • LLM 返回非 JSON 或字段缺失时,函数会捕获异常并返回 None。
  • 粗排或精排单篇失败时,该论文不会进入对应成功列表。

数据落盘逻辑

save_results_to_json() 只在 all_papers 非空时写文件。输出包括:

  • 天级文件:paperBotV2/arxiv_daily/data/YYYYMMDD.json
  • 全量文件:paperBotV2/arxiv_daily/data/results.json

全量文件只新增不存在的 arxiv_id,不会覆盖已有论文字段。这能降低历史数据被重写的风险,但也意味着 LLM prompt 或评分策略升级后,历史数据不会自动刷新。

generate_arxiv_html.py 当前逻辑

文件:paperBotV2/arxiv_daily/generate_arxiv_html.py

输入选择

main() 默认从 paperBotV2/arxiv_daily/data/ 中选择最新日期 JSON,排除 results.json。也支持:

  • --date YYYYMMDD:指定某一天的 data/YYYYMMDD.json。
  • --output path:指定 HTML 输出文件路径。

页面生成流程

generate_html() 的主要步骤:

  1. 计算展示日期、论文总数、精选论文数量、平均分。
  2. 准备 paperBotV2/arxiv_daily/output/ 与 output/static/templates/。
  3. 复制 frontend 下的 styles.css、tailwind.config.js、app.js、index.html 和模板文件到 output/static/。
  4. 调用 generate_papers_html() 渲染精选和普通论文卡片。
  5. 将统计数据、日期选择器、论文 HTML 注入页面模板。
  6. 注入折叠/展开逻辑、日历逻辑和 cache-busting 时间戳。
  7. 写入 output/arxiv_YYYYMMDD.html 和 output/index.html。

卡片排序和展示逻辑

generate_papers_html() 会先按是否精选排序,再按 rerank_relevance_score 或 relevance_score 降序排序。精选论文使用 selected_paper_template.html,普通论文使用 normal_paper_template.html。

非精选论文会按分数折叠:

  • 精选论文:默认完全展开。
  • 普通论文且分数 > 1:默认只展示标题,详情折叠。
  • 普通论文且分数 <= 1:默认隐藏在低分区域后。

arxiv_feishu_msg.py 当前逻辑

文件:paperBotV2/arxiv_daily/arxiv_feishu_msg.py

输入和跳过条件

main() 读取 paperBotV2/arxiv_daily/data/ 下最新日期 JSON,且要求文件名日期等于运行当天日期。若最新文件不是当天,会直接退出,避免手动或后置触发时重复发送历史论文。

飞书发送前还会检查:

  • FEISHU_URL 是否为空。
  • 是否加载到论文数据。
  • 是否存在 is_fine_ranked=True 且包含 rerank_relevance_score 的论文。

消息选择和格式

脚本筛选精排论文后按 rerank_relevance_score 降序排序,最多发送 RETURN_PAPERS 篇。飞书卡片使用模板:

  • template_id: AAqxH62u1uNko
  • template_version_name: 1.0.8

模板变量包括:

  • paper: Markdown 论文链接
  • translation: 中文标题或翻译
  • score: 星级和分数标签
  • summary: 论文总结
  • date: 当前日期

Workflow 当前逻辑

arxiv_daily_full.yml

当前主流程如下:

  1. actions/checkout@v3,已开启 lfs: true。
  2. 设置 Python 3.8。
  3. 安装 requirements.txt。
  4. 执行 python -m paperBotV2.arxiv_daily.arxiv。
  5. 进入 paperBotV2/arxiv_daily 执行 python generate_arxiv_html.py。
  6. 检查 output/ 和 data/。
  7. 如有 diff,提交并 push。
  8. 使用 peaceiris/actions-gh-pages@v3 部署 paperBotV2/arxiv_daily/output 到 gh-pages 的 arxiv_daily 目录。

arxiv_feishu_msg.yml

当前通知流程如下:

  1. 在 arxiv_daily_full workflow 成功后自动触发,也支持手动触发。
  2. actions/checkout@v3,已开启 lfs: true。
  3. 设置 Python 3.8 并安装依赖。
  4. 进入 paperBotV2/arxiv_daily 执行 python arxiv_feishu_msg.py。

问题清单

P1: 前一天数据路径拼错,跨日去重实际失效

  • 位置:paperBotV2/arxiv_daily/arxiv.py 的 get_papers_from_all_categories()。
  • 证据:current_dir 已经是 paperBotV2/arxiv_daily,但 yesterday_file 拼成了 current_dir/arxiv_daily/YYYYMMDD.json。
  • 实际保存路径:paperBotV2/arxiv_daily/data/YYYYMMDD.json。
  • 影响:前一天论文 ID 集合几乎永远为空,跨日重复论文不会被过滤。
  • 风险:重复推送、重复 LLM 调用、成本增加、用户体验下降。
  • 建议:改成 os.path.join(current_dir, "data", f"{yesterday:%Y%m%d}.json"),并补一个临时前一天 JSON 的去重测试。

P1: HTML 渲染未启用自动转义,存在页面注入风险

  • 位置:paperBotV2/arxiv_daily/generate_arxiv_html.py 的 render_template() 和 generate_papers_html()。
  • 证据:代码使用 Template(template_content),Jinja2 默认 autoescape=False。
  • 输入来源:arXiv feed 的标题、作者、摘要、分类,以及 DeepSeek 生成的 summary/reasoning/translation。
  • 影响:如果上游文本含 HTML、事件属性或恶意 URL,可能被原样写入 GitHub Pages 页面。
  • 验证:构造包含 `` 和 javascript:alert(1) 的论文样本时,渲染结果中 payload 未被转义。
  • 建议:使用 jinja2.Environment(autoescape=select_autoescape(['html', 'xml']));对手工拼接的 CATEGORY_TAGS 使用 html.escape;对 URL 做协议白名单校验,只允许 https://arxiv.org/、https://www.alphaxiv.org/ 等可信域名。

P1: `generate_arxiv_html.py --output` 会触发 `output_dir` 未定义

  • 位置:paperBotV2/arxiv_daily/generate_arxiv_html.py 的 generate_html()。
  • 证据:只有 output_file is None 时才定义 output_dir,但后续无条件执行 static_dir = os.path.join(output_dir, "static")。
  • 影响:CLI 暴露了 --output 参数,但任何指定输出路径的调用都会触发 UnboundLocalError。
  • 风险:手动生成指定路径页面、调试脚本或未来 workflow 使用该参数时失败。
  • 建议:函数开头统一计算 output_dir:如果指定 output_file,使用 os.path.dirname(os.path.abspath(output_file));否则使用默认 script_dir/output。

P2: 飞书 webhook 非 2xx 或业务失败不会让 workflow 失败

  • 位置:paperBotV2/arxiv_daily/arxiv_feishu_msg.py 的 send_papers_to_feishu()。
  • 证据:requests.post() 后只打印 status_code,没有 raise_for_status(),也没有解析飞书业务错误码。
  • 影响:webhook 失效、限流、模板变量错误、权限错误时,workflow 仍可能显示成功,但用户收不到消息。
  • 建议:对 HTTP 非 2xx 调用 raise_for_status();记录响应体摘要;解析飞书返回的业务 code;汇总失败 webhook 数量,必要时以非 0 退出。

P2: arXiv HTTP 请求没有 timeout

  • 位置:paperBotV2/arxiv_daily/arxiv.py 的 get_daily_arxiv_papers()。
  • 证据:requests.get(base_url, params=query_params) 未设置 timeout。
  • 影响:arXiv API 网络半开或服务长时间无响应时,GitHub Actions 任务可能挂到默认超时,阻塞后续 HTML 部署和飞书通知。
  • 建议:设置 timeout=(5, 30),并配合有限重试;workflow 层增加 timeout-minutes 和 concurrency,避免定时任务堆积。

改进建议

必须优先修复

  1. 修复前一天去重路径,避免重复论文跨日进入 LLM 和飞书链路。
  2. 修复 HTML 转义和 URL 白名单,避免公开页面注入风险。
  3. 修复 --output 参数,保证 CLI 行为与帮助说明一致。

建议尽快优化

  1. 飞书发送失败应显式失败或至少汇总失败数,避免“workflow 成功但消息没发出”。
  2. arXiv API 请求设置 timeout 和 retry,workflow 设置 timeout-minutes 与 concurrency。
  3. 将 arxiv.py 内已废弃的 send_papers_to_feishu() 删除或迁移到公共通知模块,避免两个飞书模板版本并存。
  4. 对 LLM 返回字段做 schema 校验,缺字段时保留原论文并标记失败原因,而不是静默丢失到成功列表之外。

可暂缓优化

  1. save_results_to_json() 当前不会刷新历史全量结果,可后续增加手动 refresh 模式。
  2. generate_arxiv_html.py 中大量内联 CSS/JS 可以后续拆回前端资源,降低维护成本。
  3. get_latest_json_file() 仅按文件名排序,建议后续对 YYYYMMDD.json 做格式过滤,避免误选非日期 JSON。

验证记录

本次 review 使用无线上副作用方式验证,不使用真实 DEEPSEEK_API_KEY、不使用真实 FEISHU_URL、不触发真实飞书发送。

已执行验证

bash
python3 - <<'PY'
import os, py_compile, tempfile
files = [
    'paperBotV2/arxiv_daily/__init__.py',
    'paperBotV2/arxiv_daily/prompts.py',
    'paperBotV2/arxiv_daily/arxiv.py',
    'paperBotV2/arxiv_daily/arxiv_feishu_msg.py',
    'paperBotV2/arxiv_daily/generate_arxiv_html.py',
]
with tempfile.TemporaryDirectory(prefix='arxiv_daily_pycompile_') as td:
    for path in files:
        cfile = os.path.join(td, path.replace('/', '__') + '.pyc')
        py_compile.compile(path, cfile=cfile, doraise=True)
        print(f'OK py_compile {path}')
PY

结果:5 个 arXiv daily Python 文件均可编译。

bash
env -u FEISHU_URL -u DEEPSEEK_API_KEY RETURN_PAPERS=1 PYTHONPATH="$PWD" python3 - <<'PY'
from pathlib import Path
from paperBotV2.arxiv_daily import arxiv, arxiv_feishu_msg, generate_arxiv_html

post_calls = []
def fail_post(*args, **kwargs):
    post_calls.append((args, kwargs))
    raise AssertionError('requests.post should not be called in empty-key smoke')

arxiv.requests.post = fail_post
arxiv_feishu_msg.requests.post = fail_post
assert arxiv.call_deepseek_api('{"ping": true}', api_key='') is None
arxiv.send_papers_to_feishu([{'title':'T','url':'https://www.alphaxiv.org/abs/1','rerank_relevance_score':1,'summary':'S'}], feishu_urls=[])
arxiv_feishu_msg.send_papers_to_feishu([{'title':'T','url':'https://www.alphaxiv.org/abs/1','rerank_relevance_score':1,'summary':'S'}], feishu_urls=[])
arxiv_feishu_msg.main()
script_dir = Path('paperBotV2/arxiv_daily').resolve()
papers = generate_arxiv_html.load_paper_data(script_dir / 'data' / '20260526.json')[:1]
html = generate_arxiv_html.generate_papers_html(papers, str(script_dir / 'frontend'), str(script_dir / 'output' / 'static'))
assert html and '<script id="papers-data"' not in html
assert not post_calls, post_calls
print('OK empty-key smoke')
PY

结果:空 DeepSeek key 会短路;空飞书 URL 不发送;最新 JSON 非当天时飞书主流程退出;HTML 论文列表可只读渲染。

bash
env -u FEISHU_URL -u DEEPSEEK_API_KEY PYTHONPATH="$PWD" python3 - <<'PY'
from pathlib import Path
from paperBotV2.arxiv_daily import generate_arxiv_html, arxiv_feishu_msg
root = Path('paperBotV2/arxiv_daily')
static_dir = root / 'output' / 'static'
malicious = '<img src=x onerror=alert(1)>'
paper = {
    'title': malicious,
    'translation': malicious,
    'summary': malicious,
    'ori_summary': malicious,
    'authors': malicious,
    'reasoning': malicious,
    'categories': ['cs.CL'],
    'url': 'javascript:alert(1)',
    'arxiv_id': '2501.00001',
    'rerank_relevance_score': 9,
    'is_fine_ranked': True,
}
html = generate_arxiv_html.generate_papers_html([paper], str(root / 'frontend'), str(static_dir))
print('HTML_UNESCAPED_PAYLOAD', malicious in html)
print('HTML_JAVASCRIPT_HREF', 'href="javascript:alert(1)"' in html)
PY

结果:HTML_UNESCAPED_PAYLOAD=True,HTML_JAVASCRIPT_HREF=True,确认 HTML 转义风险存在。

未执行验证

  • 未运行真实 python -m paperBotV2.arxiv_daily.arxiv 全流程,因为会访问 arXiv、调用 DeepSeek 并写入当天 JSON。
  • 未使用真实 FEISHU_URL,避免误发飞书。
  • 未在 GitHub Actions Python 3.8 环境中复测,仅在本地 Python 环境完成静态和 smoke 验证。

修复记录

截至 2026-05-28,已按本报告的问题清单完成第一轮修复:

  • 已修复跨日去重路径:arxiv.py 现在从 paperBotV2/arxiv_daily/data/YYYYMMDD.json 读取前一天数据。
  • 已为 arXiv API 请求增加 timeout=(5, 30),避免外部服务长时间无响应时拖垮 workflow。
  • 已为 HTML 模板渲染启用 Jinja2 autoescape,并对分类标签做显式转义。
  • 已增加论文 URL 白名单和 fallback;不可信 URL 会回退到 https://arxiv.org/abs/<arxiv_id>。
  • 已修复 generate_arxiv_html.py --output ,指定输出目录时可正常生成页面、静态资源目录和 index.html。
  • 已增强飞书 webhook 失败处理:HTTP 非 2xx、非 JSON 响应或飞书业务错误会汇总并抛出 RuntimeError。
  • 已为 arxiv_daily_full.yml 和 arxiv_feishu_msg.yml 增加 workflow concurrency 与 job timeout-minutes。
  • 已增强 arXiv 抓取完整性:抓取窗口改为最近 36 小时,按 ARXIV_PAGE_SIZE 分页抓取到空页或 ARXIV_MAX_PAGES,避免单页 max_results=100 漏论文。
  • 已增强 arXiv 限流处理:请求增加 User-Agent,遇到 429/5xx 会按 Retry-After 或指数退避长时间重试;重试耗尽后会让流程失败,避免静默生成 0 篇结果。
  • 已将内部 arXiv 重试策略调整为“少次数、长间隔”:单页请求最多 4 轮,默认等待约 10 分钟、20 分钟、40 分钟,最大等待 2400 秒,并增加 0-120 秒随机抖动,避免短时间重复请求无效消耗。
  • 已进一步降低 arXiv 限流概率:分页间隔默认 60 秒,分类间隔默认 120 秒,并增加随机抖动,避免 GitHub Actions 固定节奏触发限流。
  • 已增加分类级页数上限:cs.IR:5,cs.CL:8,cs.CV:20,低产分类减少不必要请求,高产 cs.CV 保留更大抓取深度。
  • 已增加备用 API endpoint:主源 https://export.arxiv.org/api/query 失败时,同一轮会尝试 https://arxiv.org/api/query。
  • 已将定时任务从北京时间 12:00 调整到 13:20,避开整点和常见自动任务高峰。
  • 已增加同日缓存复用:手动重跑时若当天 JSON 已包含某分类结果,会复用缓存并跳过该分类 arXiv 请求。
  • 已关闭额外分类级二次重试:单页请求内部已经使用长间隔退避,分类层不再重复放大等待时间;若某分类最终失败,workflow 会 fail,避免提交空结果。
  • 已增加 workflow 外层重试:arxiv.py step 最多执行 3 次,失败后分别等待 30 分钟和 60 分钟再重试;最终失败会保留非 0 退出,阻止后续 HTML 生成、提交、部署和飞书成功触发。
  • 已增加运行状态持久化:每次运行会写入 paperBotV2/arxiv_daily/status/YYYYMMDD.json 详细状态,并追加/更新 paperBotV2/arxiv_daily/status/arxiv_daily_runs.csv 汇总表,记录抓取、粗排、精排、平均分、输出和错误信息。
  • 已增加晚间 recovery workflow:北京时间 18:05 检查当天状态,只有状态缺失、失败、抓取未成功、JSON 未写入或 HTML 未生成时才补跑;成功则直接跳过。
  • 已扩展飞书触发条件:arxiv_feishu_msg.yml 同时监听 arxiv_daily_full 和 arxiv_daily_recovery,确保晚间补跑成功后也会发送当天 Top20 飞书消息。
  • 已增加 PYTHONUNBUFFERED=1:GitHub Actions 长抓取阶段会实时输出日志,避免看起来像卡住。
  • 已在 requirements.txt 约束 urllib3<2:避免 macOS 系统 Python + LibreSSL 环境出现 NotOpenSSLWarning。

修复验证采用无线上副作用方式完成:

  • py_compile 通过:arxiv.py、generate_arxiv_html.py、arxiv_feishu_msg.py。
  • YAML 和 shell 语法解析通过:arxiv_daily_full.yml、arxiv_daily_recovery.yml、arxiv_feishu_msg.yml。
  • 静态检查通过:确认 requests.get(..., timeout=(5, 30)) 和 data/YYYYMMDD.json 去重路径存在。
  • HTML 恶意样本验证通过:`` 被转义,javascript: URL 不会进入 href。
  • --output 验证通过:临时目录中成功生成 arxiv_20260526.html、static/templates/ 和 index.html。
  • 飞书 mock 验证通过:成功响应不抛错,HTTP 500 与业务错误码均会抛出 RuntimeError,空 URL 仍跳过发送。
  • arXiv 抓取 mock 验证通过:429 会等待后重试,分页会继续抓取后续页面,并在空页停止。
  • arXiv 慢抓策略验证通过:分类级页数、备用 endpoint、分页/分类间隔和随机抖动配置均可被代码和 workflow 读取。
  • arXiv 缓存与分类重试 mock 验证通过:今日缓存存在时跳过请求,分类失败会单独等待后重试。
  • 真实 arXiv 抓取层 smoke 验证通过:只请求 arXiv API,不进入 DeepSeek、不写 JSON/HTML、不发飞书。
  • 状态持久化临时目录验证通过:JSON/CSV 写入、HTML 状态回写和 recovery 判断逻辑均符合预期。
  • git diff --check 通过。

后续优化路线

首轮修复已覆盖本报告中的 5 个主要问题。后续可继续做以下增强:

  1. 为去重路径、HTML 转义、URL 白名单、--output 和飞书失败处理补充正式单元测试。
  2. 为 arXiv 请求增加分类级失败统计和抓取数量趋势监控。
  3. 清理 arxiv.py 内废弃飞书函数,统一通知逻辑到 arxiv_feishu_msg.py 或公共模块。
  4. 增加 DRY_RUN 或 --dry-run 参数,方便在 CI 和本地做无副作用验证。
  5. 后续在 GitHub Actions Python 3.8 环境中手动触发一次 workflow,验证真实 secrets、Pages 部署和飞书模板兼容性。

Paperbotv2 Arxiv Html Ui Review (`docs/paperbotv2-arxiv-html-ui-review.md`)

PaperBotV2 arXiv HTML UI Review

结论摘要

本次 review 聚焦 paperBotV2/arxiv_daily/generate_arxiv_html.py 及其生成的 arXiv 每日 HTML 页面。当前链路已经具备每日论文展示、精选优先、普通论文折叠、低分论文隐藏、摘要详情、统计卡片、日期日历和静态资源 fallback 等能力,且输出路径支持 --output,可以用临时目录做无副作用验证。

主要风险集中在前端状态与后端注入逻辑交错:日历会被过期 localStorage 影响,筛选和折叠逻辑分散在 app.js 与内联脚本中,低分论文分割线位置不符合文案语义,部分空值 fallback 与评分展示仍有体验问题。建议优先修正日历选中态和交互职责边界,再逐步补充搜索、筛选、历史浏览和阅读状态能力。

当前逻辑梳理

输入与数据转换

  • main() 从 paperBotV2/arxiv_daily/data/ 读取指定 --date 的 YYYYMMDD.json,未指定时按文件名倒序选择最新 JSON。
  • get_latest_json_file() 排除 results.json,直接按文件名排序选最新文件;get_json_file_by_date() 只接受 YYYYMMDD。
  • load_paper_data() 将 JSON 字典转换为论文列表,并向每个 paper_info 原地写入 arxiv_id。
  • generate_html() 统计总论文数、精选论文数和平均分;精选判断使用 is_fine_ranked,评分优先 rerank_relevance_score,否则 relevance_score。
  • generate_papers_html() 先按精选优先排序,再按评分降序排序;精选论文使用 selected_paper_template.html,普通论文使用 normal_paper_template.html。

模板渲染与展示

  • 模板渲染使用 Jinja2 Environment 和默认 autoescape,正文、标题、作者、摘要等文本会被转义。
  • URL 只允许 http/https 且 host 属于 arXiv 白名单,路径必须以 /abs/、/pdf/ 或 /html/ 开头,异常 URL 回退到 https://arxiv.org/abs/{arxiv_id} 或 https://arxiv.org。
  • 分类标签由 build_category_tags() 生成,分类文本逐项转义后以 Markup 注入模板。
  • 作者超过 MAX_AUTHORS_DISPLAY_LENGTH 后截断,标题优先展示 translation,摘要优先 abstract,原始摘要优先 ori_summary。
  • summary 非空时展示“核心总结”;推荐理由优先 rerank_reasoning,否则 reasoning,默认值为“无”。

静态资源与输出

  • 默认输出为 paperBotV2/arxiv_daily/output/arxiv_YYYYMMDD.html,指定 --output 时会以输出文件所在目录作为临时 output_dir。
  • 若 frontend/ 存在则复制其中 styles.css、tailwind.config.js、app.js、index.html 和模板;当前仓库主要使用 output/static/ 作为 fallback 来源。
  • 输出页面中的 ../frontend/styles.css、../frontend/tailwind.config.js、../frontend/app.js 会被改写为 static/...。
  • 每次生成具体日期 HTML 后,会在同一输出目录写入 index.html,通过 meta refresh 指向 arxiv_YYYYMMDD.html。

日历逻辑

  • 后端扫描 script_dir/data/*.json,注入 availableDates 数组,过滤 results.json 和非 YYYYMMDD.json 文件。
  • 前端从 #current-date 文本解析当前日期,初始化 displayYear 和 displayMonth。
  • 日历按钮控制 #date-picker 的 hidden class,支持上月和下月切换。
  • 有数据日期可点击,点击后写入 localStorage.selectedDate/selectedYear/selectedMonth,并跳转到 arxiv_YYYYMMDD.html。
  • 无数据日期置灰不可点击;当天日期使用 bg-primary 高亮,选中日期使用边框和阴影高亮。

页面交互

  • 精选论文默认完全展开,普通论文按评分分为 collapsed-level-1 和 collapsed-level-2。
  • collapsed-level-1 只隐藏 .paper-details,标题仍可见;collapsed-level-2 整卡默认隐藏。
  • 内联 collapse_js 会插入“展开/折叠全部非精选论文”按钮,给普通论文标题加眼睛图标,并处理“全部论文/仅显示精选”的实际过滤。
  • app.js 也绑定了 show-all 和 show-selected,但只更新按钮样式;摘要详情主要依赖原生 ``。

问题清单

严重度 类型 问题 证据 影响 建议
P1 日历状态 过期 localStorage 会覆盖当前页面日期和月份 initCalendar() 只要存在 savedDate 就使用保存值设置 selectedDateText、displayYear、displayMonth 从新日期页面进入时,按钮文本和日历选中态可能停留在上次点击日期,用户误以为当前页面不是实际日期 页面加载时应以 currentDateStr 为权威,只在打开日历或跨页回访时校验保存日期是否等于当前页面日期;不一致时清理或覆盖 localStorage
P2 日历兼容性 当前日期解析依赖 DOM 文本和 new Date() 宽松解析 currentDateStr 通过替换中文字符得到 YYYY-MM-DD,再传入 new Date(currentDateStr) 部分浏览器或异常模板空值下可能得到 Invalid Date,导致月份渲染异常 直接由后端注入安全的 currentDate = {year, month, day, ymd},避免从展示文本反解析
P2 页面交互 低分论文分割线插在普通论文最后之后,而不是低分论文之前 normalPapers[normalPapers.length - 1] 后插入 divider;但低分论文默认 display:none “点击展开更多论文(评分较低)”的位置可能出现在所有可见普通论文之后,低分论文展开后追加在分割线之前或附近,层级语义不清 按 collapsed-level-2 的第一个元素插入分割线,或将低分论文包进单独容器
P2 可维护性 app.js 与内联 collapse_js 同时绑定筛选按钮 app.js 绑定 show-all/show-selected 仅更新样式,内联脚本再次绑定并执行实际显示/隐藏 双重监听增加未来改动时的竞态和认知成本,按钮 class 可能被两个来源覆盖 将筛选、折叠、日历统一迁移到静态 app.js,Python 只负责注入数据 JSON 或 data-* 配置
P2 数据副作用 load_paper_data() 原地修改 JSON 解析出的 paper_info 循环中执行 paper_info['arxiv_id'] = arxiv_id 当前影响有限,但函数调用方复用原始对象时会出现隐式变异,不利于测试和推理 改为 paper = {**paper_info, "arxiv_id": arxiv_id},保持输入对象不可变
P3 展示体验 评分展示直接 int(score) 会截断小数 评分 8.7 展示为 8/10,平均分却保留 1 位小数 高分论文的细粒度差异被抹平,用户可能不理解排序差异 评分 badge 建议保留 1 位小数或统一整数规则并说明
P3 展示体验 summary 为空时核心总结区直接缺失 模板仅 {% if SUMMARY %} 才展示核心总结 普通论文可能只剩推荐理由和摘要入口,信息层次不稳定 非精选论文可显示“暂无核心总结”,或将摘要首句作为兜底
P3 历史导航 availableDates 只用于日历,没有最近有数据日期快捷入口 用户必须逐月翻日历寻找可点击日期 历史浏览效率低,跨日回看成本高 增加最近 7/30 个有数据日期列表、月份热力图或历史 Top 入口

功能与体验改进

近期可做

Idea 收益 复杂度 风险 建议
修复日历状态以当前页面日期为准 避免日期错乱,提升基础可信度 低 需要处理旧 localStorage 兼容 页面加载覆盖 stale 状态,跳转点击后再保存
分类筛选与分数区间筛选 快速定位 cs.IR、cs.CL、高分论文 中 需要维护计数和按钮状态 使用前端 DOM data 属性或后端注入 JSON 配置
搜索标题/摘要/作者 提升每日论文发现效率 中 大页面 DOM 搜索性能需关注 先做本页轻量搜索和关键词高亮
统一交互脚本到 app.js 降低维护成本 中 迁移时可能影响现有页面 Python 只注入 window.__ARXIV_PAGE_DATA__
改善空状态与 fallback 文案 数据不完整时页面更稳定 低 文案需要统一 为 summary、reasoning、authors、categories 建立统一 fallback

中期增强

Idea 收益 复杂度 风险 建议
最近有数据日期列表 快速回看历史日报 中 需要控制列表长度 后端注入按日期倒序的最近 N 天
阅读状态:已读/未读/稍后看 适合每天持续阅读 中 localStorage 数据结构需要迁移 用 arXiv ID 做 key,先本地保存
收藏论文与导出列表 支持二次阅读和分享 中 跨设备同步暂不可用 本地收藏 + 复制 Markdown/BibTex 入口
主题聚合与关键词聚类 降低大批量论文浏览成本 高 需要额外 NLP 或 LLM 结果 先基于 categories 和关键词做轻量聚合
跨日 Top 论文入口 提升历史发现能力 中 需要读取多日数据 静态生成 history_top.html 或本页链接

远期探索

Idea 收益 复杂度 风险 建议
趋势面板 观察主题热度和评分变化 高 数据聚合与展示设计成本高 先生成周/月聚合 JSON
个性化阅读队列 更贴合个人兴趣 高 需要用户偏好和隐私设计 本地偏好优先,不引入线上依赖
单篇分享页 方便传播重点论文 高 静态站路由和 SEO 需要设计 可先支持 hash 定位和复制链接
移动端沉浸阅读模式 提升手机阅读体验 中 需要重新组织卡片密度 增加一键展开摘要和粘性筛选栏

验证记录

验证均使用本地命令和临时目录完成,不触发 DeepSeek、不发送飞书、不依赖生产 secrets、不覆盖线上 JSON/HTML 输出。

验证项 命令或方式 结果
Python 语法检查 python3 -m py_compile paperBotV2/arxiv_daily/generate_arxiv_html.py 通过
临时目录 HTML 生成 直接导入 generate_html(),输出到 /var/folders/.../arxiv_html_ui_task6_5kbafj9a/arxiv_20260526.html 通过
静态资源复制 检查临时目录存在 static/app.js、static/styles.css、static/tailwind.config.js、static/templates/ 通过
首页重定向 检查临时目录 index.html 指向 arxiv_20260526.html 通过
日历数据注入 检查生成 HTML 包含 const availableDates = ... 和 20260526 通过
折叠 class 注入 检查生成 HTML 包含 collapsed-level-1 与 collapsed-level-2 通过
URL 安全兜底 构造 javascript:alert(1) 样本,检查未出现在 HTML 且回退到 arXiv URL 通过
线上输出保护 生成命令只写入系统临时目录;验证后 git status --short 未出现 paperBotV2/arxiv_daily/output/ 变更 通过

修复记录

本轮已按报告中的高优先级问题修复,并回溯重生成历史 HTML。

修复项 变更 验证
日历 stale localStorage 当前页面日期改为后端注入的 currentDateConfig,页面加载时始终以当前 HTML 日期为权威;只有保存日期等于当前页面日期时才恢复保存的月份视图 临时目录 smoke 和 120 个历史 HTML 全量断言均通过
日期解析兼容性 前端不再从 #current-date 展示文本反解析日期,也不再使用 new Date('YYYY-MM-DD') py_compile 通过,生成 HTML 包含 const currentDateConfig = ...
可用日期顺序 availableDates 改为按日期升序注入 --all 按日期升序生成,index.html 最终指向最新日期
低分论文展开 移除 .collapsed-level-2 的 !important,展开态可以正常覆盖隐藏态 全量 HTML 断言确认不存在 display: none !important
低分分割线位置 分割线改为插入到第一篇 collapsed-level-2 低分论文之前 全量 HTML 断言确认使用 firstLowScorePaper 插入逻辑
全局收起一致性 “展开/折叠全部”和“全部论文”会清理单篇详情的 inline display 状态 临时目录 smoke 覆盖脚本注入
数据副作用 load_paper_data() 改为复制 paper_info 后追加 arxiv_id,不原地修改 JSON 子对象 临时样本验证源 JSON 文件内容未被修改
展示 fallback 推荐理由改为 rerank_reasoning or reasoning or '无',评分 badge 保留一位小数并去掉多余 .0 临时样本验证 8.7/10 和空理由 fallback
重复事件绑定 output/static/app.js 移除筛选按钮事件绑定,避免与生成页内联筛选逻辑重复 app.js diagnostics 无报错
回溯生成 新增 generate_arxiv_html.py --all,可批量生成 data/*.json 对应历史页面 已执行 python3 generate_arxiv_html.py --all,成功生成 120/120 个日期

后续建议

  1. 下一步建议将筛选、折叠和日历逻辑继续迁移到静态 app.js,后端只注入结构化 JSON 配置,减少 Python 拼接大段 JS。
  2. 为 load_paper_data()、sanitize_url()、generate_html(--output)、availableDates 注入和模板 fallback 增加正式单元测试。
  3. 近期产品增强优先做搜索、分类筛选、分数筛选和最近有数据日期列表,收益明确且不依赖线上服务。
  4. 中期可评估阅读状态、收藏、导出 Markdown/BibTeX 和跨日 Top 论文入口。

Paperbotv2 Refactor Report (`docs/paperbotv2-refactor-report.md`)

PaperBotV2 项目梳理与重构报告

结论摘要

本仓库从“搜广推工业实践文章收集”起步,随后扩展出 arXiv 每日论文推送、顶会论文汇总、行业实践网页和 GitHub Actions 自动化。当前代码同时保留顶层旧脚本和 paperBotV2/ 新结构,维护边界不清晰。

综合 README、脚本目录和工作流调用关系,当前主线应以 paperBotV2 为准:arXiv 每日处理、HTML 页面生成、飞书消息补发和行业实践页面更新均已迁入 paperBotV2;README 中顶会论文列表也指向 paperBotV2/conf_summary/data/papers/。但部分 GitHub Actions 仍会调用顶层旧脚本,说明旧代码尚未完全下线,后续重构需要分阶段迁移和验证,不能直接删除。

实施基础状态

Task 1 已从 main...origin/main 创建并切换到 refactor/paperbotv2-safe-migration 分支。创建前的 git status --short --branch 显示存在未跟踪的 .trae/ 与 docs/,本次只记录状态并保留这些现有改动,不执行清理、重置或覆盖操作。

本次安全迁移的计划修改范围限定为 GitHub Actions 入口、legacy/ 归档目录、实施报告和必要的最小验证记录。线上无损原则是:旧脚本只做目录级归档、不修改脚本内容,不删除历史数据,不改变已生效的 paperBotV2 输出目录,不触发真实线上 webhook,不让 README 顶会链接回退到顶层 papers/。

实施状态更新

截至 2026-05-28,Task 2 和 Task 3 已完成可安全迁移部分:旧 arXiv 手动工作流已归档到 legacy/workflows/,线上只保留 arxiv_daily_full.yml 与 arxiv_feishu_msg.yml;update_confs.yml 已迁移到 paperBotV2/conf_summary 链路;push_conf_daily.yml 因新版尚未完全替代旧飞书日推和私有 CONF_URL 摘要补全能力,暂时保留 legacy/conf.py 兼容调用,但已停止运行会把 README 链接回退到顶层 papers/ 的旧 legacy/render.py。

Task 4 已调整完成:顶层旧脚本不再通过修改源文件添加提示,而是以原始内容归档到 legacy/ 目录;README.md 已补充 legacy 入口说明,明确当前主线入口为 paperBotV2/arxiv_daily/、paperBotV2/conf_summary/ 和 paperBotV2/industry_practice/。本次未删除顶层历史数据文件或 papers/ 历史产物,保留回滚与复核能力。

仓库功能全景

主要功能

功能 当前承载位置 输入 输出 说明
行业实践文章收集 paperBotV2/industry_practice/、README.md、source.xlsx GitHub Issue、文章元数据 README.md 表格、article.json、article.csv、HTML 页面 原始能力来自顶层 maintain.py 和 source.xlsx,新实现已迁入 paperBotV2/industry_practice/
arXiv 每日论文 paperBotV2/arxiv_daily/ arXiv API、DeepSeek、环境变量 日级 JSON、全量 results.json、HTML 页面、飞书卡片 新版以多分类抓取、粗排、精排、页面生成为主线
顶会论文汇总 paperBotV2/conf_summary/、顶层旧脚本 DBLP、会议配置、摘要源 data/results.json、会议 Markdown、README 顶会表格 新目录已有爬取、摘要补全、Markdown 转换、README 更新工具,但部分工作流仍调用顶层旧脚本
GitHub Pages paperBotV2/arxiv_daily/output/、paperBotV2/industry_practice/output/ JSON 数据、Jinja2 模板、静态资源 gh-pages 下 arxiv_daily/ 和 industry_practice/ arXiv 和行业实践都有网页化产物
自动化入口 .github/workflows/ schedule、workflow_dispatch、issues labeled、workflow_run 数据提交、Pages 部署、飞书通知 入口混合了新旧脚本,是当前重构重点

顶层目录与文件

路径 用途判断 当前状态
README.md 项目首页,包含仓库介绍、论文推送 Bot、顶会论文表和行业实践文章表 仍是核心展示文件,顶会链接已指向 paperBotV2/conf_summary/data/papers/
requirements.txt Python 依赖,包含 feedparser、openai、tenacity、tqdm、beautifulsoup4、aiohttp、requests、jinja2 新旧脚本共用
source.xlsx 早期行业实践文章数据源,README 提到可执行自定义排序 旧数据源,paperBotV2/industry_practice 已有 JSON/CSV 数据源
arxiv.json 顶层旧 arXiv 脚本缓存翻译结果 旧数据产物,仍可能被手动旧工作流使用
results.json 顶层旧顶会脚本缓存会议论文与摘要 旧数据产物,仍可能被旧会议工作流使用
papers/ 顶层旧 render.py 生成的会议 Markdown 历史产物,README 当前主链接转向 paperBotV2/conf_summary/data/papers/
搜广推优质博主文章.md、搜广推算法系列串讲.md 手工维护的扩展内容 可保留为内容资产
.trae/specs/document-paperbotv2-refactor/ 本次文档任务的 spec、checklist、tasks 任务管理资料

顶层旧脚本

脚本 职责 被引用情况 与新版关系
legacy/arxiv.py 查询单个 arXiv 分类,翻译摘要,推送飞书或 ServerChan,并维护 arxiv.json 原 push_arxiv_daily.yml、push_arxiv_daily_cl.yml 已归档到 legacy/workflows/,不在线触发 被 paperBotV2/arxiv_daily/arxiv.py 替代;新版支持多分类、LLM 粗排/精排、HTML 数据
conf.py 基于 results.json 补全顶会摘要、翻译并推送飞书 push_conf_daily.yml 手动触发调用 被 paperBotV2/conf_summary 的数据结构和处理脚本逐步替代
crawler.py 从 DBLP 抓取会议论文列表并写入 results.json update.py 间接调用 paperBotV2/conf_summary/crawler.py 是增强版,支持更多会议与重试策略
citer.py 基于 DOI/Crossref 补充引用数 update.py 间接调用 新版会议数据不再以引用数为核心字段,保留为历史能力
render.py 将顶层 results.json 渲染为 papers/ 下 Markdown,并更新 README 顶会表 push_conf_daily.yml、update_confs.yml 调用 新版应由 paperBotV2/conf_summary/convert_to_md.py 和 update_readme_papers.py 替代
update.py 解析 Issue 中的会议参数,触发 crawler.py、citer.py update_confs.yml 调用 需要迁移到 paperBotV2/conf_summary 入口
maintain.py 早期行业实践 Issue 解析、更新 source.xlsx/README、飞书通知 未被当前工作流调用 被 paperBotV2/industry_practice/maintain.py 替代
translate.py DeepSeek/Caiyun 翻译客户端 顶层旧 arxiv.py、conf.py 使用 可迁移为公共工具,或限定为 legacy 依赖

PaperBotV2 模块盘点

`paperBotV2/arxiv_daily`

arxiv.py 是新版 arXiv 主处理入口。它从环境变量读取 TARGET_CATEGORYS、MAX_PAPERS、ROUGH_SCORE_THRESHOLD、RETURN_PAPERS、DEEPSEEK_API_KEY 和 FEISHU_URL,按分类查询 arXiv API,使用 DeepSeek 做粗排和精排,并将结果写入 paperBotV2/arxiv_daily/data/YYYYMMDD.json 与 paperBotV2/arxiv_daily/data/results.json。

generate_arxiv_html.py 读取 JSON 数据和静态模板,生成日级 HTML 与索引页面,输出到 paperBotV2/arxiv_daily/output/。输出目录含 static/、模板、样式与历史日级页面,是 GitHub Pages 发布源。

arxiv_feishu_msg.py 从 data/ 中选择最新日级 JSON,校验日期为当天后,根据精排分数选取论文并发送飞书消息。它将“数据处理/网页生成”和“消息发送”拆成两个自动化阶段,避免页面未部署时提前推送。

prompts.py 保存粗排和精排提示词,是新版筛选逻辑的核心配置文件。

`paperBotV2/conf_summary`

crawler.py 从 DBLP 按会议和年份抓取论文列表,当前字段更贴近推荐展示:论文名、链接、作者、摘要、作者机构、标题翻译、推荐分和推荐理由。相比顶层 crawler.py,新版支持 nips/neurips 路径、重试、随机延迟和更丰富的会议范围。

get_free_abstract.py 面向 ACL/NAACL/EMNLP/ICLR 等开放页面补全摘要,支持按会议模式和数量限制筛选空摘要论文,是对旧 conf.py 中通过私有 CONF_URL 补摘要方式的替代方向。

convert_to_md.py 将 data/results.json 转成 data/papers/<conf>/<conf><year>.md,生成包含序号、标题、推荐理由、推荐度、摘要、作者、组织的 Markdown 表格,并对部分会议摘要做动态截断,控制文件大小。

update_readme_papers.py 扫描 data/papers/,重建 README 的顶会论文矩阵。README 当前顶会链接已经指向该目录,说明展示层已向 paperBotV2 靠拢。

`paperBotV2/industry_practice`

maintain.py 是当前行业实践 Issue 入口。它解析 Issue 文章元数据,更新 data/article.json 和 data/article.csv,向 README 的行业实践表插入新文章,发送飞书通知,并调用 generate_industry_html.py 刷新网页。

generate_industry_html.py 读取 data/article.json,转换中英文键名,按日期倒序排序,生成公司和标签筛选数据,再基于 Jinja2 模板输出 paperBotV2/industry_practice/output/index.html。该输出目录被 update_content.yml 部署到 GitHub Pages 的 industry_practice/。

data/ 是结构化文章数据源,output/ 是网页产物。相比顶层 maintain.py 依赖 source.xlsx,新版更适合自动化和网页化。

GitHub Actions 调用关系

工作流 触发方式 当前调用 新旧归属 影响
arxiv_daily_full.yml schedule 每天 UTC 4:00、手动 python -m paperBotV2.arxiv_daily.arxiv,随后 cd paperBotV2/arxiv_daily && python generate_arxiv_html.py,提交并部署 Pages 新版主线 当前 arXiv 日常处理和网页发布的实际主入口
arxiv_feishu_msg.yml arxiv_daily_full 成功后、手动 cd paperBotV2/arxiv_daily && python arxiv_feishu_msg.py 新版主线 当前 arXiv 飞书通知的实际主入口
update_content.yml Issue 标记 require to update content、手动 python paperBotV2/industry_practice/maintain.py --issue ...,再部署 paperBotV2/industry_practice/output 新版主线 当前行业实践更新入口
legacy/workflows/push_arxiv_daily.yml 已归档,不在 .github/workflows/ 中触发 python -m paperBotV2.arxiv_daily.arxiv,TARGET_CATEGORYS=cs.IR legacy 归档 原旧 arXiv IR 手动入口已移出线上 workflow 目录
legacy/workflows/push_arxiv_daily_cl.yml 已归档,不在 .github/workflows/ 中触发 python -m paperBotV2.arxiv_daily.arxiv,TARGET_CATEGORYS=cs.CL legacy 归档 原旧 arXiv CL 手动入口已移出线上 workflow 目录
push_conf_daily.yml 手动;schedule 已注释 python legacy/conf.py,随后运行 paperBotV2/conf_summary/convert_to_md.py 与 update_readme_papers.py 混合兼容 暂保留旧飞书日推能力,但不再运行 legacy/render.py 回写 README
update_confs.yml Issue 标记 require to update confs、手动 python paperBotV2/conf_summary/update_from_issue.py --issue ...,随后转换 Markdown 并更新 README 新版主线 Issue 触发的顶会新增/更新流程已迁入 paperBotV2/conf_summary

自动化证据表明:arXiv 日常计划任务、arXiv 飞书后置通知、行业实践 Pages 部署和顶会 Issue 更新已经是 paperBotV2 路径;旧 arXiv 手动工作流已归档到 legacy/workflows/,不再作为线上可触发 workflow。会议日推送 push_conf_daily.yml 仍保留 legacy/conf.py 兼容调用,是后续需要补齐新版飞书日推能力后再完全迁移的遗留入口。

新旧代码关系

arXiv 路径

旧 arxiv.py 以单分类查询、摘要翻译、飞书推送为中心,数据缓存写入顶层 arxiv.json。两个旧手动 workflow 已归档到 legacy/workflows/,不再位于 .github/workflows/ 线上触发目录;当前线上 arXiv 主入口保留 arxiv_daily_full.yml 和 arxiv_feishu_msg.yml。

新版 paperBotV2/arxiv_daily/arxiv.py 支持 cs.IR,cs.CL,cs.CV 等多分类,使用 DeepSeek 对论文做相关性粗排和摘要精排,输出日级 JSON 和全量 JSON,再由 generate_arxiv_html.py 发布页面,由 arxiv_feishu_msg.py 发送消息。它是当前自动日更和页面发布的实际生效路径。

结论:旧 arXiv 脚本属于兼容遗留代码,已以原始内容归档到 legacy/,README 标注当前主线。后续可在确认无人工依赖后删除归档副本。

会议论文路径

旧会议路径由 legacy/update.py、legacy/crawler.py、legacy/citer.py、legacy/conf.py、legacy/render.py 和顶层 results.json/papers/ 组成,侧重 DBLP 抓取、Crossref 引用数、私有摘要接口和 README 表格更新。Task 3 后,update_confs.yml 已迁入 paperBotV2/conf_summary;push_conf_daily.yml 暂保留 legacy/conf.py 用于旧飞书日推兼容,但不再调用会重写 README 的 legacy/render.py。

新版 paperBotV2/conf_summary 已具备 DBLP 抓取、开放摘要补全、Markdown 转换和 README 表格更新能力,README 顶会链接也已转向 paperBotV2/conf_summary/data/papers/。

结论:会议模块处于“Issue 更新和展示产物已迁入 paperBotV2,日推通知仍保留旧兼容脚本”的过渡态。下一步应补齐 paperBotV2/conf_summary 的飞书日推替代能力,再移除 push_conf_daily.yml 对 legacy/conf.py 的依赖。

行业实践路径

旧 legacy/maintain.py 依赖 source.xlsx,直接插入 README 表格并推送飞书。当前工作流没有调用该归档脚本。

新版 paperBotV2/industry_practice/maintain.py 以 article.json/article.csv 为结构化数据源,仍更新 README,同时生成 HTML 页面并部署 Pages。update_content.yml 已调用新版入口。

结论:行业实践模块已基本迁移完成,legacy/maintain.py 与 source.xlsx 可作为历史数据和回滚资产暂存,后续确认后删除归档副本或归档旧数据。

当前实际生效路径

当前应按以下路径理解仓库主线:

  1. arXiv 日常任务:arxiv_daily_full.yml 调用 paperBotV2/arxiv_daily/arxiv.py 生成 JSON,再调用 paperBotV2/arxiv_daily/generate_arxiv_html.py 生成页面并部署。
  2. arXiv 飞书通知:arxiv_feishu_msg.yml 在 arxiv_daily_full 成功后调用 paperBotV2/arxiv_daily/arxiv_feishu_msg.py。
  3. 行业实践更新:update_content.yml 调用 paperBotV2/industry_practice/maintain.py,该脚本会更新数据、README、飞书消息和 HTML 页面。
  4. 顶会展示:README 链接已指向 paperBotV2/conf_summary/data/papers/,说明展示产物以 paperBotV2 为准。
  5. 顶会更新入口:update_confs.yml 已调用 paperBotV2/conf_summary/update_from_issue.py、convert_to_md.py 和 update_readme_papers.py;push_conf_daily.yml 暂时保留 legacy/conf.py 作为旧飞书日推兼容入口,但输出转换和 README 更新已使用 paperBotV2/conf_summary。

遗留风险

风险 影响 建议
旧 arXiv 工作流归档后仍存在历史文件 维护者可能误以为 legacy/workflows/ 内文件仍会在线触发 旧文件已移出 .github/workflows/,GitHub Actions 不会识别为线上 workflow
push_conf_daily.yml 仍调用 legacy/conf.py 会议日推送仍可能写入顶层 results.json,与新版会议数据分叉 补齐 paperBotV2/conf_summary 飞书日推能力后再替换 legacy/conf.py
legacy/render.py 会重写 README 顶会区块 手工运行旧脚本可能覆盖 paperBotV2/conf_summary 生成的链接结构 工作流已停止调用 legacy/render.py,改用 update_readme_papers.py
多套数据源并存 source.xlsx、article.json、arxiv.json、多个 results.json 容易混淆 建立数据源归属表,保留一套 canonical 数据
工作流提交条件中存在旧式 set-output 和 shell 细节 后续 GitHub Actions 兼容性和可维护性较差 重构时同步升级为 $GITHUB_OUTPUT 并修正 shell 判断
脚本相对路径不一致 从仓库根或子目录运行时输出位置不同 为每个入口统一基于 __file__ 的路径解析

重构升级方案

代码分类

类别 范围 处理策略
保留主线 paperBotV2/arxiv_daily/、paperBotV2/industry_practice/、paperBotV2/conf_summary/、requirements.txt 作为唯一演进方向,补充入口文档和验证脚本
迁移入口 update_confs.yml、push_conf_daily.yml、旧 arXiv 手动 workflow 已将旧 arXiv workflow 归档到 legacy/workflows/;其余入口改为调用 paperBotV2 下模块,或改造成兼容 wrapper
归档数据 顶层 arxiv.json、results.json、papers/、source.xlsx 先冻结,确认无工作流写入后移到 legacy/ 或文档注明只读
删除候选 顶层 arxiv.py、conf.py、crawler.py、citer.py、render.py、update.py、maintain.py、translate.py 迁移完成且连续多轮自动化验证通过后删除
内容资产 搜广推优质博主文章.md、搜广推算法系列串讲.md 保留,必要时迁入 docs/ 或 paperBotV2/industry_practice 内容目录

分阶段计划

第一阶段:文档与冻结。

将顶层旧脚本以原始内容移动到 legacy/,补充 README 或 docs/ 入口说明,明确 paperBotV2 是主线。禁止新功能继续写入顶层 arxiv.json、results.json 和 papers/。将旧手动工作流名称或描述改为 deprecated,避免误触发。

第二阶段:迁移会议自动化。

update_confs.yml 已迁移为 paperBotV2/conf_summary/update_from_issue.py、convert_to_md.py 和 update_readme_papers.py 链路,输出保持在 paperBotV2/conf_summary/data/。push_conf_daily.yml 暂时保留 legacy/conf.py 用于日推兼容,但已改用 paperBotV2/conf_summary 生成 Markdown 和 README,避免链接回退到顶层 papers/。

第三阶段:统一 arXiv 与行业实践入口。

push_arxiv_daily.yml、push_arxiv_daily_cl.yml 已移出 .github/workflows/ 并归档到 legacy/workflows/。线上 arXiv 入口仅保留 arxiv_daily_full.yml 和 arxiv_feishu_msg.yml;行业实践继续以 paperBotV2/industry_practice/maintain.py 为主入口。

第四阶段:数据归档与兼容窗口。

对顶层历史数据做一次只读归档,记录最新迁移日期、数据来源和是否仍被 README 引用。保留一个发布周期的回滚分支或 tag,确认 Pages、README 和飞书无异常后移除旧脚本。

第五阶段:清理依赖和质量提升。

统一 Python 包结构,补齐 paperBotV2 根包初始化,抽取通用飞书发送、日期处理、文件路径和 LLM 客户端。升级 GitHub Actions 的 checkout/setup-python 版本,替换废弃的 ::set-output。

验证清单

场景 验证命令或方式 期望结果
arXiv 数据处理 手动运行 arxiv_daily_full.yml 或本地以测试环境变量执行 python -m paperBotV2.arxiv_daily.arxiv paperBotV2/arxiv_daily/data/YYYYMMDD.json 与 results.json 更新
arXiv 页面生成 在 paperBotV2/arxiv_daily 下运行 python generate_arxiv_html.py output/ 下生成最新 arxiv_YYYYMMDD.html 和索引页
arXiv 飞书消息 手动运行 arxiv_feishu_msg.yml,使用测试 webhook 仅在最新 JSON 日期为当天时发送,不重复发送旧数据
行业实践更新 使用测试 Issue body 调用 python paperBotV2/industry_practice/maintain.py --issue ... article.json、article.csv、README 和 output/index.html 更新
顶会 Markdown 在 paperBotV2/conf_summary 下运行转换脚本 data/papers/<conf>/<conf><year>.md 生成且 README 链接稳定
README 稳定性 对迁移前后 README diff 做人工审查 顶会表、行业实践表不被旧格式覆盖
Pages 发布 检查 peaceiris/actions-gh-pages 发布目录 arxiv_daily/ 与 industry_practice/ 页面可访问

Task 5 最小化验证记录

验证日期:2026-05-28。本次只做本地静态检查、依赖安装后的导入/编译检查和空密钥分支验证,未使用真实 webhook 或生产密钥,未触发 GitHub Actions、Pages 发布、arXiv/DeepSeek 线上抓取或飞书真实发送。

检查项 命令 结果
本地解释器确认 python - <<'PY' ... 失败,zsh:1: command not found: python;本机仅使用 python3 继续验证
YAML 语法 python3 - <<'PY' ... yaml.safe_load(.github/workflows/*.yml) ... PY 原验证通过;归档旧 arXiv workflow 后需重新验证线上 .github/workflows/ 剩余 5 个 YAML
旧脚本引用 python3 - <<'PY' ... scan python arxiv.py/conf.py/update.py/crawler.py ... PY 通过:旧脚本已归档到 legacy/,当前仅保留 .github/workflows/push_conf_daily.yml -> python legacy/conf.py 的兼容调用
输出路径 python3 - <<'PY' ... check paperBotV2/... output/data paths ... PY 通过,paperBotV2/arxiv_daily/output、paperBotV2/industry_practice/output、paperBotV2/conf_summary/data/papers 均存在引用,README 未回退到顶层 papers/ 链接
依赖准备 python3 -m pip install -r requirements.txt 通过,按 requirements.txt 安装到用户 site-packages;pip 提示脚本目录不在 PATH,不影响本次 Python 模块验证
Python 编译 python3 -m py_compile paperBotV2/arxiv_daily/arxiv.py paperBotV2/arxiv_daily/arxiv_feishu_msg.py paperBotV2/arxiv_daily/generate_arxiv_html.py paperBotV2/industry_practice/maintain.py paperBotV2/conf_summary/update_from_issue.py paperBotV2/conf_summary/update_readme_papers.py paperBotV2/conf_summary/convert_to_md.py 通过,无语法错误
Python 导入 python3 - <<'PY' ... importlib.import_module(...) ... PY 通过,paperBotV2.arxiv_daily.arxiv、arxiv_feishu_msg、generate_arxiv_html、industry_practice.maintain、conf_summary.update_readme_papers 均可导入
入口帮助与空密钥分支 python3 paperBotV2/industry_practice/maintain.py --help && python3 paperBotV2/conf_summary/update_from_issue.py --help && python3 - <<'PY' ... call_deepseek_api('', api_key=''); send_papers_to_feishu([], feishu_urls=[]) ... PY 通过,两个 CLI 帮助可运行;空 API key 返回错误提示且不请求 DeepSeek,空 webhook 列表打印跳过发送

残余风险:

  • push_conf_daily.yml 仍保留对 legacy/conf.py 的兼容调用,虽然后续 Markdown/README 已转向 paperBotV2/conf_summary,但日推入口仍可能写入顶层会议中间数据。
  • 本次未真实运行 GitHub Actions、Pages 发布、arXiv 抓取、DeepSeek 调用或飞书 webhook,仅覆盖静态和最小化本地分支。
  • 本地为 Python 3.9,workflow 配置为 Python 3.8;依赖安装和导入在本机通过,但仍建议在 CI 的 Python 3.8 环境复核。
  • 导入时出现 urllib3 关于 LibreSSL 的 NotOpenSSLWarning,未阻断验证,但线上运行环境如升级 urllib3/OpenSSL 仍需关注。
  • paperBotV2/conf_summary/convert_to_md.py 含顶层文件读取/写入逻辑,本次仅做 py_compile,未在真实 data/results.json 输入上执行转换。

Legacy 目录归档调整记录

按“冻结旧脚本不用改动源文件,直接放进 legacy/ 文件夹”的要求,已撤销脚本头部 LEGACY NOTICE 方案,改为将 8 个旧脚本以 HEAD 中原始内容归档到 legacy/:arxiv.py、conf.py、crawler.py、citer.py、render.py、update.py、maintain.py、translate.py。顶层同名脚本已移除,push_conf_daily.yml 的兼容调用改为 python legacy/conf.py。

补充验证结果:missing_legacy=[]、still_top=[]、legacy_notice=[];7 个 workflow YAML 均可解析;legacy/conf.py、legacy/translate.py、paperBotV2/conf_summary/update_from_issue.py 均通过 py_compile。

Legacy Workflow 归档调整记录

按“已有 arxiv_daily_full.yml,其他 arXiv workflow 也变成 legacy”的要求,已将 .github/workflows/push_arxiv_daily.yml 与 .github/workflows/push_arxiv_daily_cl.yml 移动到 legacy/workflows/。线上 .github/workflows/ 中当前仅保留两个 arXiv 相关 workflow:arxiv_daily_full.yml 和 arxiv_feishu_msg.yml。

补充验证结果:active_arxiv_workflows=['arxiv_daily_full.yml', 'arxiv_feishu_msg.yml'];legacy_workflows=['push_arxiv_daily.yml', 'push_arxiv_daily_cl.yml'];线上 5 个 workflow YAML 与 legacy 下 2 个归档 YAML 均可解析。

全量命令复测记录

按“所有改动都测试跑一次,包括之前老的 YAML 命令”的要求,已完成无线上副作用复测:

  • 当前 .github/workflows/ 下 5 个 workflow 和 legacy/workflows/ 下 2 个归档 workflow 均通过 YAML 解析。
  • 所有项目 Python 脚本均通过 py_compile,共 22 个脚本。
  • python -m paperBotV2.arxiv_daily.arxiv 使用 MAX_PAPERS=0、空 DEEPSEEK_API_KEY、空 FEISHU_URL 完成 smoke test;未写入新 JSON。
  • paperBotV2/arxiv_daily/generate_arxiv_html.py 可执行;测试生成的 HTML 时间戳副作用已恢复。
  • paperBotV2/arxiv_daily/arxiv_feishu_msg.py 在无 webhook 且最新数据非当天时正确退出,未发送飞书。
  • paperBotV2/conf_summary/conf_daily.py 使用临时 results JSON 和 DRY_RUN=true 通过,不请求 CONF_URL、不写生产数据、不发送飞书。
  • paperBotV2/conf_summary/convert_to_md.py 使用临时有效 results JSON 通过,并生成测试 Markdown。
  • paperBotV2/conf_summary/update_from_issue.py --help 通过。
  • paperBotV2/industry_practice/maintain.py 的 issue parser 通过,generate_industry_html.py 可执行;测试生成的 HTML 时间戳副作用已恢复。
  • git diff --check 通过,GetDiagnostics 无诊断问题。

本机环境没有 git-lfs,因此 paperBotV2/conf_summary/data/results.json 在本地仍是 LFS pointer,不能直接对真实大文件运行 convert_to_md.py。已在所有 active workflow 的 actions/checkout 中设置 lfs: true,确保 GitHub Actions 环境拉取真实 LFS 内容后再执行会议链路。

后续实施建议

后续优先处理 push_conf_daily.yml 对 legacy/conf.py 的兼容依赖,因为它仍可能写入顶层会议数据。旧 arXiv 手动 workflow 已归档,update_confs.yml 已转向 paperBotV2,下一阶段应补齐真实 CI 验证记录,再归档旧数据,避免在自动化入口尚未完全替换前破坏回滚能力。

每次迁移只改一个自动化入口,并在 PR 中附上运行日志、关键产物 diff 和 README 链接检查结果。若需要保留人工兼容入口,建议将旧脚本改成薄 wrapper,只打印迁移提示并转调 paperBotV2,而不是继续维护两套逻辑。


--- METRICS ---