首页 > 其他分享 >协同过滤笔记

协同过滤笔记

时间:2024-04-07 23:24:56浏览次数:26  
标签:采样 协同 训练 词语 矩阵 笔记 正则 过滤 L2

笔记

记录一下学习工作中遇到的一些知识,以防遗忘,不清楚的可以回来再看。

一些专有名词

embedding: 隐向量 非常重要 无处不在

召回: 粗略计算要返回结果,例如从100W商品中取比较可能的100个

负采样

负采样(Negative Sampling)是一种用于训练词嵌入模型的技术。在自然语言处理中,词嵌入模型被用于将词语表示为连续向量空间中的向量,以便于计算机处理和理解自然语言。

在传统的Skip-gram模型中,为了预测目标词语的上下文,需要对训练数据集中的每个词语生成一对(目标词语,上下文词语)。然而,这种全局计算上下文的方法会导致训练过程非常耗时,尤其是在大规模数据集上。

负采样通过减少训练样本的数量来加速训练过程。它的基本思想是对于每个目标词语和其上下文词语,只选取部分负面样本进行训练,而不是使用全部的上下文词语。具体来说,对于每个训练样本,我们会随机选取一些与目标词语不相关的词语作为负面样本。这些负面样本不仅能够加速训练过程,还能够帮助模型学习到更好的词嵌入表示。

负采样的过程通常涉及两个参数:采样数量和采样分布。采样数量决定了每个正样本应该选择多少个负面样本进行训练,而采样分布用于选择负面样本。常见的采样分布方法是根据词语的频率进行采样,即频率越高的词语被选中为负面样本的概率越大,这样可以更好地处理高频词语的训练。

通过负采样,可以显著减少训练时间,同时保持较好的词嵌入质量。这使得负采样成为了训练大规模词嵌入模型的常用技术。

RecBole推荐平台总体架构

image

协同过滤

image

基于用户的协同过滤推荐算法 —— 计算量大 矩阵稀疏

  1. 首先找到用户相似度
  2. 属性特征,行为特征等都可以作为计算输入
  3. 计算两个用户的相似度,如果相似度较高,那么就可以将item推荐给用户
  4. 较难
    image

基于物品的协同过滤推荐算法 —— 计算量大 矩阵稀疏

先得到用户和商品的交互数据,计算相关度。
不适合实时的内容。
image

基于矩阵分解 —— 更快

最终目的是降低计算量,优化隐向量。

  1. 因为数据量大了以后,矩阵非常大,很难计算,那么如何计算呢?—— 矩阵分解:
    image

  2. 只要近似就行,可以不用在数学上那么严谨。
    image

  3. 矩阵分解后:是有一些特点的!
    image

  4. 矩阵还原:
    image

  5. 怎样才能让矩阵分解更好?

需要不断实验进行调参
image

隐式

image

image

image

显式

目标函数

image

image

embedding

image

L2正则化限制

在防止过拟合的方法中有L1正则化和L2正则化,L1和L2是正则化项,又叫做惩罚项,是为了限制模型的参数,防止模型过拟合而加在损失函数后面的一项。

参考CSDN-什么是L1和L2正则化,以及它们有什么区别

L2是模型各个参数的平方和的开方值。L2会选择更多的特征,这些特征都会接近于0。最优的参数值很小概率出现在坐标轴上,因此每一维的参数都不会是0。

参考CSDN-什么是L1和L2正则化,以及它们有什么区别

SLIM(Spares Linear Methods)

SLIM对基于记忆的方法提出了一些改进,该算法从用户交互记录中为所有物品学习一个稀疏矩阵来同时实现高效率和高质量的推荐。

标签:采样,协同,训练,词语,矩阵,笔记,正则,过滤,L2
From: https://www.cnblogs.com/wephilos/p/18119958

相关文章

  • Python基础笔记01-Python基础
    Python基础-day1!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022Python的web开发(完整版)入门全套教程,零基础入门到项目实战1.文档工具typora2.环境搭建安装Python解释器学习Python语法Python......
  • 推荐系统-协同过滤
    前言今天继续读论文,今天读的文章是一篇1997年发表于CommunicationsoftheACM上的论文,名叫推荐系统(Recommendersystems),全文及翻译ITISOFTENNECESSARYTOMAKECHOICESWITHOUTSUFFICIENTpersonalexperienceofthealternatives.Ineverydaylife,werelyonreco......
  • 基于项目的协同过滤推荐算法(Item-Based Collaborative Filtering Recommendation Alg
    前言协同过滤推荐系统,包括基于用户的、基于项目的息肉通过率等,今天我们读一篇基于项目的协同过滤算法的论文。今天读的论文为一篇名叫《基于项目的协同过滤推荐算法》(Item-BasedCollaborativeFilteringRecommendationAlgorithms)。摘要Recommendersystemsapplyknowledg......
  • 狂神说Java Web学习笔记_HTTP
    HTTP详解HTTP超文本传输协议(HyperTextTransferProtocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。文本:html,字符串….超文本:图片,音乐,视频,定位,地图…….默认端口:80HTTPSHTTPS(全称:HyperTextTransferProtocoloverSecureSocketLayer),是以安全为目标的HTTP......
  • 狂神说Java Web学习笔记_Maven
    Maven项目架构管理工具我们目前用它就是为了方便导入jar包,可以帮你自动导入一个jar包所依赖的其他jar包。Maven的核心思想:约定大于配置配置环境变量配置阿里云加速镜像maven安装目录的conf/settings.xml在<mirrors></mirrors>标签中添加mirror子节点<mirrors......
  • 狂神说Java Web学习笔记_Java Web基本概念
    JavaWeb基本概念静态Web动态WebWeb服务器技术讲解ASPPHPJSP/ServletB/SC/SWeb服务器TomcatTomcat实际运行JSP页面和ServletIISTomcat详解Tomcat目录结构分析配置server.xml是服务器核心配置文件,在这里可以设置端口号、设置域名或IP、默认加载的项目、请求编......
  • 学习网络取证 (Network Forensics) - WiFi分析笔记
    MAC地址:MAC地址是无线接入点(WAP)的媒体访问控制地址,用于唯一标识网络中的设备。它是一个由12个十六制数字组成的地址,通常表示为6对冒号分隔的双字节(例如:00:1A:2B:3C:4D:5E)。关于MAC地址的两个例子:网络入侵检测:在网路入侵检测中,可以通过监视和记录网络流量中的MAC地址来检测潜......
  • C++笔记打卡第五天(指针、结构体)
    1.指针inta=10;//指针定义的语法:数据类型*指针变量名int*p;p=&a;//也可以直接定义为:int*p=&acout<<&a<<endl;cout<<p<<endl;//可以通过解引用的方式来找到指针指向的内存(可以修改a的值)*p=1000;cout<<*p<<endl;cout<<a<&......
  • C++笔记打卡第六天(通讯录管理系统)
    1.结构体案例1每名老师带领5个学生,总共有3个老师。设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员。学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值。最终打印出老师数据以及老师所带学生数据。#......
  • 机器学习基础の学习笔记
    一.KNN算法   KNN(K-NearestNeighbor)最邻近分类算法是数据挖掘分类技术中最简单的算法之一,其指导思想是”近朱者赤,近墨者黑“,即由你的邻居来推断出你的类别。   实现原理:为了判断未知样本的类别,以所有已知类别的样本作为参照,计算未知样本与所有已知样本的距离,从中选......