[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-maciejkula--spotlight":3,"tool-maciejkula--spotlight":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159267,2,"2026-04-17T11:29:14",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":75,"owner_twitter":78,"owner_website":75,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":32,"env_os":93,"env_gpu":94,"env_ram":95,"env_deps":96,"category_tags":100,"github_topics":101,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":108,"updated_at":109,"faqs":110,"releases":141},8541,"maciejkula\u002Fspotlight","spotlight","Deep recommender models using PyTorch.","Spotlight 是一个基于 PyTorch 构建的开源推荐系统库，旨在帮助开发者和研究人员快速探索与原型化各类推荐模型。它主要解决了传统推荐算法在应对复杂用户行为序列时建模困难、实验迭代慢的问题，让从基础的矩阵分解到前沿的深度序列预测都能轻松实现。\n\n无论是需要处理显式评分数据，还是基于隐式反馈（如点击、浏览）进行排序学习，Spotlight 都提供了丰富的内置模块。其独特亮点在于不仅支持经典的点成对和配对排名损失函数，还集成了多种先进的深度序列模型架构，包括类似 YouTube 推荐的池化模型、基于 LSTM 的会话推荐模型，以及借鉴 WaveNet 思想的因果卷积模型。此外，它还内置了 MovieLens 等常用数据集的加载工具及全面的评估指标，大幅降低了数据预处理门槛。\n\n这款工具非常适合从事推荐算法研究的学者、希望快速验证新想法的机器学习工程师，以及需要构建高性能推荐系统的后端开发者。通过简洁易用的 API，Spotlight 让用户能专注于模型创新而非底层代码实现，是连接学术研究与工业落地的得力助手。",".. image:: docs\u002F_static\u002Fimg\u002Fspotlight.png\n\n---------------------------------------------------------------------\n\n.. inclusion-marker-do-not-remove\n\n.. image:: https:\u002F\u002Ftravis-ci.org\u002Fmaciejkula\u002Fspotlight.svg?branch=master\n   :target: https:\u002F\u002Ftravis-ci.org\u002Fmaciejkula\u002Fspotlight\n\n.. image:: https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002Fjq5e76a7a08ra2ji\u002Fbranch\u002Fmaster?svg=true\n   :target: https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Fmaciejkula\u002Fspotlight\u002Fbranch\u002Fmaster\n\n.. image:: https:\u002F\u002Fbadges.gitter.im\u002FgitterHQ\u002Fgitter.png\n   :target: https:\u002F\u002Fgitter.im\u002Fspotlight-recommendations\u002FLobby\n\n.. image:: https:\u002F\u002Fanaconda.org\u002Fmaciejkula\u002Fspotlight\u002Fbadges\u002Fversion.svg\n   :target: https:\u002F\u002Fanaconda.org\u002Fmaciejkula\u002Fspotlight\n\n.. image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-brightgreen.svg?style=flat\n   :target: https:\u002F\u002Fmaciejkula.github.io\u002Fspotlight\u002F\n\n.. image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fprogress%20tracker-trello-brightgreen.svg\n   :target: https:\u002F\u002Ftrello.com\u002Fb\u002FG5iFgS1W\u002Fspotlight\n\n|\n\nSpotlight uses `PyTorch \u003Chttp:\u002F\u002Fpytorch.org\u002F>`_ to build both deep and shallow\nrecommender models. By providing both a slew of building blocks for loss functions\n(various pointwise and pairwise ranking losses), representations (shallow\nfactorization representations, deep sequence models), and utilities for fetching\n(or generating) recommendation datasets, it aims to be a tool for rapid exploration\nand prototyping of new recommender models.\n\nSee the full `documentation \u003Chttps:\u002F\u002Fmaciejkula.github.io\u002Fspotlight\u002F>`_ for details.\n\nInstallation\n~~~~~~~~~~~~\n\n.. code-block:: python\n\n   conda install -c maciejkula -c pytorch spotlight\n\n\nUsage\n~~~~~\n\nFactorization models\n====================\n\nTo fit an explicit feedback model on the MovieLens dataset:\n\n.. code-block:: python\n\n    from spotlight.cross_validation import random_train_test_split\n    from spotlight.datasets.movielens import get_movielens_dataset\n    from spotlight.evaluation import rmse_score\n    from spotlight.factorization.explicit import ExplicitFactorizationModel\n\n    dataset = get_movielens_dataset(variant='100K')\n\n    train, test = random_train_test_split(dataset)\n\n    model = ExplicitFactorizationModel(n_iter=1)\n    model.fit(train)\n\n    rmse = rmse_score(model, test)\n\n\n\nTo fit an implicit ranking model with a BPR pairwise loss on the MovieLens dataset:\n\n.. code-block:: python\n\n    from spotlight.cross_validation import random_train_test_split\n    from spotlight.datasets.movielens import get_movielens_dataset\n    from spotlight.evaluation import mrr_score\n    from spotlight.factorization.implicit import ImplicitFactorizationModel\n\n    dataset = get_movielens_dataset(variant='100K')\n\n    train, test = random_train_test_split(dataset)\n\n    model = ImplicitFactorizationModel(n_iter=3,\n                                       loss='bpr')\n    model.fit(train)\n\n    mrr = mrr_score(model, test)\n\n\n\n\nSequential models\n=================\n\nRecommendations can be seen as a sequence prediction task: given the items a user\nhas interacted with in the past, what will be the next item they will interact\nwith? Spotlight provides a range of models and utilities for fitting next item\nrecommendation models, including\n\n- pooling models, as in `YouTube recommendations \u003Chttps:\u002F\u002Fpdfs.semanticscholar.org\u002Fbcdb\u002F4da4a05f0e7bc17d1600f3a91a338cd7ffd3.pdf>`_,\n- LSTM models, as in `Session-based recommendations... \u003Chttps:\u002F\u002Farxiv.org\u002Fpdf\u002F1511.06939>`_, and\n- causal convolution models, as in `WaveNet \u003Chttps:\u002F\u002Farxiv.org\u002Fpdf\u002F1609.03499>`_.\n\n.. code-block:: python\n\n    from spotlight.cross_validation import user_based_train_test_split\n    from spotlight.datasets.synthetic import generate_sequential\n    from spotlight.evaluation import sequence_mrr_score\n    from spotlight.sequence.implicit import ImplicitSequenceModel\n\n    dataset = generate_sequential(num_users=100,\n                                  num_items=1000,\n                                  num_interactions=10000,\n                                  concentration_parameter=0.01,\n                                  order=3)\n\n    train, test = user_based_train_test_split(dataset)\n\n    train = train.to_sequence()\n    test = test.to_sequence()\n\n    model = ImplicitSequenceModel(n_iter=3,\n                                  representation='cnn',\n                                  loss='bpr')\n    model.fit(train)\n\n    mrr = sequence_mrr_score(model, test)\n\n\n  \n\nDatasets\n========\n\nSpotlight offers a slew of popular datasets, including Movielens 100K, 1M, 10M, and 20M.\nIt also incorporates utilities for creating synthetic datasets. For example, `generate_sequential`\ngenerates a Markov-chain-derived interaction dataset, where the next item a user chooses is\na function of their previous interactions:\n\n.. code-block:: python\n\n    from spotlight.datasets.synthetic import generate_sequential\n\n    # Concentration parameter governs how predictable the chain is;\n    # order determins the order of the Markov chain.\n    dataset = generate_sequential(num_users=100,\n                                  num_items=1000,\n                                  num_interactions=10000,\n                                  concentration_parameter=0.01,\n                                  order=3)\n\n\n\n\nExamples\n~~~~~~~~\n\n1. `Rating prediction on the Movielens dataset \u003Chttps:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Ftree\u002Fmaster\u002Fexamples\u002Fmovielens_explicit>`_.\n2. `Using causal convolutions for sequence recommendations \u003Chttps:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Ftree\u002Fmaster\u002Fexamples\u002Fmovielens_sequence>`_.\n3. `Bloom embedding layers \u003Chttps:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Ftree\u002Fmaster\u002Fexamples\u002Fbloom_embeddings>`_.\n\n\nHow to cite\n~~~~~~~~~~~\n\nPlease cite Spotlight if it helps your research. You can use the following BibTeX entry:\n\n.. code-block::\n\n   @misc{kula2017spotlight,\n     title={Spotlight},\n     author={Kula, Maciej},\n     year={2017},\n     publisher={GitHub},\n     howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight}},\n   }\n\n\nContributing\n~~~~~~~~~~~~\n\nSpotlight is meant to be extensible: pull requests are welcome. Development progress is tracked on `Trello \u003Chttps:\u002F\u002Ftrello.com\u002Fb\u002FG5iFgS1W\u002Fspotlight>`_: have a look at the outstanding tickets to get an idea of what would be a useful contribution.\n\nWe accept implementations of new recommendation models into the Spotlight model zoo: if you've just published a paper describing your new model, or have an implementation of a model from the literature, make a PR!\n",".. image:: docs\u002F_static\u002Fimg\u002Fspotlight.png\n\n---------------------------------------------------------------------\n\n.. inclusion-marker-do-not-remove\n\n.. image:: https:\u002F\u002Ftravis-ci.org\u002Fmaciejkula\u002Fspotlight.svg?branch=master\n   :target: https:\u002F\u002Ftravis-ci.org\u002Fmaciejkula\u002Fspotlight\n\n.. image:: https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002Fjq5e76a7a08ra2ji\u002Fbranch\u002Fmaster?svg=true\n   :target: https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Fmaciejkula\u002Fspotlight\u002Fbranch\u002Fmaster\n\n.. image:: https:\u002F\u002Fbadges.gitter.im\u002FgitterHQ\u002Fgitter.png\n   :target: https:\u002F\u002Fgitter.im\u002Fspotlight-recommendations\u002FLobby\n\n.. image:: https:\u002F\u002Fanaconda.org\u002Fmaciejkula\u002Fspotlight\u002Fbadges\u002Fversion.svg\n   :target: https:\u002F\u002Fanaconda.org\u002Fmaciejkula\u002Fspotlight\n\n.. image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-brightgreen.svg?style=flat\n   :target: https:\u002F\u002Fmaciejkula.github.io\u002Fspotlight\u002F\n\n.. image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fprogress%20tracker-trello-brightgreen.svg\n   :target: https:\u002F\u002Ftrello.com\u002Fb\u002FG5iFgS1W\u002Fspotlight\n\n|\n\nSpotlight 使用 `PyTorch \u003Chttp:\u002F\u002Fpytorch.org\u002F>`_ 来构建深度和浅层的推荐模型。它提供了丰富的损失函数构建模块（各种点对点和成对排序损失）、表示方法（浅层因子分解表示、深度序列模型）以及用于获取（或生成）推荐数据集的工具，旨在成为快速探索和原型化新推荐模型的工具。\n\n有关详细信息，请参阅完整的 `文档 \u003Chttps:\u002F\u002Fmaciejkula.github.io\u002Fspotlight\u002F>`_。\n\n安装\n~~~~\n\n.. code-block:: python\n\n   conda install -c maciejkula -c pytorch spotlight\n\n\n使用\n~~~~\n\n因子分解模型\n============\n\n要在 MovieLens 数据集中拟合显式反馈模型：\n\n.. code-block:: python\n\n    from spotlight.cross_validation import random_train_test_split\n    from spotlight.datasets.movielens import get_movielens_dataset\n    from spotlight.evaluation import rmse_score\n    from spotlight.factorization.explicit import ExplicitFactorizationModel\n\n    dataset = get_movielens_dataset(variant='100K')\n\n    train, test = random_train_test_split(dataset)\n\n    model = ExplicitFactorizationModel(n_iter=1)\n    model.fit(train)\n\n    rmse = rmse_score(model, test)\n\n\n\n要在 MovieLens 数据集中拟合带有 BPR 成对损失的隐式排序模型：\n\n.. code-block:: python\n\n    from spotlight.cross_validation import random_train_test_split\n    from spotlight.datasets.movielens import get_movielens_dataset\n    from spotlight.evaluation import mrr_score\n    from spotlight.factorization.implicit import ImplicitFactorizationModel\n\n    dataset = get_movielens_dataset(variant='100K')\n\n    train, test = random_train_test_split(dataset)\n\n    model = ImplicitFactorizationModel(n_iter=3,\n                                       loss='bpr')\n    model.fit(train)\n\n    mrr = mrr_score(model, test)\n\n\n\n\n序列模型\n========\n\n推荐可以被视为一个序列预测任务：给定用户过去交互过的物品，他们接下来会与哪个物品交互呢？Spotlight 提供了一系列模型和工具来拟合下一个物品推荐模型，包括：\n\n- 池化模型，如 `YouTube 推荐 \u003Chttps:\u002F\u002Fpdfs.semanticscholar.org\u002Fbcdb\u002F4da4a05f0e7bc17d1600f3a91a338cd7ffd3.pdf>`_，\n- LSTM 模型，如 `基于会话的推荐... \u003Chttps:\u002F\u002Farxiv.org\u002Fpdf\u002F1511.06939>`_，以及\n- 因果卷积模型，如 `WaveNet \u003Chttps:\u002F\u002Farxiv.org\u002Fpdf\u002F1609.03499>`_。\n\n.. code-block:: python\n\n    from spotlight.cross_validation import user_based_train_test_split\n    from spotlight.datasets.synthetic import generate_sequential\n    from spotlight.evaluation import sequence_mrr_score\n    from spotlight.sequence.implicit import ImplicitSequenceModel\n\n    dataset = generate_sequential(num_users=100,\n                                  num_items=1000,\n                                  num_interactions=10000,\n                                  concentration_parameter=0.01,\n                                  order=3)\n\n    train, test = user_based_train_test_split(dataset)\n\n    train = train.to_sequence()\n    test = test.to_sequence()\n\n    model = ImplicitSequenceModel(n_iter=3,\n                                  representation='cnn',\n                                  loss='bpr')\n    model.fit(train)\n\n    mrr = sequence_mrr_score(model, test)\n\n\n  \n\n数据集\n========\n\nSpotlight 提供了许多流行的数据集，包括 Movielens 100K、1M、10M 和 20M。它还包含用于创建合成数据集的工具。例如，`generate_sequential` 会生成一个基于马尔可夫链的交互数据集，其中用户选择的下一个物品是其先前交互的函数：\n\n.. code-block:: python\n\n    from spotlight.datasets.synthetic import generate_sequential\n\n    # 浓度参数控制链的可预测性；\n    # 阶数决定马尔可夫链的阶数。\n    dataset = generate_sequential(num_users=100,\n                                  num_items=1000,\n                                  num_interactions=10000,\n                                  concentration_parameter=0.01,\n                                  order=3)\n\n\n\n\n示例\n~~~~\n\n1. `在 MovieLens 数据集上进行评分预测 \u003Chttps:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Ftree\u002Fmaster\u002Fexamples\u002Fmovielens_explicit>`_。\n2. `使用因果卷积进行序列推荐 \u003Chttps:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Ftree\u002Fmaster\u002Fexamples\u002Fmovielens_sequence>`_。\n3. `Bloom 嵌入层 \u003Chttps:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Ftree\u002Fmaster\u002Fexamples\u002Fbloom_embeddings>`_。\n\n\n如何引用\n~~~~~~~~\n\n如果您在研究中使用了 Spotlight，请予以引用。您可以使用以下 BibTeX 条目：\n\n.. code-block::\n\n   @misc{kula2017spotlight,\n     title={Spotlight},\n     author={Kula, Maciej},\n     year={2017},\n     publisher={GitHub},\n     howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight}},\n   }\n\n\n贡献\n~~~~\n\nSpotlight 的设计目标是可扩展的：欢迎提交 Pull Request。开发进度在 `Trello \u003Chttps:\u002F\u002Ftrello.com\u002Fb\u002FG5iFgS1W\u002Fspotlight>`_ 上跟踪：查看未完成的任务，以了解哪些贡献是有价值的。\n\n我们接受将新的推荐模型实现到 Spotlight 模型库中：如果您刚刚发表了一篇描述您新模型的论文，或者拥有文献中某个模型的实现，请提交 PR！","# Spotlight 快速上手指南\n\nSpotlight 是一个基于 **PyTorch** 构建的推荐系统开源库，旨在帮助用户快速探索和原型化深度及浅层推荐模型。它提供了丰富的损失函数、表示层（如矩阵分解、序列模型）以及数据集工具。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：推荐 Python 3.6+\n*   **核心依赖**：\n    *   [PyTorch](http:\u002F\u002Fpytorch.org\u002F) (必须预先安装或随包安装)\n    *   `conda` 包管理器（推荐使用 Anaconda 或 Miniconda）\n\n> **注意**：由于该库主要通过 `conda` 分发，建议优先使用 Conda 环境进行管理。目前官方未提供专门的国内镜像源，若下载速度较慢，可尝试配置通用的 Conda 国内镜像（如清华源或中科大源）加速通道解析。\n\n## 安装步骤\n\n使用 `conda` 进行一键安装是最简便的方式。请在终端或命令行中执行以下命令：\n\n```bash\nconda install -c maciejkula -c pytorch spotlight\n```\n\n该命令会自动从 `maciejkula` 和 `pytorch` 频道获取最新版本及其依赖项。\n\n## 基本使用\n\nSpotlight 支持多种建模场景，以下展示两个最核心的用法：**显式反馈评分预测** 和 **隐式反馈排序**。\n\n### 1. 显式反馈模型 (Explicit Feedback)\n\n适用于预测用户对物品的具体评分（如 MovieLens 数据集）。以下示例演示如何加载数据、划分训练集\u002F测试集并训练一个矩阵分解模型。\n\n```python\nfrom spotlight.cross_validation import random_train_test_split\nfrom spotlight.datasets.movielens import get_movielens_dataset\nfrom spotlight.evaluation import rmse_score\nfrom spotlight.factorization.explicit import ExplicitFactorizationModel\n\n# 1. 加载 MovieLens 100K 数据集\ndataset = get_movielens_dataset(variant='100K')\n\n# 2. 随机划分训练集和测试集\ntrain, test = random_train_test_split(dataset)\n\n# 3. 初始化并训练模型 (迭代 1 次作为演示)\nmodel = ExplicitFactorizationModel(n_iter=1)\nmodel.fit(train)\n\n# 4. 评估模型 (计算 RMSE)\nrmse = rmse_score(model, test)\nprint(f\"RMSE: {rmse}\")\n```\n\n### 2. 隐式反馈模型 (Implicit Feedback)\n\n适用于只有交互行为（如点击、购买）而无具体评分的场景。以下示例使用 BPR (Bayesian Personalized Ranking) 成对损失函数进行训练。\n\n```python\nfrom spotlight.cross_validation import random_train_test_split\nfrom spotlight.datasets.movielens import get_movielens_dataset\nfrom spotlight.evaluation import mrr_score\nfrom spotlight.factorization.implicit import ImplicitFactorizationModel\n\n# 1. 加载数据集\ndataset = get_movielens_dataset(variant='100K')\n\n# 2. 划分数据\ntrain, test = random_train_test_split(dataset)\n\n# 3. 初始化隐式模型，指定使用 'bpr' 损失函数\nmodel = ImplicitFactorizationModel(n_iter=3,\n                                   loss='bpr')\nmodel.fit(train)\n\n# 4. 评估模型 (计算 MRR)\nmrr = mrr_score(model, test)\nprint(f\"MRR: {mrr}\")\n```\n\n### 3. 序列推荐模型 (Sequential Models)\n\nSpotlight 还支持将推荐视为序列预测任务（预测用户下一个交互物品），支持 LSTM、CNN (Causal Convolution) 等架构。\n\n```python\nfrom spotlight.cross_validation import user_based_train_test_split\nfrom spotlight.datasets.synthetic import generate_sequential\nfrom spotlight.evaluation import sequence_mrr_score\nfrom spotlight.sequence.implicit import ImplicitSequenceModel\n\n# 1. 生成合成序列数据\ndataset = generate_sequential(num_users=100,\n                              num_items=1000,\n                              num_interactions=10000,\n                              concentration_parameter=0.01,\n                              order=3)\n\n# 2. 基于用户划分数据\ntrain, test = user_based_train_test_split(dataset)\n\n# 3. 转换为序列格式\ntrain = train.to_sequence()\ntest = test.to_sequence()\n\n# 4. 训练序列模型 (使用 CNN 表示层和 BPR 损失)\nmodel = ImplicitSequenceModel(n_iter=3,\n                              representation='cnn',\n                              loss='bpr')\nmodel.fit(train)\n\n# 5. 评估\nmrr = sequence_mrr_score(model, test)\nprint(f\"Sequence MRR: {mrr}\")\n```\n\n更多高级用法、自定义模型结构及完整 API 文档，请访问 [Spotlight 官方文档](https:\u002F\u002Fmaciejkula.github.io\u002Fspotlight\u002F)。","某电商初创公司的算法团队正急需为新款视频流媒体平台构建一个能理解用户观看顺序的个性化推荐系统。\n\n### 没有 spotlight 时\n- **模型复现困难**：想要尝试 YouTube 的池化模型或基于 LSTM 的会话推荐，需从零编写复杂的 PyTorch 序列建模代码，耗时数周且易出错。\n- **数据预处理繁琐**：缺乏内置工具将原始用户行为日志转化为适合序列训练的格式，工程师需手动编写大量脚本处理时间步和对齐问题。\n- **评估指标缺失**：难以快速计算 MRR（平均倒数排名）等针对序列推荐的关键指标，导致模型迭代效果无法量化验证。\n- **实验周期漫长**：每次调整损失函数或网络结构都涉及底层代码大改，严重拖慢了从想法到原型的验证速度。\n\n### 使用 spotlight 后\n- **开箱即用模型**：直接调用 `ImplicitSequenceModel` 即可加载 LSTM 或因果卷积架构，几分钟内完成基线模型搭建。\n- **自动化数据流水线**：利用 `generate_sequential` 等工具快速生成或转换数据集，自动处理用户交互序列的切分与填充。\n- **内置专业评估**：通过 `sequence_mrr_score` 一键获取序列预测精度，实时监控模型在“下一个物品预测”任务上的表现。\n- **敏捷原型迭代**：借助模块化的损失函数和表示层组件，团队能在一天内对比多种前沿论文方案，迅速锁定最优策略。\n\nspotlight 将原本需要数周的深度推荐模型研发周期压缩至数小时，让团队能专注于业务逻辑创新而非底层框架重复造轮子。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmaciejkula_spotlight_4f17dff0.png","maciejkula","Maciej Kula","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmaciejkula_695bb07f.jpg",null,"Google DeepMind","San Francisco Bay Area","Maciej_Kula","https:\u002F\u002Fgithub.com\u002Fmaciejkula",[81,85],{"name":82,"color":83,"percentage":84},"Python","#3572A5",97.7,{"name":86,"color":87,"percentage":88},"Shell","#89e051",2.3,3043,424,"2026-04-13T02:39:04","MIT","Linux, macOS, Windows","未说明（依赖 PyTorch，支持 CPU 或 GPU 运行）","未说明",{"notes":97,"python":95,"dependencies":98},"该工具基于 PyTorch 构建，推荐使用 conda 进行安装（命令：conda install -c maciejkula -c pytorch spotlight）。README 中未明确指定具体的 Python 版本、GPU 型号或内存最低要求，具体硬件需求取决于所选模型（如浅层分解模型或深度序列模型）及数据集规模。项目提供 Travis CI (Linux\u002FmacOS) 和 AppVeyor (Windows) 的构建状态徽章，表明支持主流操作系统。",[99,64],"pytorch",[14],[102,103,104,105,106,107,99],"recommender-system","deep-learning","learning-to-rank","python","machine-learning","matrix-factorization","2026-03-27T02:49:30.150509","2026-04-18T00:47:17.739877",[111,116,121,126,131,136],{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},38258,"使用 conda 安装 Spotlight 时遇到 'PackageNotFoundError' 或依赖缺失错误怎么办？","这通常是因为 conda 版本过旧或通道配置问题。尝试在激活任何环境之前，在全局范围内运行 `conda update conda` 更新 conda 本身，这通常能解决依赖解析问题。如果仍然失败，可以考虑使用 pip 进行安装。","https:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Fissues\u002F106",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},38259,"无法通过 conda 安装时，如何使用 pip 安装 Spotlight？","如果环境中无法使用 conda，可以直接从 GitHub 源码安装。请使用以下命令：`pip install git+https:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight.git@master#egg=spotlight`。你也可以将此命令添加到项目的 `requirements.txt` 文件中以实现自动化安装。","https:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Fissues\u002F130",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},38260,"运行模型时出现 'Segmentation Fault'（段错误），特别是在导入 Pandas 且使用稀疏嵌入时，如何解决？","这是一个已知问题，通常由 PyTorch 早期版本与 Pandas 导入时的线程机制冲突引起（特别是当 `sparse=True` 时）。解决方案是暂时避免在代码顶部导入 Pandas，或者升级 PyTorch 到包含修复补丁的版本（参考 PyTorch PR #2581）。","https:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Fissues\u002F42",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},38261,"如何处理具有不同权重的分级隐式反馈数据（例如：购买权重 > 点击权重）？","Spotlight 目前支持通过重复训练集中的样本来模拟权重（即权重越大的交互，在训练集中出现的次数越多），这在效果上等同于加权，但计算效率较低。另一种方法是将其视为评分预测问题，赋予伪评分。社区建议未来可引入类似 `c_ui = 1 + α * r_ui` 的置信度加权公式。","https:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Fissues\u002F63",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},38262,"加载 MovieLens 数据集时出现下载链接失效或 URL 不存在的错误怎么办？","这通常是由于示例代码中引用的数据集发布地址已变更或临时不可用。如果遇到 `get_movielens_dataset` 报错，请检查是否有新的 Issue（如 #95）记录了最新的下载源，或者手动下载数据集并修改代码中的路径指向本地文件。","https:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Fissues\u002F43",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},38263,"Spotlight 是否支持混合推荐系统（利用用户或物品元数据）以及冷启动问题？","截至当前版本，Spotlight 主要专注于序列推荐和矩阵分解，尚未像 LightFM 那样原生支持将元数据（metadata）直接嵌入模型来处理冷启动问题。对于强依赖元数据的场景，建议考虑使用 LightFM，或者关注项目后续关于序列模型结合元数据的路线图讨论。","https:\u002F\u002Fgithub.com\u002Fmaciejkula\u002Fspotlight\u002Fissues\u002F79",[142,147,151,155,160,165,169],{"id":143,"version":144,"summary_zh":145,"released_at":146},306415,"v0.1.6","更新至 PyTorch 1.1.0。","2019-09-08T10:19:53",{"id":148,"version":149,"summary_zh":75,"released_at":150},306416,"v0.1.5","2018-05-20T13:32:47",{"id":152,"version":153,"summary_zh":75,"released_at":154},306417,"v0.1.4","2018-02-18T12:14:56",{"id":156,"version":157,"summary_zh":158,"released_at":159},306418,"v0.1.3","v0.1.3 (2017-12-14)\n-------------------------\n\n新增\n\n* Goodbooks 数据集。\n\n修改\n\n* 如果损失变为 NaN 或 0，则抛出 ValueError 异常。\n* 更新以兼容 PyTorch 0.3.0。","2017-12-14T22:03:52",{"id":161,"version":162,"summary_zh":163,"released_at":164},306419,"v0.1.2","# 新增\n\n* `spotlight.layers.BloomEmbedding`: 基于哈希的嵌入层，通过将嵌入索引映射到一个固定的小维度空间来减少所需的参数量，遵循 Serrà, Joan 和 Alexandros Karatzoglou 的研究：“让深度推荐系统更高效：用于稀疏二值输入\u002F输出网络的 Bloom 嵌入”。\n* ``sequence_mrr_score`` 现在接受一个选项，可以将之前已见过的物品排除在评分之外。\n\n# 变更\n\n* `optimizer` 参数现已改为 `optimizer_func`。它接受一个函数，该函数仅需一个参数（模型参数列表），并返回一个 PyTorch 优化器（感谢 Ethan Rosenthal）。\n* 当多次调用 `fit` 方法时，训练将从之前的模型状态继续进行（Ethan Rosenthal）。\n* 已更新以兼容 PyTorch v0.2.0。\n\n# 修复\n\n* 因子分解预测 API 现在按文档说明正常工作。","2017-09-19T07:23:21",{"id":166,"version":167,"summary_zh":75,"released_at":168},306420,"v0.1.1","2017-07-19T22:11:42",{"id":170,"version":171,"summary_zh":75,"released_at":172},306421,"v0.1.0","2017-06-28T21:23:28"]