《推荐系统实践》算法纯享(附代码链接)(五)—— 借助上下文信息推荐篇

在上一篇博客里面分享的是《推荐系统实践》中UGC相关的推荐算法,对此还不熟悉的读者可以戳这里

关于这个系列会分为如下几个部分:

《推荐系统实践》算法纯享(附代码链接)(一)—— 评价指标篇
《推荐系统实践》算法纯享(附代码链接)(二)—— 协同过滤篇
《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇
《推荐系统实践》算法纯享(附代码链接)(四)—— UGC推荐篇
《推荐系统实践》算法纯享(附代码链接)(五)—— 借助上下文信息推荐篇
《推荐系统实践》算法纯享(附代码链接)(六)—— 借助社交网络推荐篇
《推荐系统实践》算法纯享(附代码链接)(七)—— 评分预测篇

完整代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice

下面将开始本系列的第五部分——借助上下文信息推荐篇

5 上下文推荐

上下文的信息一般有时间、地点等。

5.1 时间上下文推荐

代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice/blob/master/Chapter5/基于时间上下文信息的推荐.ipynb

带有时间的用户行为数据集一般由(u, i, t)三元组组成,表示用户u给物品i在时间t由交互的行为。

那么有如下几种方法基于带时间信息的行为进行推荐:

5.1.1 最近最热门

这是一种带时间衰减的非个性化方法。给定时间T,物品i最近的流行度 n i ( T ) n_i(T) ni(T)可以定义为:

n i ( T ) = ∑ ( u , i , t ) ∈ T r a i n , t &lt; T 1 1 + α ( T − t ) n_i(T) = \sum_{(u, i, t)\in Train, t&lt;T} \frac{1}{1+\alpha(T-t)} ni(T)=(u,i,t)Train,t<T1+α(Tt)1

其中 α \alpha α是时间衰减系数。

5.1.2 时间上下文相关的ItemCF算法

前面介绍的ItemCF的算法,主要包含下面两步比较重要的阶段:

  1. 利用用户行为离线计算物品之间的相似度
  2. 根据用户的历史行为和物品相似度矩阵,给用户做个性化推荐

这两步其实都可以加入时间信息。首先回顾不加时间信息的ItemCF算法计算物品相似度的公式:

s i m ( i , j ) = ∑ u ∈ N ( i ) ⋂ N ( j ) 1 ∣ N ( i ) ∣ ∣ N ( j ) ∣ sim(i, j)=\frac{\sum_{u\in{N(i) \bigcap N(j)}}1}{\sqrt{|N(i)||N(j)|}} sim(i,j)=N(i)N(j) uN(i)N(j)1

而在给用户u做推荐时,用户u对物品i的兴趣 p ( u , i ) p(u,i) p(u,i)通过如下公式计算:

p ( u , i ) = ∑ j ∈ N ( u ) s i m ( i , j ) p(u,i)=\sum_{j\in N(u)} sim(i, j) p(u,i)=jN(u)sim(i,j)

在得到时间信息之后,就可以用如下公式改进相似度计算:

s i m ( i , j ) = ∑ u ∈ N ( i ) ⋂ N ( j ) f ( ∣ t u i − t u j ∣ ) ∣ N ( i ) ∣ ∣ N ( j ) ∣ sim(i, j)=\frac{\sum_{u\in{N(i) \bigcap N(j)}} f(|t_{ui}-t_{uj}|)}{\sqrt{|N(i)||N(j)|}} sim(i,j)=N(i)N(j) uN(i)N(j)f(tuituj)

这个式子中引入了和时间相关的衰减项 f ( ∣ t u i − t u j ∣ ) f(|t_{ui}-t_{uj}|) f(tuituj),其中 t u i t_{ui} t

### 大型语言模型在推荐系统中的应用 大型语言模型(LLMs)通过其强大的自然语言处理能力,在多个领域展现出卓越的表现。当将其引入到推荐系统中时,可以显著提升推荐效果和用户体验。 #### 数据表示与语义建模 LLMs 能够捕捉复杂的语义关系并生成高质量的文本嵌入向量。这些嵌入可用于改进物品和用户的表示学习过程[^1]。例如,对于电影推荐场景,LLM 可以分析电影评论、剧情描述等内容,提取深层次的主题特征,并将它们映射成高维空间中的稠密向量形式。这种基于深度语义的理解有助于缓解冷启动问题以及稀疏数据带来的挑战。 #### 对话式交互体验优化 现代推荐系统越来越倾向于采用对话的方式与用户沟通交流。借助于预训练好的 LLMs ,开发者们构建出了具备较强上下文感知能力和流畅表达技巧的人工智能助手 。这类虚拟角色不仅能够准确识别查询意图,还能主动引导用户提供更多信息以便做出更精准的选择建议[^2]。 以下是利用 Python 实现的一个简单例子来展示如何调用 Hugging Face 的 Transformers 库加载一个预先训练完成的语言模型来进行分类任务: ```python from transformers import pipeline classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli") sequence_to_classify = "one day I will visit Japan" candidate_labels = ['travel', 'cooking', 'dancing'] result = classifier(sequence_to_classify, candidate_labels) print(result) ``` 此代码片段展示了零样本分类器的功能——即使从未见过特定标签的数据集也能对其进行有效预测。这同样适用于个性化兴趣挖掘等领域,从而进一步增强了推荐系统的性能表现。 #### 提升可解释性和透明度 除了提供更好的匹配选项外,另一个重要方向是如何让整个决策流程变得更加清晰易懂。通过对生成机制背后逻辑链条的剖析,可以让最终消费者明白为什么某些项目会被优先考虑而其他则不然。这种方法既满足了公众日益增长的安全顾虑同时也促进了信任建立之间的桥梁连接[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值