分类: 未分类

  • 新闻推荐的个性化:长短期用户兴趣如何影响你的阅读体验?

    你是否曾经在新闻网站上看到过你感兴趣的新闻,却发现下一条推荐的新闻与你的兴趣毫无关联?或者,你是否曾经因为一条新闻而对某个话题产生兴趣,却无法找到更多相关内容?

    这正是新闻推荐系统面临的挑战。为了更好地满足用户的个性化需求,新闻推荐系统需要了解用户的兴趣,并根据兴趣推荐相关新闻。然而,用户的兴趣并非一成不变,他们既有长期稳定的偏好,也可能因为特定事件或时间需求而产生短期兴趣。

    传统的新闻推荐方法通常只关注用户的单一兴趣,难以捕捉用户的长短期兴趣变化。 例如,一些方法通过分析用户历史浏览记录来推断用户的兴趣,但这种方法难以区分用户的长期兴趣和短期兴趣。例如,一位用户可能长期关注篮球新闻,但近期可能因为一部电影而对电影相关的新闻产生了兴趣。如果推荐系统只根据历史浏览记录进行推荐,就可能推荐与用户近期兴趣无关的篮球新闻,导致用户体验下降。

    为了解决这个问题,本文介绍了一种新的新闻推荐方法,该方法可以同时学习用户的长短期兴趣,并根据用户的综合兴趣进行推荐。

    长短期用户兴趣:捕捉新闻阅读的多样性

    我们每个人都有自己独特的新闻阅读习惯。有些人长期关注某个特定领域,例如体育、科技或财经。这种长期兴趣反映了用户的稳定偏好,例如一位篮球爱好者可能多年来一直关注NBA新闻。

    另一方面,我们的兴趣也会随着时间而变化。例如,你可能因为一部电影而对电影相关的新闻产生兴趣,或者因为某个突发事件而关注相关报道。这种短期兴趣通常由特定事件或时间需求触发,例如一位用户可能因为观看了电影《波西米亚狂想曲》而对主演拉米·马雷克的新闻产生了兴趣。

    长短期兴趣共同构成了用户的新闻阅读偏好。 为了更好地理解用户的兴趣,我们需要将长短期兴趣区分开来,并分别进行学习。

    LSTUR:长短期用户表示模型

    为了学习用户的长短期兴趣,我们提出了一个新的新闻推荐模型,称为LSTUR(Long- and Short-Term User Representations)。该模型包含两个主要部分:新闻编码器用户编码器

    新闻编码器用于学习新闻的表示,它从新闻标题和主题类别中提取信息,并使用注意力机制来选择重要的词语,从而生成更准确的新闻表示。

    用户编码器则用于学习用户的表示,它包含两个模块:长期用户表示模块(LTUR)短期用户表示模块(STUR)。LTUR通过用户的ID来学习用户的长期兴趣,而STUR则使用循环神经网络(GRU)来学习用户近期浏览新闻的短期兴趣。

    LSTUR模型的两种融合方法

    LSTUR模型提供了两种方法来融合长短期用户表示:

    1. LSTUR-ini: 使用长期用户表示来初始化STUR模型中GRU网络的隐藏状态。
    2. LSTUR-con: 将长期用户表示和短期用户表示连接起来,形成一个统一的用户向量。

    实验结果:LSTUR模型的优越性

    我们在一个真实的新闻数据集上进行了实验,结果表明LSTUR模型显著优于传统的新闻推荐方法,包括基于手工特征工程的模型和基于深度学习的模型。

    实验结果表明,LSTUR模型能够有效地捕捉用户的长短期兴趣,并根据用户的综合兴趣进行推荐。 这说明LSTUR模型能够更好地理解用户的新闻阅读偏好,从而提高新闻推荐的准确性和用户体验。

    未来展望

    LSTUR模型为新闻推荐领域提供了一个新的方向,它可以帮助我们更好地理解用户的兴趣,并提供更个性化的新闻推荐服务。未来,我们可以进一步研究以下问题:

    • 如何更有效地学习用户的长短期兴趣? 例如,我们可以利用用户在不同平台上的行为数据来更全面地了解用户的兴趣。
    • 如何将用户的兴趣与新闻内容进行更精准的匹配? 例如,我们可以利用知识图谱来构建新闻和用户的语义关系,从而进行更精准的推荐。
    • 如何提高新闻推荐系统的可解释性? 例如,我们可以通过可视化技术来展示推荐结果背后的逻辑,帮助用户更好地理解推荐系统的决策过程。

    参考文献

    • An, M., Wu, F., Wu, C., Zhang, K., Liu, Z., & Xie, X. (2019). Neural news recommendation with long- and short-term user representations. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers) (pp. 1033-1043).
    • Okura, S., Tagami, Y., Ono, S., & Tajima, A. (2017). Embedding-based news recommendation for millions of users. In Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 1933-1942).

    希望这篇文章能够帮助你更好地理解新闻推荐系统的工作原理,以及用户长短期兴趣对新闻推荐的影响。

  • Recommenders 库简介及使用指南

    Recommenders 是一个旨在帮助研究人员、开发者和爱好者快速构建和部署各种推荐系统的项目。该项目隶属于 Linux Foundation of AI and Data,提供了丰富的 Jupyter Notebook 示例和最佳实践,涵盖了推荐系统的五个关键任务:数据准备、模型构建、算法评估、模型选择与优化,以及模型的生产化部署。

    最新动态(2024年5月)

    我们发布了新版本 Recommenders 1.2.0。此次更新包含大量改进,如对 Python 3.8 至 3.11 的全面测试(大约 1800 个测试)、多种算法性能的提升、笔记本的审查和许多其他改进。

    项目简介

    Recommenders 项目提供了构建推荐系统的示例和最佳实践,主要通过 Jupyter Notebooks 详细展示了以下五个关键任务:

    1. 数据准备:为每个推荐算法准备和加载数据。
    2. 模型构建:使用多种经典和深度学习推荐算法构建模型,如交替最小二乘法(ALS)或极限深度因子分解机(xDeepFM)。
    3. 算法评估:使用离线指标评估算法。
    4. 模型选择与优化:调优和优化推荐模型的超参数。
    5. 模型生产化部署:在 Azure 上将模型部署到生产环境。

    此外,Recommenders 库还提供了多种实用工具,支持常见任务如加载数据集、评估模型输出和分割训练/测试数据。库中还包含了一些最先进的算法实现,供学习和在实际应用中定制。

    快速开始

    我们推荐使用 conda 进行环境管理,并使用 VS Code 进行开发。以下是在 Linux/WSL 上安装 Recommenders 包并运行示例笔记本的步骤:

    # 1. 安装 gcc(如果尚未安装)。在 Ubuntu 上,可以使用以下命令:
    # sudo apt install gcc
    
    # 2. 创建并激活新的 conda 环境
    conda create -n <environment_name> python=3.9
    conda activate <environment_name>
    
    # 3. 安装 Recommenders 核心包。它可以运行所有 CPU 笔记本。
    pip install recommenders
    
    # 4. 创建一个 Jupyter 内核
    python -m ipykernel install --user --name <environment_name> --display-name <kernel_name>
    
    # 5. 在 VSCode 中或使用命令行克隆此仓库:
    git clone https://github.com/recommenders-team/recommenders.git
    
    # 6. 在 VSCode 中:
    #   a. 打开一个笔记本,例如 examples/00_quick_start/sar_movielens.ipynb;
    #   b. 选择 Jupyter 内核 <kernel_name>;
    #   c. 运行笔记本。

    关于在其他平台(如 Windows 和 macOS)上的安装和不同配置(如 GPU、Spark 和实验特性)的更多信息,请参阅 Setup Guide

    除了核心包,Recommenders 还提供了几个额外的包,包括:

    • [gpu]:用于运行 GPU 模型。
    • [spark]:用于运行 Spark 模型。
    • [dev]:用于仓库开发。
    • [all]:包含 [gpu][spark][dev]
    • [experimental]:包含未经过充分测试和/或可能需要额外安装步骤的模型。

    支持的算法

    Recommenders 库目前支持多种推荐算法,以下是部分算法的简介及其示例:

    算法类型描述示例
    交替最小二乘法 (ALS)协同过滤针对显式或隐式反馈的大规模数据集的矩阵分解算法,适用于 PySpark 环境。快速开始 / 深入探讨
    ——-——————
    注意力异步奇异值分解 (A2SVD)协同过滤基于序列的算法,使用注意力机制捕捉用户的长短期偏好,适用于 CPU/GPU 环境。快速开始
    Cornac/Bayesian Personalized Ranking (BPR)协同过滤用于预测隐式反馈的矩阵分解算法,适用于 CPU 环境。深入探讨
    Cornac/Bilateral Variational Autoencoder (BiVAE)协同过滤用于二元数据(如用户-物品交互)的生成模型,适用于 CPU/GPU 环境。深入探讨
    卷积序列嵌入推荐 (Caser)协同过滤基于卷积的算法,旨在捕捉用户的总体偏好和序列模式,适用于 CPU/GPU 环境。快速开始
    深度知识感知网络 (DKN)内容过滤结合知识图谱和文章嵌入的深度学习算法,用于新闻或文章推荐,适用于 CPU/GPU 环境。快速开始 / 深入探讨
    极限深度因子分解机 (xDeepFM)协同过滤用于隐式和显式反馈的深度学习算法,适用于 CPU/GPU 环境。快速开始
    FastAI 嵌入点偏差 (FAST)协同过滤通用算法,使用用户和物品的嵌入和偏差,适用于 CPU/GPU 环境。快速开始
    LightFM/因子分解机协同过滤适用于隐式和显式反馈的因子分解机算法,适用于 CPU 环境。快速开始
    LightGBM/梯度提升树内容过滤适用于内容过滤问题的梯度提升树算法,具有快速训练和低内存使用的特点,适用于 CPU/GPU/PySpark 环境。CPU 快速开始 / PySpark 深入探讨
    LightGCN协同过滤简化的图卷积网络设计,用于预测隐式反馈,适用于 CPU/GPU 环境。深入探讨
    GeoIMC协同过滤利用黎曼共轭梯度优化的几何方法进行矩阵补全算法,适用于 CPU 环境。快速开始
    GRU协同过滤基于序列的算法,使用递归神经网络捕捉用户的长短期偏好,适用于 CPU/GPU 环境。快速开始
    多项式 VAE协同过滤用于预测用户/物品交互的生成模型,适用于 CPU/GPU 环境。深入探讨

    结束语

    Recommenders 库为开发推荐系统提供了丰富的资源和工具,无论是初学者还是有经验的开发者都能从中受益。通过详细的文档和多种示例,你可以快速上手并在不同的应用场景中实现推荐系统。如果你对推荐系统感兴趣,建议你深入探索 Recommenders 库中的各个示例,并根据自己的需求进行定制和扩展。

    进一步学习和支持

    文档和资源

    Recommenders 提供了详细的文档和资源,帮助你更好地理解和使用该库:

    • 官方文档:详细介绍了库的安装、使用方法和各个算法的具体实现。
    • Wiki 页面:包含项目相关的文档和演示文稿。
    • 实际应用场景:展示了推荐系统在各种实际场景中的应用实例。

    社区和支持

    Recommenders 项目由一个活跃的社区支持,你可以通过以下方式获取帮助或参与贡献:

    • 加入 Slack 社区:与其他用户和开发者交流,获取实时帮助。
    • GitHub 讨论:在项目的讨论区提出问题、分享经验或讨论改进建议。
    • 贡献代码:如果你有兴趣为项目做出贡献,可以查看贡献指南,了解如何提交代码、报告问题或改进文档。

    安装和环境配置

    为了方便开发和环境管理,Recommenders 推荐使用 conda。以下是关于环境配置的一些重要提示:

    • 核心包pip install recommenders 安装核心包,适用于大多数 CPU 环境。
    • 额外包
    • [gpu]pip install recommenders[gpu],适用于需要 GPU 支持的模型。
    • [spark]pip install recommenders[spark],适用于需要 Spark 支持的模型。
    • [dev]pip install recommenders[dev],适用于开发和测试。
    • [all]pip install recommenders[all],包含以上所有额外功能。
    • [experimental]pip install recommenders[experimental],包含实验性模型和功能。

    示例运行

    以下是一个快速示例,展示如何使用 Recommenders 运行一个 Jupyter Notebook:

    1. 安装依赖# 安装 gcc(如果尚未安装) sudo apt install gcc # 创建并激活新的 conda 环境 conda create -n recommenders_env python=3.9 conda activate recommenders_env # 安装 Recommenders 核心包 pip install recommenders # 创建 Jupyter 内核 python -m ipykernel install --user --name recommenders_env --display-name "Recommenders Env"
    2. 克隆仓库git clone https://github.com/recommenders-team/recommenders.git
    3. 运行 Jupyter Notebook
      • 打开 VS Code,加载克隆的仓库。
      • 选择一个示例笔记本,如 examples/00_quick_start/sar_movielens.ipynb
      • 选择 Jupyter 内核 “Recommenders Env”。
      • 运行笔记本,体验推荐系统的构建过程。

    通过这些步骤,你可以轻松上手 Recommenders 库,开始构建和优化自己的推荐系统。希望这篇文章能帮助你更好地理解和使用 Recommenders 库,祝你在推荐系统的探索之旅中取得成功!

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网
Page Stats: PV: 8973 | UV: 4161
Last updated: 2025-07-23 08:12:17
沪ICP备2024052574号-1