Uncertainty-Aware Explainable Recommendation with Large Language Models

828 篇文章

已下架不支持订阅

本文介绍了一种利用大型语言模型(LLM)GPT-2生成推荐系统解释的新型方法。通过将用户和项目ID向量作为提示,采用多任务学习框架进行联合训练,优化推荐和解释任务,提升推荐效率和用户满意度。实验表明,这种方法在多个数据集上的可解释性指标优于现有SOTA方法,同时保证了文本质量的稳定性。

本文是LLM系列文章,针对《Uncertainty-Aware Explainable Recommendation with Large Language Models》的翻译。

基于大型语言模型的不确定性可解释推荐

摘要

在推荐系统内提供解释将提高用户满意度并促进信任,特别是通过详细说明选择适合用户的推荐项目的原因。该领域的主要方法围绕着生成基于文本的解释,特别强调应用大型语言模型(LLM)。然而,由于时间限制和计算资源限制,为可解释的建议改进LLM被证明是不切实际的。作为一种替代方案,当前的方法包括训练提示而不是LLM。在这项研究中,我们开发了一个模型,该模型利用用户和项目输入的ID向量作为GPT-2的提示。我们在多任务学习框架内采用了联合训练机制来优化推荐任务和解释任务。这一策略能够更有效地探索用户的兴趣,提高推荐效率和用户满意度。通过实验,我们的方法在Yelp、TripAdvisor和Amazon数据集上分别实现了1.59 DIV、0.57 USR和0.41 FCR,在可解释性评估指标方面优于四种SOTA方法。此外,我们发现所提出的模型能够确保三个公共数据集上稳定的文本质量。

1 引言

2 相关工作

3 方法

4 实验

5 结论

在本文中,我们提出了一种使用提示和多任务学习来生成自然语言句子的方法,该方法解释了为什么向用户u推荐项目i。我们的方法包括直接将ID向量作为连续提示输入GPT-2。我们在多任务学习框架内采用联合训练机制来优化推荐任务和解释任务。这使我们能够更好地挖掘用户的兴趣和需求,最终提高推荐效率和用户满意度。此外,我们在训练过程中优化了不确定的权重,以确定最佳权重值,提高了模型的泛化能力和鲁棒性。通过实验,我

已下架不支持订阅

### Uncertainty - minimal Query Selection 解释 不确定性最小查询选择(Uncertainty - minimal Query Selection)是一种在信息检索、机器学习等领域中应用的策略。其核心思想是在进行查询时,选择那些能够使结果不确定性最小的查询方式。 在机器学习的主动学习场景中,模型通常需要从大量未标记的数据中选择一部分进行标记,以提高模型性能。不确定性最小查询选择方法会优先选择那些模型预测结果不确定性较低的数据进行标记。例如,对于一个分类模型,某个样本被模型以很高的置信度预测为某一类别,那么该样本就属于不确定性较低的样本。通过选择这样的样本进行标记,模型可以更有效地学习到数据的特征,减少不必要的标记工作,提高学习效率。 ### 应用场景 1. **信息检索**:在搜索引擎中,当用户输入模糊的查询词时,搜索引擎可以运用不确定性最小查询选择策略。通过分析用户的历史查询记录、当前上下文等信息,选择最有可能满足用户需求的查询词组合,从而提高检索结果的准确性。例如,用户输入“苹果”,搜索引擎可以根据用户所在地区、使用习惯等信息,判断用户是想查询苹果公司的产品,还是水果苹果,进而提供更精准的搜索结果。 2. **图像识别**:在图像识别任务中,不确定性最小查询选择可以用于选择最有价值的图像进行标注。当一个图像分类模型对某些图像的分类结果不确定时,系统可以选择那些分类结果相对确定的图像先进行标注,以加速模型的训练过程。 3. **医疗诊断**:在医疗诊断系统中,对于一些症状相似的疾病,系统可以根据患者的各项检查指标,运用不确定性最小查询选择策略,优先选择那些能够明确诊断结果的检查项目,减少不必要的检查,提高诊断效率。 ### 代码示例 以下是一个简单的主动学习中不确定性最小查询选择的 Python 代码示例: ```python import numpy as np from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression # 生成示例数据 X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_classes=2, random_state=42) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 初始化模型 model = LogisticRegression() # 初始标记数据 n_initial = 10 initial_indices = np.random.choice(len(X_train), n_initial, replace=False) X_labeled = X_train[initial_indices] y_labeled = y_train[initial_indices] X_unlabeled = np.delete(X_train, initial_indices, axis=0) # 训练模型 model.fit(X_labeled, y_labeled) # 不确定性最小查询选择 n_queries = 5 for _ in range(n_queries): # 预测未标记数据的概率 probabilities = model.predict_proba(X_unlabeled) # 计算每个样本的不确定性(这里用最大概率表示确定性,最大概率越高,不确定性越低) max_probabilities = np.max(probabilities, axis=1) # 选择不确定性最小的样本 query_index = np.argmax(max_probabilities) # 获取该样本及其标签 new_X = X_unlabeled[query_index].reshape(1, -1) new_y = np.array([y_train[np.where((X_train == new_X).all(axis=1))[0][0]]]) # 将新样本加入标记数据 X_labeled = np.vstack((X_labeled, new_X)) y_labeled = np.hstack((y_labeled, new_y)) # 从未标记数据中移除该样本 X_unlabeled = np.delete(X_unlabeled, query_index, axis=0) # 重新训练模型 model.fit(X_labeled, y_labeled) # 评估模型 accuracy = model.score(X_test, y_test) print(f"Final model accuracy: {accuracy}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值