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

2023-12-08 00:45

本文主要是介绍搜索推荐技术-爱奇艺搜索引擎技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

在这里插入图片描述即通过召回系统,即基于文本匹配的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.chinasem.cn/article/467900

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

python 常见数学公式函数使用详解(最新推荐)

《python常见数学公式函数使用详解(最新推荐)》文章介绍了Python的数学计算工具,涵盖内置函数、math/cmath标准库及numpy/scipy/sympy第三方库,支持从基础算术到复杂数... 目录python 数学公式与函数大全1. 基本数学运算1.1 算术运算1.2 分数与小数2. 数学函数

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入