推荐系统学习

推荐系统学习

在这里插入图片描述

基于人口统计学的推荐算法

  • 基于人口统计学的推荐机制是一种最易于实现的推荐算法,它只是简单地根据系统用户的基本信息发现用户的相关程度,然后将相似用户的其他物品推荐给当前用户
  • 对于没有明确含义的用户信息(比如登陆时间,地域等上下文信息),可以通过聚类等手段,给用户打上分类标签
  • 对于特定标签的用户,又可以根据预设的规则或者模型,推荐出对应的物品
  • 用户信息标签化的过程一般又称为用户画像
用户画像
  • 用户画像就是企业通过收集与分析消费者社会属性、生活习惯、消费行为等主要信息的数据之后,完美地抽象出一个用户的商业全貌
  • 用户画像为企业提供了足够的信息基础,能够帮助企业快速找到精准用户群体以及用户需求等更为广泛的反馈信息
  • 作为大数据的根基,它完美地抽象出一个用户的信息全貌,为进一步精准,快速地分析用户行为习惯,消费习惯等重要信息,提供了足够的数据基础

在这里插入图片描述

基于内容的推荐算法

  • CB(Content-based Recommendations)根据推荐物品或内容的元数据,发现物品的相关性,再基于用户过去的喜好记录,为用户推荐相似的物品。
  • 通过抽取物品内在或者外在的特征值(比如一个电影,导演、演员、用户标签UGC、用户评论、市场、风格等等,都可算是特征),实现相似度计算。
  • 将用户(user)个人信息的特征(基于喜好记录或是预设兴趣标签),和物品(item)特征相匹配,就能得到用户对物品感兴趣的程度。
相似度计算

在这里插入图片描述

基于内容的推荐算法
  • 对于物品的特征提取–打标签(tag)
    • 专家标签(PGC)
    • 用户自定义标签(UGC)
    • 降维分析数据,提取隐语义标签(LFM)
  • 对于文本信息的特征提取–关键词
    • 分词、语义处理和情感分析(NLP)
    • 潜在语义分析(LSA)
基于内容推荐系统的高层次结构

在这里插入图片描述

特征工程

在这里插入图片描述

特征:作为判断条件的一组输入变量,是做出判断的依据

目标:判断和预测的目标,模型的输出变量,是特征所产生的结果

特征

数据中心抽取出来的对结果预测有用的信息

  • 特征的个数就是数据的观测维度
  • 特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程
  • 特征工程一般包括特征清洗(采样、清洗异常样本),特征处理(标准化,归一化)和特征选择
  • 特征按照不同的数据类型分类,有不同的特征处理方法
    • 数值型
    • 类别型
    • 时间型
    • 统计型
数值型特征处理
  • 用连续数值表示当前维度特征,通常会对数值型特征进行数学上的处理,主要的做法是

归一化离散化

幅度调整/归一化

  • 特征与特征之间应该是平等的,区别应该体现在特征内部
  • 例如房屋价格和住房面积的幅度是不同的,房屋价格可能在三百万~一千500万之间,而住房面积在40-300(平方米)之间,那么明明是平等的两个特征,输入到相同的模型中后由于本身的政府不同导致产生的效果不同,这是不合理的
    在这里插入图片描述

在这里插入图片描述

这样处理取值不会受到幅度的影响

离散化

  • 将原始连续值切断,转化为离散值

在这里插入图片描述

  • 让座问题:假设我们要训练一个模型判断在公交车上应不应该给一个人让座,按照常理,应该是给年龄很大和年龄很小的人让座
  • 对于以上让座问题中的年龄特征,对于一些模型,假设模型为y=θx,输入的x(年龄)对于最后的贡献是正/负相关的,即x越大越应该让座,但很明显让座问题中,年龄和是否让座不是严格的正相关或者负相关,这样只能兼顾年龄大的人,无法兼顾年龄大的人和年龄小的人

可使用阈值将年龄进行分段,将一个age特征分为多个特征,将连续值离散化

1~1011~2021~3031~4041~5050~100
1~1011~2021~3031~4041~5050~100
25001000
60000001

在电商中,每个人对于价格的喜好程度不同,但它不一定是严格的正相关或负相关,某些人可能就喜欢某一价格段内的商品

离散化的两种方式

等步长(每10岁划分一类)

​ 简单但不一定有效

等频

​ min ->25% -> 75% ->max

两种方法对比

  • 等频的离散化方法很精准,但需要每次都对数据分布进行一遍从新计算,因为昨天用户在淘宝上买东西的价格分布和今天不一定相同,因此昨天做等频的切分点可能并不适用,而线上最需要避免的就是不确定,需要现场计算,所以昨天训练出的模型今天不一定能使用
  • 等频不固定,但很精准,等步长是固定的,非常简单
类别型特征处理
  • 类别型数据本身没有大小关系,需要将它们编码为数字,但它们之间不能有预先设定的大小关系,因此既要做到公平,又要区分开它们,那么就直接开辟多个空间。
  • One-Hot编码/哑变量所做的就是将类别数据平行地展开,也就是说,经过One-Hot编码/哑变量后,这个特征的空间会膨胀
redyellowblue
100
010
001
一室一厅二室一厅三室一厅
一室一厅100
二室一厅010
三室一厅001

在这里插入图片描述

时间型特征处理
  • 时间型特征既可以做连续值,又可以看做离散值

连续值

  • 持续时间(网页浏览时间)
  • 间隔时间(上一次购买/点击离现在的时间间隔)

离散值

  • 一天中哪个时间段
  • 一周中的星期几
  • 一年中哪个月/星期
  • 工作日/周末
统计型特征处理
  • 加减平均:商品价格高于平均价格多少,用户在某个品类下消费超过多少。
  • 分危险:商品属于售出商品价格的分位线处。
  • 次序性:商品处于热门商品第几位。
  • 比例类:电商中商品的好/中/差评比例。

推荐系统常见反馈数据

在这里插入图片描述

显示:明显能够反馈用户信息的数据类型

隐式:通过其他用户行为日志能够侧面反映用户爱好的数据类型

基于UGC的推荐

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

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

  • 一个最简单的算法

    • 统计每个用户最常用的标签

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

    • 对于每一个用户,首先找到他常用的标签,然后找到具有这些标签的最热门的物品,推荐给他

    • 所以用户u对物品i的兴趣公式为

在这里插入图片描述

其中nu,b是用户u打过标签b的次数,nb,i是物品i被打过标签b的次数

  • 简单算法中直接将用户打出标签的次数和物品的道德标签次数想成,可以简单地表现出用户对物品某个特征的兴趣
  • 这种方法倾向于给热门标签、热门物品比较大的权重,如果一个热门物品同时对应着热门标签,那它就会"霸榜",推荐的个性化、新颖度就会降低(解决方法)
TF-IDF
  • 词频-逆文档频率是一种用于资讯检索与文本挖掘的常用加权技术

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

    ​ TFIDF=TF x IDF

**词频(**TF)

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

逆向文件频率(IDF)

是一个词语普遍重要性的度量,某一特定的词语IDF,可以有总文档数目除以包含该词语的文档数目,再将得到的上取对数得到

在这里插入图片描述

其中IDFi表示词语i在文档集中的拟文档频率表,N表示文档集中的文档总数,Ni表示文档集中包含了词语i的文档数

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

  • 为了避免热门标签和热门物品获得更多的权重,我们需要对"热门"进行乘法
  • 借鉴TF-IDF的思想,以一个物品的所有标签作为"文档",标签作为"词语",从而计算标签的"词频"(在物品所有标签中的频率)和"逆文档频率"(在其他物品标签中普遍出现的频率)
  • 由于"物品i的所有标签"n*,j应该对标签权重没有影响,而"所有标签总数"N对于所有标签是一定的,所以这两项可以略去。在简单算法的基础上,直接加入对热门标签和热门物品的惩罚项:

在这里插入图片描述

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

物品标签中普遍出现的频率)

  • 由于"物品i的所有标签"n*,j应该对标签权重没有影响,而"所有标签总数"N对于所有标签是一定的,所以这两项可以略去。在简单算法的基础上,直接加入对热门标签和热门物品的惩罚项:

[外链图片转存中…(img-bpYtyHiX-1621011368549)]

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值