搜索推荐技术-爱奇艺搜索引擎技术

news2024/9/17 8:38:49

一、爱奇艺的搜索引擎框架示意图

在这里插入图片描述即通过召回系统,即基于文本匹配的matching system,得到大量视频资源的候选集,经过粗排和精排,最后返回给用户。重点在于召回模块和排序模块。

二、召回模块

召回模块比较重要的是基础相关性,类比于传统的切词倒排索引;还有基于深度学习模型的索引,类比于向量索引。
在这里插入图片描述

1.基础相关性

通过对用户的query进行切词,将右边的视频资源的文本描述信息构建构建倒排索引,此过程为精确匹配过程,词匹配则倒排索引拉回归并,然后返回用户。
需要注意的是切词粒度和词的权重问题。不同的词的粒度会影响你是否可以通过倒排索引召回内容;词权重会影响你在相关性计算的时候的最终得分。
基础相关性解决不了的问题,被归为四类:词汇的同义多义问题、语言表达差异、输入错误兼容、泛语义召回。

2.基于深度学习模型

在搜索场景下,用一些nlp工具,能够把词表示成低维的向量,该向量可以表示词与词之间的相关性,在网络里面加入rnn,cnn等机制,把网络做的足够复杂,以提取更加有效的匹配的特征。
在这里插入图片描述
组合起来,就形成了最终的召回模块
在这里插入图片描述

三、排序模块

在这里插入图片描述在这里插入图片描述

1.目标

选择的是list wise方法。我们采用的优化指标是ndcg,这在搜索引擎中是应用的非常广泛的评价指标。它包含两个参数:

r(i)代表第i个结果的相关性,

i代表i个结果的排序位置。

直观理解:i越小,r(i)越大,ndcg越大,越靠前的结果约相关,这个指标就越高。

2.样本

用户的点击行为,点击并不代表喜欢,点击后的行为也需要考虑进来。
在这里插入图片描述

3.特征

如何把排序场景描述的非常准确,把固定问题泛化,在向量的维度表达出来,即特征提取。

Query维度:意图类别(喜欢那个类型的数据),时效性偏好
document维度:质量特征(码流、码率、用户评论、视频帧、视频标签、类别、来源等);相关性特征:命中特征,bm25等
后验特征:包括用户真实点击率,观看时长,满意程度、点击位置(马太效应影响)、各种维度交叉特征
在这里插入图片描述

4.模型

在这里插入图片描述dnn排序框架。

底层是query和document的一些描述文本做多粒度切词,之后做embedding然后做加权平均,得到document和query的向量表达,拼接这两组向量,同时再做点积,(两个向量越来越相近,拼接的时候希望上层网络学到两个向量的相似性,需要有足够的样本和正负样例,所以我们自己做了点积),同时用稠密特征,即在gbdt中用到的特征抽取出来,与embedding特征做拼接,最后经过三个全连接层,接sigmoid函数,就可以得到样本的score,并在此基础上用ndcg的衡量标准去计算损失,从而反向优化网络结构。

参考

https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247487111&idx=1&sn=0466151a7745795694ee6b66838ef263&chksm=fbd4bcebcca335fd6038ab853b9a73ce1147c953594df2aea6fd1c1db013191086f4c656f5d2&scene=27#wechat_redirect

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity Meta Quest 一体机开发(九):【手势追踪】通过录制抓取手势实现自定义抓取姿势

文章目录 📕教程说明📕录制前的准备📕第一种录制方法(Hand Grab Pose Tool 场景)⭐在运行模式中确认录制⭐保存录制的手势,将物体做成 Prefab⭐在编辑阶段调整抓取手势🔍Fingers Freedom&#x…

leetcode 622. 设计循环链表

这道题讲了两种方法,第一个代码是用数组实现的,第二个是用链表实现的,希望对你们有帮助 (最好在VS自己测试一遍,再放到 leetcode上哦) 下面的是主函数(作参考),静下心来…

第21章网络通信

Internet 提供了大量有用的信息,很少有人能在接触过Internet后拒绝它的诱惑。计算机网络实现了多台计算机间的互联,使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序,这些程序借助于网络协议&#xff0c…

孩子都能学会的FPGA:第二十四课——用FPGA和格雷码实现异步FIFO

(原创声明:该文是作者的原创,面向对象是FPGA入门者,后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门,作者不光让大家知其然,还要让大家知其所以然!每个工程作者都搭建了全自动化的仿…

加载离线镜像包:在线镜像离线为tar包、tar离线镜像包加载并根据imageId打tag

第一步:在线环境压缩离线镜像: 需要两个文件,第一个是脚本文件image_offline_load.sh脚本,第二个是image_list.txt 按行 存放需要离线的镜像名称 ./image_offline_load.sh save image_list.txt output.tar第二步:在离…

Nginx 简单入门操作

前言:之前的文章有些过就不罗嗦了。 Nginx 基础内容 是什么? Nginx 是一个轻量级的 HTTP 服务器,采用事件驱动、异步非阻塞处理方式的服务器,它具有极好的 IO 性能,常用于 HTTP服务器(包含动静分离)、正向代理、反向代理、负载均衡 等等. Nginx 和 Node.js 在很多方…

Docker快速理解及简介

docker快速理解及简介 1.Docker为什么出现? 迁移一个项目时,运行文档、配置环境、运行环境、运行依赖包、操作系统发行版、内核等都需要重新安装配置,比较麻烦。 2.Docker是什么? Docker是基于Go语言实现的云开源项目。解决了运行…

Altium Designer实用系列(五)----整理并导出PCB的BOM表

一、引言 最近老师安排了一个小的任务,就是把我们项目的两个电路板BOM整合一下,要注明元器件的耐温、耐压、购买渠道等等内容。    一开始我觉得这工作内容太简单了,两分钟的事。但是当我实际开始干的时候,才发现,好…

【react】动态页面转换成html文件下载,解决样式问题

需求 今天遇到一个需求,挺恶心人的,将一个在线文档页面,可以导出成为html页面查看。 看到网上有使用fs模块,通过react的ReactDOMServer.renderToStaticMarkup将组件转成html字符串,输出文件了。 但是我尝试了&#x…

CodeSys学习笔记

文章目录 1.运动控制的两种方式1.1.SM3_CNC1.2.SM3_Robotics 2.两种运动控制方式的速度、加速度等参数的控制2.1.SM3_CNC2.2.SM3_Robotics 3.CNC的M指令的使用(实现)逻辑。4.SM3_Robotics中的坐标系5.SM3_Robotics如何实现插补并连续执行? 记…

【Linux】diff命令使用

diff命令 是一个用于比较两个文件或目录之间差异的命令。它可以显示两个文件之间的行级别差异,并以易于阅读的格式输出结果。 著者 由保罗艾格特、迈克海特尔、大卫海耶斯、理查德史泰尔曼和Len Tower撰写。 diff命令 -Linux手册页 语法 diff [选项] [文件1]…

设备间的指令通信

指令通信的概念 要进行设备和设备之间的交流就需要通过串口发送数据进行交流 而串口发送简单的数据只需要传输介质 但是要发送复杂的数据就需要介质和传输的规则了 三种应用场景 比如在上位机和mcu之间 通过上位机管理控制器 从而控制电池 单片机和单片机之间 用户输入数据到…

MySQl int(1)、int(20) 的区别到底在哪里

MySQl int(1)、int(20) 的区别到底在哪里 常思一二,便得自然… int(1)数据类型介绍 在MySQL中,INT(1) 是一种定义整数类型的数据字段,其中的数字表示显示宽度而不是存储范围。具体说,INT(1) 中的数字 1 表示显示宽度&#xff0…

VividTalk创新AI语音匹配图片技术:照片+语音=逼真说话视频!

VividTalk是一个由南京大学、阿里巴巴、字节跳动和南开大学共同开发的项目工具。它通过先进的音频到3D网格映射技术和网格到视频的转换技术,实现了高质量、逼真的音频驱动的说话头像视频生成。这一创新技术使得只需提供一张人物的静态照片和一段语音录音&#xff0c…

KeePass开源密码管理器

KeePass开源密码管理器 KeePass 是一款免费的开源密码管理器,KeePass 将密码存储为一个数据库,而这个数据库由一个主密码或密码文件锁住,也就是说我们只需要记住一个主密码,或使用一个密码文件,就可以解开这个数据库&a…

JavaSE基础50题:8. 获取一个数二进制序列中所有的偶数和奇数位,分别输出二进制序列。

概述 获取一个数二进制序列中所有的偶数和奇数位,分别输出二进制序列。 如:从右往左数 0111(如图) 偶数位:01 奇数位:11 代码 public static void main(String[] args) {Scanner scanner new Scanner(Sys…

动态规划学习——最长回文子序列,让字符串变成回文串的最小插入次数

一,最长回文串 1.题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例 1: 输入&…

Dockerfile详解#如何编写自己的Dockerfile

文章目录 前言编写规则指令详解FROM:基础镜像LABEL:镜像描述信息MAINTAINER:添加作者信息COPY:从宿主机复制文件到镜像中ADD:从宿主机复制文件到镜像中WORKDIR:设置工作目录 前言 Dockerfile是编写docker镜…

#HarmonyOS:装饰器UI描述---@Link

装饰器 装饰器(Decorator)是一种语法结构,用来在定义时修改类(class)的行为。 在语法上,装饰器有如下几个特征。 第一个是字符(或者说前缀)是,后面是一个表达式后面的…

机器学习算法(7)-朴素贝叶斯算法和K最近邻算法

一、说明 在在这篇文章中,我将解释两种机器学习算法,称为贝叶斯定理和 K 最近邻算法。贝叶斯定理以 18 世纪英国数学家托马斯贝叶斯的名字命名,是确定条件概率的数学公式。k 最近邻算法,也称为 KNN 或 k-NN,是一种非参…