24、基于协同过滤推荐技术构建图书信息系统

协同过滤构建图书推荐系统

基于协同过滤推荐技术构建图书信息系统

1. 引言

近年来,物联网技术的广泛应用催生了众多应用程序,同时也带来了海量信息。若缺乏合适的工具和方法,用户将难以从这些海量信息中找到满足自身需求的资源,也就无法将其转化为实用知识。因此,开发能够利用现有数据提升用户体验的灵活信息系统至关重要。

我们的研究灵感源于构建一个灵活系统的需求,该系统能够收集和处理来自不同渠道的读者偏好信息,帮助新读者找到符合其偏好的书籍,这是迈向构建物联网基础设施数字图书馆的重要一步。

推荐系统在近年来得到了广泛应用,能够为用户提供与其个人资料和当前环境高度相关的信息。其中,协同过滤(CF)技术因其简单有效而备受青睐。CF 推荐系统基于用户 - 项目评分矩阵工作,该矩阵通过行表示用户,列表示项目,每个单元格对应一个用户对项目的评分。基于此矩阵,有两种主要的计算缺失评分的方法:基于用户的协同过滤(ubCF)和基于项目的协同过滤(ibCF)。

本文的贡献主要有两点:一是对在线图书推荐信息系统进行全面评估;二是比较 ubCF 和 ibCF 这两种技术的性能。

2. 相关工作

推荐引擎是许多信息系统的重要组成部分,能够为用户推荐符合期望的产品。相关研究中提出了多种推荐技术,并在娱乐等领域展现出了有效性。以下是一些相关研究的总结:
| 研究 | 数据集 | 指标 | 更优的 CF 技术 |
| — | — | — | — |
| Karypis 等 | Ecommerce, Catalog, Ccard, Skills, Movielens | 成功率 | ibCF |
| Cacheda 等 | Movielens, Netflix | MAE, RMSE, 覆盖率, GIM, GPIM | ibCF |
| Sarwar 等 | Movielens | MAE | ibCF |
| Papagelis 等 | 电影推荐系统(MRS) | MAE | ibCF |
| Deshpande 等 | Ctlg1, Ctlg2, Ctlg3, Ccard, Ecmrc, Em, Movielens, Skill | 成功率, ARHR | ibCF |
| Jalili 等 | Movielens, Epinions, LastFM, BookCrossing, Jester | 准确性, 多样性, 新颖性, 统一指标 | 无 |

多数研究表明 ibCF 的性能优于 ubCF,但 Jalili 等人的研究发现两者并无明显优劣之分。

3. BookRec:图书推荐系统

CF 技术的核心是用户 - 项目评分矩阵,用于存储所有用户的评分。为计算缺失评分,基于内存的算法会利用整个矩阵,根据推荐过程中利用的信息,可分为 ubCF 和 ibCF 两种类型。

3.1 基于用户的协同过滤(ubCF)

在用户 - 项目矩阵中,以 ua 为活跃用户,已知评分用星号(*)表示,未知评分用问号(?)表示。ubCF 通过利用与 ua 相似用户的行关系来推断 ua 对其他项目的偏好。计算公式如下:
[r_{ua,b} = r_{u} + \frac{\sum_{u_{i}\in topsim(u_{a})}(r_{u_{i},b} - r_{u_{i}}) \cdot sim(u_{a}, u_{i})}{\sum_{q\in topsim(u_{i})} sim(u_{a}, u_{i})}]
其中,(r_{ua}) 和 (r_{ui}) 分别是 ua 和 ui 的平均评分;(u_{i}) 属于 ua 的前 k 个最相似用户集合 (topsim(p));(sim(u_{a}, u_{i})) 是 ua 和 ui 的相似度,通过以下公式计算:
给定用户 u 对一组书籍((b_1, b_2, \cdots, b_n))进行了评分,u 的特征用向量 (\overrightarrow{\varphi} = (\varphi_1, \varphi_2, \cdots, \varphi_n)) 表示,其中 (\varphi_j) 是节点 (b_j) 的权重,计算公式为 (\varphi_j = f_{b_j} * \log(\frac{|U|}{a_{b_j}})),(f_{b_j}) 是 (b_j) 相对于 u 的出现次数(可为 0 或 1),(|U|) 是用户数量,(a_{b_j}) 是对 (b_j) 进行评分的用户数量。用户 u 和 v 的相似度计算公式为:
[sim(u, v) = \frac{\sum_{i = 1}^{n} \varphi_j \times \omega_j}{\sqrt{\sum_{j = 1}^{n}(\varphi_j)^2} \times \sqrt{\sum_{j = 1}^{n}(\omega_j)^2}}]

3.2 基于项目的协同过滤(ibCF)

通过利用活跃书籍 b 与其他书籍的列关系来预测 ua 是否喜欢 b,计算公式如下:
[r_{ua,b} = r_{b} + \frac{\sum_{c\in rated(u_{a})}(r_{u_{a},c} - r_{u_{a}}) \cdot sim(b, c)}{\sum_{c\in rated(u_{a})} sim(b, c)}]
其中,(sim(b, c)) 是书籍 b 和 c 的相似度,(rated(u_{a})) 是用户 (u_{a}) 已评分的书籍集合。

我们构建了 BookRec 推荐系统,结合了上述两种 CF 技术,为书迷提供高度相关的书籍推荐。同时,为方便未来研究,我们将评估使用的工具和数据集发布在了 GitHub 上。

4. 评估

我们面临的问题是:哪种技术最适合推荐书籍?虽然现有研究大多表明 ibCF 性能更优,但我们认为仍需针对图书领域对这两种技术的适用性进行研究。为此,我们在 BookCrossing 和 Goodbooks 两个数据集上进行了实证研究,并使用了准确性(包括精度、召回率和 nDCG)、多样性(熵和覆盖率)和新颖性(EPC)等多种质量指标进行评估。

4.1 数据集
  • BookCrossing :有 278,858 个用户、271,379 本书籍和 1,149,788 条评分。
  • Goodbooks :有 53,424 个用户、10,000 本书籍和 5,976,479 条评分。

两个数据集的用户 - 项目矩阵都非常稀疏,为了高效评估,我们筛选出评分数量较多的用户,得到了两个子集,具体统计信息如下:
| 数据集 | 用户数量 | 书籍数量 | 评分数量 | 稀疏度 |
| — | — | — | — | — |
| BookCrossing | 11,692 | 143,183 | 295,390 | 99.98% |
| Goodbooks | 10,325 | 9,907 | 982,986 | 99.03% |

为了便于计算质量指标,我们将五星或十星评分映射为二进制评分,即根据用户的平均评分判断用户是否喜欢某本书。

4.2 指标

为了全面评估推荐结果,我们使用了以下质量指标:
- 准确性
- 精度(Precision) :(precision@N(u) = \frac{|match(u)|}{N}),表示前 N 个推荐项目中属于真实数据集的项目比例。
- 召回率(Recall) :(recall@N(u) = \frac{|match(u)|}{|gt(u)|}),表示真实数据集中出现在 N 个推荐项目中的项目比例。
- 归一化折损累积增益(nDCG) :(nDCG@N(u) = \frac{1}{iDCG} \cdot \sum_{r = 1}^{N} \frac{rel(u, r)}{\log_2(r + 1)}),用于衡量系统将高度相关项目排在列表顶部的能力。
- 多样性
- 覆盖率(Coverage) :(coverage@N(u) = \frac{|\cup_{u\in U} \cup_{r = 1}^{N} REC_r(u)|}{|B|}),衡量推荐项目的覆盖范围。
- 熵(Entropy) :(entropy@N(u) = -\sum_{b\in B} (\frac{#rec(b)}{total}) \ln(\frac{#rec(b)}{total})),评估推荐是否集中在少数项目上。
- 新颖性
- 预期流行度互补(EPC) :(EPC@N(U) = \frac{\sum_{u\in U} \sum_{r = 1}^{N} \frac{rel(u,r) * [1 - pop(REC_r(u))]}{\log_2(r + 1)}}{\sum_{u\in U} \sum_{r = 1}^{N} \frac{rel(u,r)}{\log_2(r + 1)}}),衡量系统推荐不受欢迎项目的能力。

我们进行了十折交叉验证,为每个测试用户随机选择一半的评分作为查询,另一半作为真实数据。通过考虑这些质量指标,我们旨在回答以下两个研究问题:
- RQ1:哪种 CF 技术性能更好?
- RQ2:增加邻居用户数量是否有助于提高推荐效果?

4.3 结果
  • 准确性 :通过绘制精度 - 召回曲线(PRCs),我们发现对于 BookCrossing 和 Goodbooks 两个数据集,增加邻居用户数量可以提高准确性,且在 k = 20 时的准确性优于 k = 5 时。同时,ubCF 在所有测试配置和数据集上的准确性均优于 ibCF,在 BookCrossing 数据集上两者的性能差异更为明显。nDCG - 召回曲线显示,在 BookCrossing 数据集上,ubCF 的排名敏感性准确性更高,能够将更多高度相关的项目排在列表顶部;在 Goodbooks 数据集上,ubCF 和 ibCF 的 nDCG 差异较小,增加邻居用户数量也能提高准确性。总体而言,ubCF 的准确性优于 ibCF。
  • 多样性 :熵值方面,ibCF 和 ubCF 的差异较小,在 Goodbooks 数据集上两者的熵值相同。在 BookCrossing 数据集上,ibCF 的熵值更优,意味着其覆盖范围更好。覆盖率与召回率成正比,ibCF 在覆盖率方面表现更优,但在 Goodbooks 数据集上,两种技术的表现相当。综合来看,在多样性指标上,ibCF 优于 ubCF。

我们可以用 mermaid 流程图来展示评估的整体流程:

graph LR
    A[选择数据集] --> B[数据预处理]
    B --> C[选择质量指标]
    C --> D[进行十折交叉验证]
    D --> E[计算指标结果]
    E --> F[回答研究问题]

综上所述,在准确性方面 ubCF 表现更好,而在多样性方面 ibCF 更具优势,这表明在选择推荐技术时需要根据具体需求和关注点进行权衡。

4.3 结果(续)
  • 新颖性 :通过计算预期流行度互补(EPC)指标来衡量系统推荐不受欢迎项目的能力。在 BookCrossing 数据集上,ubCF 和 ibCF 的 EPC 差异相对较小,但 ubCF 在某些情况下能够推荐更多不太受欢迎的书籍,体现出一定的新颖性优势。而在 Goodbooks 数据集上,两种技术的 EPC 都随着邻居用户数量的增加而有所提升,但提升幅度不大,且两者之间没有明显的优劣之分。总体而言,在新颖性方面,ubCF 有小幅度的优势,但并不显著。

以下表格总结了 ubCF 和 ibCF 在不同指标和数据集上的表现:
| 数据集 | 指标 | 更优技术 |
| — | — | — |
| BookCrossing | 准确性 | ubCF |
| BookCrossing | 多样性 | ibCF |
| BookCrossing | 新颖性 | ubCF(小幅度) |
| Goodbooks | 准确性 | ubCF |
| Goodbooks | 多样性 | 相当 |
| Goodbooks | 新颖性 | 相当 |

4.4 评估的经验教训

从这次评估中,我们得到了以下几点经验教训:
1. 技术选择需综合考虑 :没有一种协同过滤技术在所有指标上都表现最优。在实际应用中,需要根据业务需求和重点关注的指标来选择合适的技术。如果更注重推荐的准确性,如希望推荐的书籍与用户的真实喜好高度匹配,那么 ubCF 是更好的选择;如果更关注推荐的多样性,即希望涵盖更多不同类型的书籍,那么 ibCF 可能更合适。
2. 邻居用户数量影响性能 :增加邻居用户数量通常会提高推荐的准确性,但同时也会增加计算复杂度。因此,需要在性能提升和计算成本之间进行权衡。在实际系统中,可以通过实验找到一个合适的邻居用户数量,以达到最佳的推荐效果。
3. 数据集特性的重要性 :不同的数据集具有不同的特性,如稀疏度、用户和项目的数量等,这些特性会对推荐技术的性能产生显著影响。在进行推荐系统的开发和评估时,需要充分考虑数据集的特点,选择适合该数据集的技术和参数。

5. 总结

本文围绕基于协同过滤推荐技术构建图书信息系统展开了深入研究。我们介绍了基于用户的协同过滤(ubCF)和基于项目的协同过滤(ibCF)两种技术,并构建了 BookRec 推荐系统。通过在 BookCrossing 和 Goodbooks 两个数据集上进行实证研究,使用准确性、多样性和新颖性等多个质量指标进行评估,得出以下结论:

在准确性方面,ubCF 表现优于 ibCF,能够更准确地推荐符合用户偏好的书籍。在多样性方面,ibCF 具有一定优势,能够提供更广泛的书籍推荐。在新颖性方面,ubCF 有小幅度的优势,但不明显。

此外,我们还发现增加邻居用户数量可以提高推荐的准确性,但会增加计算复杂度。同时,不同数据集的特性会对推荐技术的性能产生重要影响。

未来的研究可以进一步探索如何结合 ubCF 和 ibCF 的优势,开发出更高效、更准确的推荐算法。还可以考虑引入更多的特征信息,如书籍的内容信息、用户的社交信息等,以提高推荐系统的性能。另外,对于不同类型的数据集,可以研究更合适的预处理方法和参数调整策略,以充分发挥协同过滤技术的潜力。

以下是整个研究过程的 mermaid 流程图,展示了从研究动机到最终结论的完整流程:

graph LR
    A[研究动机:构建图书信息系统] --> B[选择协同过滤技术:ubCF 和 ibCF]
    B --> C[构建 BookRec 推荐系统]
    C --> D[选择数据集:BookCrossing 和 Goodbooks]
    D --> E[数据预处理]
    E --> F[选择质量指标:准确性、多样性、新颖性]
    F --> G[进行实验评估]
    G --> H[分析实验结果]
    H --> I[得出结论:ubCF 和 ibCF 的优劣及相关经验教训]
    I --> J[未来研究方向]

总之,通过本次研究,我们对协同过滤推荐技术在图书信息系统中的应用有了更深入的理解,为后续的研究和实践提供了有价值的参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值