推荐系统:基于内容的推荐算法

基于内容的推荐算法

  • 基于物品信息

  • 概念图在这里插入图片描述

概念

  • 定义:( C o n t e n t − b a s e d R e c o m m e n d a t i o n s ( C B ) Content-based\space Recommendations(CB) Contentbased Recommendations(CB)) 根据推荐物品或则内容数据,发现物品的相关性,再基于用户过去的喜爱记录,为用户推荐相似的物品

  • 通过提取物品内在或则外在的特征值,实现 相似度计算

  • 用户个人文本信息的特征物品的特征 相匹配,即可得到用户对物品的喜爱程度

相似度计算

  • 采用:余弦相似度

  • 公式: s i m i l a r i t y = c o s ( θ ) = A B ∣ ∣ A ∣ ∣ ∣ ∣ B ∣ ∣ similarity = cos(\theta) = \frac{A B}{||A||||B||} similarity=cos(θ)=ABAB

  • 如图:

在这里插入图片描述

用户个人文本信息的特征提取

  • 分词、语义处理和情感处理 ( N L P NLP NLP)
  • 潜在语义分析 ( L S A LSA LSA)

物品特征的提取:

  • 专家标签 ( P G C PGC PGC)
  • 用户自定义标签 ( U G C UGC UGC)
  • 降维分析数据、提取隐语义标签 ( L F M LFM LFM)

基于内容推荐系统的高层次结构

  • 概念图

在这里插入图片描述

特征工程

  • 以房屋是否售出为例

在这里插入图片描述

  • 特征 ( f e a t u r e feature feature) :数据中抽取出来的对结果预测有用的信息
  • 特征的个数即数据的观测维度
  • 特征工程最用:从专业背景知识和技巧处理数据,使得特征能够在机器学习算法上发挥更好作用的过程
  • 特征工程包括:特征清洗 (采样、清洗异常样本),特征处理和特征选择
  • 特征按照不同的数据类型 (离散型和连续型) 有不同的特征处理方法
    • 数值型
    • 类别型
    • 时间型
    • 统计型

数值型

  • 定义:连续型数值表示当前维度,通常会对数值特征进行数学上的处理,主要做法是 归一化离散化

  • 归一化:特征之间应该是平等的,区别应当体现在特征内部;有些特征数值特别大而有些特征数值特别小,会因为本身的幅值差异造成机器学习效果不佳

    • 公式: f e a t u r e n e w = f e a t u r e o l d f e a t u r e m a x − f e a t u r e m i n feature_{new} = \frac{feature_{old}}{feature_{max}-feature_{min}} featurenew=featuremaxfeatureminfeatureold
  • 例如,对房屋中的房屋价格和住房面积进行归一化处理:

在这里插入图片描述

  • 离散化:等步长 和 等频
    • 等步长
    • 等频:min -> 25% -> 75% -> max

类别型

  • 定义:离散型,类别型数据本身没有大小关系,需要将它们编码为数字,但它们之间不能有预先设定的大小关系,因此既要让数据公平平等,也要区分数据类别,有效的作法 one-hot 编码

  • 独热编码 ( o n e − h o t one-hot onehot)

    • 例如处理以下数据:

在这里插入图片描述

时间型

  • 连续型或者离散型
  • 连续型:
    • 持续时间 (持续上网的时间)
    • 间隔时间
  • 离散型
    • 一天中哪几个时间段
    • 一周中的星期几
    • 一年中的哪个月/星期
    • 工作日/周末

统计型

  • 加减平均:商品价格高于平均多少
  • 分为线:商品属于售出商品价格的分位线
  • 次序性:商品处于热门商品的第几位
  • 比例类:商品的好/中/差比例

反馈数据:

  • 常见的反馈数据举例

在这里插入图片描述

基于 UGC 的推荐

  • 用户用标签来描述对物品的看法,所以用户生成标签 ( U G C UGC UGC) 是联系用户和物品的纽带,也是反映用户兴趣的重要数据源

  • 用户标签行为的数据集一般由三元组 (用户,物品,标签) 的集合表示,其中一条记录 ( u , i , b u,i,b u,i,b) 表示用户 u u u 给物品 i i i 打上了标签 b b b

  • 简单算法流程 d e m o demo demo

    1. 统计用户最常用的标签

    2. 对于每个标签,统计被打过这个标签次数最多的物品

    3. 对于一个用户,首先找到当前用户最常用的标签,然后找到该标签最热门的物品,推荐给该用户

    4. 即用户 u u u 对物品 i i i 的兴趣公式 : p ( u , i ) = ∑ b n u , b n b , i p(u,i)=\sum_{b}n_{u,b}n_{b,i} p(u,i)=bnu,bnb,i

      其中 n u , b n_{u,b} nu,b 表示用户 u u u 打过标签 b b b 的次数 n b , i n_{b,i} nb,i 表示物品 i i i 被打过标签 b b b 的次数

  • 问题:如果某一个热门物品同时对应着热门标签,那么推荐的个性化、新颖度就会降低

  • 解决:TF-IDF

TF-IDF

  • 词频-逆文档频率 ( T e r m F r e q u e n c y − I n v e r s e D o c u m e n t F r e q u e n c y , T D − I D F Term\space Frequency-Inverse\space Document\space Frequency,TD-IDF Term FrequencyInverse Document Frequency,TDIDF) 是一种用于资讯检索和文本挖掘的常用加权技术

  • T F − I D F TF-IDF TFIDF 是一种统计方法,用于评估一个字词对以一个文件集或者语料库中的一份文件的重要程度;字词的重要性随着它在文件中出现的次数成正比增加,但是同时会随着它在语料库中的出现的频率成反比下降

    即: T F I D F = T F × I D F TFIDF=TF\times IDF TFIDF=TF×IDF

  • 词频 ( T e r m F r e q u e n c y , T F Term\space Frequency,TF Term Frequency,TF)

    • 指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数的归一化,以防止偏向更长的文件。(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否)

    • T F i , j = n i , j n ∗ , j TF_{i,j} = \frac{n_{i,j}}{n_{*,j}} TFi,j=n,jni,j

      其中 T F i , j TF_{i,j} TFi,j 表示词语 i i i 在文档 j j j 中出现的频率 , n i , j n_{i,j} ni,j 表示 i i i j j j 中出现的次数 , n ∗ , j n_{*,j} n,j 表示文档 j j j 的总词数

  • 逆文档频率 ( I n v e r s e D o c u m e n t F r e q u e n c y , I D F Inverse\space Document\space Frequency,IDF Inverse Document Frequency,IDF)

    • 指的是一个词语普遍重要性的度量,某一特定词语的 I D F IDF IDF ,可以由总文档数目除以包含该词语的文档的数目,再将得到的商对数:

      I D F i = l o g N + 1 N i + 1 IDF_i=log\frac{N+1}{N_i+1} IDFi=logNi+1N+1

      其中, I D F I IDF_I IDFI 表示词语 i i i 在文档集中的逆文档频率, N N N 表示文档集中的文档总数, N i N_i Ni 表示文档集中包含了词语 i i i 的个数

  • T F − I D F TF-IDF TFIDF 的主要思想是:如果某个词或则短语在一篇文章中出现的频率 T F TF TF 高,并且在其他文章中很少出现,则认为此词或则短语具有较好的类别区分能力 ,适合用来分类

  • T F − I D F TF-IDF TFIDF 加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量

TF-IDF 对基于 UGC 的推荐的改进

  • 为避免热门标签和热门物品获得更多的权重,需要对 “热门” 进行惩罚

  • 借鉴 TF-IDF 的思想,以一个物品的所以标签作为 “文档” ,标签作为 “词语”,从而计算标签的 “词频” (在物品所有标签中的频率) 和 “逆文档频率” (在其他物品标签中普遍出现的频率)

  • 对热门标签和热门物品的惩罚: p ( u , i ) = ∑ b n u , b l o g ( 1 + n i ( u ) ) n b , i l o g ( 1 + n i ( u ) ) p(u,i)=\sum_{b}\frac{n_{u,b}}{log(1+n_{i}^{(u)})}\frac{n_{b,i}}{log(1+n_{i}^{(u)})} p(u,i)=blog(1+ni(u))nu,blog(1+ni(u))nb,i

    其中, n b ( u ) n_b^{(u)} nb(u) 记录了标签 b b b 被多少用户使用过, n i ( u ) n_i^{(u)} ni(u) 记录了物品 i i i 被多少个不同的用户打过标签


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部