推荐系统学习笔记(四)--基于向量的召回

离散特征处理

离散特征:性别,国籍,英文单词,物品id,用户id

处理:

建立字典:eg:china = 1

向量化:eg:one-hot /embedding(低维稠密向量)

one-hot--适合低维度

例如:

性别:男,女

字典:男 = 1,女 = 2

one-hot:

        未知[0 , 0]

        男 [1 , 0]

        女 [0 , 1]

one-hot局限:

例1: nlp中,对单词编码,维度上万

例2:推荐系统中,对物品id编码,上亿笔记

类别数量很大时,不用one-hot

embedding(嵌入)

例子:国籍embeddding

参数数量:向量维度 * 类别数量

embedding : 4 * 200 = 800

embedding层:参数以矩阵形式保存,大小为:向量维度 * 类别数量

输入:序号,eg:美国序号为2

输出:向量,eg:美国对应参数矩阵第二列

神经网络关键在于embedding层,对它的优化是一个关键点

one-hot和embedding关系

embedding = one-hot * 参数矩阵

矩阵补充(目前不常用)

训练:

用户embedding层,矩阵A,每个用户对应一列

物品embedding层,矩阵B,每个物品对应一列

内积就是第u个用户对第i个商品兴趣的预估值

训练的目的:学习矩阵A和B

数据集:(用户id a,物品id b,真实兴趣分数 y)------>三元组

优化问题:min\sum (y-<a,b>)^2

行:用户,列:物品,灰色位置表示未曝光,绿色位置代表分数

为什么叫矩阵补充?

大多数都是灰色的,我们并不知道这些用户对这些物品的兴趣,用绿色的部分训练,得到矩阵AB,将灰色部分补全,补全之后就可以给用户做推荐了

工业界不用

缺点:

1.没有利用物品和用户的属性,仅仅使用了id做embedding

2.负样本选取方式不对:

        正样本:曝光后点击

        负样本:曝光后未点击(这是一个“想当然”的设计,其实不对,工业界不采用,后面会详细讲如何构造负样本)

3.训练的方法不好,内积不如余弦相似度,平方损失(回归)不如交叉熵损失(分类)判断正负样本

线上服务

模型存储

训练得到的矩阵AB可能会很大,A--用户,B---物品

矩阵A:

        存到key-value表,key是用户id,value是A的一列。

矩阵B:

        比较复杂

线上服务

1.利用用户id,查找kv表,得到向量a

2.最近邻查找:查找最有可能的k个物品

        物品的embedding向量bi,计算内积<a,bi>,返回最大的k个物品

缺点:时间复杂度正比于物品数量,暴力枚举导致无法实时运转。

如何加速

近似最近邻查找

定义标准:余弦相似度最大(常用) or 内积最大 or 欧氏距离小。

如果系统不支持计算余弦相似度:

将向量归一化(二范数等于1),此时计算出的内积就等于余弦相似度。

方法:

1.数据预处理:分成多个区域,每个区域用一个长度为1的单位向量表示,建立索引,向量作为key,点列表作为value,给定一个向量,就可以返回区域内所有点。

如何划分:余弦相似度---扇形,欧氏距离---多边形

2.线上快速找回:用户向量a,与所有单位索引向量对比,计算相似度,找到最相似的,通过索引,找到所有点,再计算所有点的相似度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/656058.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】用友NC registerServlet JNDI 远程代码执行漏洞(XVE-2024-10248)

0x01 产品简介 用友NC是 用友软件股份有限公司开发的一套企业级管理软件系统。它是一个基于互联网的多层应用系统&#xff0c;旨在为中大型企业提供全面、集成的管理解决方案。是一种商业级的企业资源规划云平台&#xff0c;为企业提供全面的管理解决方案&#xff0c;包括财务…

数组-类似斐波那契数列,给出第一个和第二个结点值,求第n个值

一、问题描述 二、解题方法 可以采用两种方式&#xff1a; 方式1.使用递归&#xff0c;f(n)f(n-1)f(n-2); 当n1时&#xff0c;返回first&#xff1b;当n2时&#xff0c;返回second&#xff1b; 方式2.从第3个结点开始计算&#xff0c;当计算到第n个结点值的时候结束并返回计…

nginx编译安装手把手教学

编译安装nginx的第一步需要从nginx的官网找到nginx最新的稳定版本 下面这是官方网站的资源下载地址 https://nginx.org/en/download.html选中稳定版本点击右键——选择复制链接 在终端内使用wget指令官网下载地址&#xff0c;将nginx下载 使用wget指令下载 wget https://ng…

微服务项目搭建之技术选型

1、什么是微服务 Java微服务是一种架构风格&#xff0c;通过将单个Spring Boot应用程序拆分为一组小型、独立的Spring Boot服务来构建分布式系统。每个微服务都运行在自己的进程中&#xff0c;并使用轻量级通信机制&#xff08;如HTTP或消息队列&#xff09;来进行相互之间的通…

查询DQL

016条件查询之等量关系 条件查询语法格式 select ... from... where过滤条件;等于 select empno, ename from emp where sal3000;select job, sal from emp where enameFORD;select grade, losal, hisal from salgrade where grade 1;不等于 <> 或 ! selectempno,en…

你的手机是如何控制你的手表之广播篇

前言 要让手机能够控制手表&#xff0c;第一步当然要让手机能够“看见”手表&#xff0c;人类作为上帝视角&#xff0c;我们是能够通过眼睛直接看见手机和手表的&#xff0c;但要让手机“看见”手表&#xff0c;就需要一端把自己的信息通过电磁波的形式发往空中&#xff0c;另…

Echarts 实现将X轴放在图表顶部并且自动播放展示提示信息内容

文章目录 需求分析效果预览需求 如下图所示,实现柱状图中反转倒着绘制 分析 使用 ECharts 来实现对 Y 轴的倒序排序时,可以通过设置 yAxis 的 inverse 属性为 true 来实现。以下是一个简单的示例,演示了如何使用 ECharts 来创建一个柱状图,并将 Y 轴进行倒序排序:并且…

Node.js和npm常用命令

一、Node.js简介 Node.js是一个免费、开源、跨平台的JavaScript运行时环境&#xff0c;允许开发人员创建服务器、web应用程序、命令行工具和脚本。 点击查看node.js中文官网 点击查看node.js英文官网 二、npm简介 npm(Node Package Manager)是Node.js的软件包管理器&#xff0…

LangChain之链的应用(下)

LangChain之链的应用 Chain链的应用配置LLMChain&#xff1a;简单链create_stuff_documents_chain&#xff1a;文档链create_extraction_chain&#xff1a;提取信息链LLMMathChain&#xff1a;数学链create_sql_query_chain&#xff1a;SQL查询链连接数据库创建并使用链 Sequen…

linux--实时性优化

linux--实时性优化 1 介绍2 实时性需求3 代表性实时系统4 嵌入式系统嵌入式软件系统结构处理器时钟节拍多任务机制任务调度方式任务调度算法时间片调度算法优先级调度算法基于优先级的时间片调度算法 5 cyclictest 测试工具命令说明命令分析参数含义 6 linux 实时性改进某版本上…

MySQL用户管理操作

用户权限管理操作 DCL语句 一.用户管理操作 MySQL软件内部完整的用户格式&#xff1a; 用户名客户端地址 admin1.1.1.1这个用户只能从1.1.1.1的客服端来连接服务器 admin1.1.1.2这个用户只能从1.1.1.2的客服端来连接服务器 rootlocal host这个用户只能从服务器本地进行连…

从 0 开始实现一个网页聊天室 (小型项目)

实现功能 用户注册和登录好友列表展示会话列表展示: 显示当前正在进行哪些会话 (单聊 / 群聊) , 选中好友列表中的某个好友, 会生成对应的会话实时通信, A给B发送消息, B的聊天界面 / 会话界面能立刻显示新的消息 TODO: 添加好友功能用户头像显示传输图片 / 表情包历史消息搜…

数据结构(七)递归、快速排序

文章目录 一、递归&#xff08;一&#xff09;使用递归实现1~n求和1. 代码实现&#xff1a;2. 调用过程&#xff1a;3. 输出结果&#xff1a; &#xff08;二&#xff09;青蛙跳台阶问题1. 问题分析2. 代码实现3. 输出结果4. 代码效率优化5. 优化后的输出结果 二、快速排序&…

MySQL进阶之(九)数据库的设计规范

九、数据库的设计规范 9.1 范式的概念9.1.1 范式概述9.1.2 键和相关属性 9.2 常见的范式9.2.1 第一范式9.2.2 第二范式9.2.3 第三范式9.2.4 第四范式9.2.5 第五范式&#xff08;域键范式&#xff09; 9.3 反范式化9.3.1 概述9.3.2 举例9.3.3 反范式化新问题9.3.4 通用场景 9.4 …

互联网的利

在互联网没发明之前&#xff0c;人类说话要近距离的说&#xff0c;玩游戏要近距离的玩&#xff0c;十分麻烦。于是&#xff0c;互联网解决了这个问题。聊天可以在电脑上聊&#xff0c;玩游戏可以用游戏软件查找玩家来玩&#xff0c;实现了时时可聊&#xff0c;时时可玩的生活。…

K210 数字识别 笔记

一、烧写固件 连接k210开发板&#xff0c;点开烧录固件工具&#xff0c;选中固件&#xff0c;并下载 二、模型训练 网站&#xff1a;MaixHub 1、上传文件 2、开始标记数据 添加9个标签&#xff0c;命名为1~9&#xff0c;按键盘w开始标记&#xff0c;键盘D可以下一张图片&…

NLP技术发展和相关书籍分享

自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;是计算机科学领域和人工智能领域的重要研究方向之一&#xff0c;旨在探索实现人与计算机之间用自然语言进行有效交流的理论与方法。它融合了语言学、计算机科学、机器学习、数学、认知心理学等…

装机必备——Bandizip7.33安装教程

装机必备——Bandizip7.33安装教程 软件下载 软件名称&#xff1a;Bandizip7.33 软件语言&#xff1a;简体中文 软件大小&#xff1a;8.42M 系统要求&#xff1a;Windows7或更高&#xff0c; 64位操作系统 硬件要求&#xff1a;CPU2GHz &#xff0c;RAM4G或更高 下载通道①迅…

Nature Communications 南京大学开发智能隐形眼镜用于人机交互

近日&#xff0c;南京大学的研究人员研制了一种微型、难以察觉且生物相容的智能隐形眼镜&#xff08;smart contact lenses &#xff0c;SCL&#xff09;&#xff0c;可用于原位眼球追踪和无线眼机交互。采用频率编码策略&#xff0c;无芯片、无电池的镜头成功地检测眼球运动和…

机器学习之聚类学习

聚类算法 概念 根据样本之间相似性&#xff0c;将样本划分到不同类别种&#xff0c;不同相似度计算方法&#xff0c;会得到不同聚类结果&#xff0c;常用相似度计算方法为&#xff1a;欧氏距离 目的是在没有先验知识情况下&#xff0c;自动发现数据集种内在结构和模式 无监督…