#1.1 搜索与推荐的概述
搜索和推荐中的根本问题是从海量信息中识别满足用户信息需求的信息对象。合适时间合适的地点合适上下文。(这个地方得写的专业一点)

##搜索
搜索是一个用户主动输入query(一系列关键词),并用query比较明确的表达自己需求。搜索引擎通过query-doc的match匹配,返回用户最可能点击的文档。

##推荐
推荐一般是非主动触发的,通常不需要用户输入的query。推荐系统就是系统根据用户的属性(如性别、年龄、学历、地域、职业),用户在系统里过去的行为(例如浏览、点击、搜索、购买、收藏等),以及当前上下文环境(如网络、手机设备、时间等),从而给用户推荐用户可能感兴趣的物品(如电商的商品、feeds推荐的新闻、应用商店推荐的app等),从这个过程来看,推荐系统就是一个给user匹配(match)感兴趣的item的过程。

下表总结了搜索与推荐的不同之处:

(1)意图不同

搜索是用户带着明确的目的,通过给系统输入query来主动触发的;而推荐是系统被动触发,用户是以一种闲逛的姿态过来的,系统是带着一种“猜”的状态给用户推送物品。

简单来说,搜索是一次主动pull的过程,用户用query告诉系统,我需要什么,你给我相关的结果就行;而推荐是一次push的过程,用户没有明显意图,系统给用户被动push认为用户可能会喜欢的东西。

(2)关注点

搜索引擎更关注user,目的就是为用户快速准确地找到想要的信息。

推荐需要对信息生产者和消费者同时满足,(这里也需要一句专业的话)

(3)时效不同

搜索需要尽快满足用户此次请求query,如果搜索引擎无法满足用户当下的需求,最重要的是相关性和低延迟。搜索引擎是一个效率工具,越快速的帮助用户找到信息越好,不希望用户沉迷其中。所以搜索引擎一般不会是一个时间杀手。

推荐更希望能增加用户的时长和留存从而提升整体LTV(long time value,衡量用户对系统的长期价值),例如视频推荐系统希望用户能够持续的沉浸在观看系统推荐的视频流中;电商推荐系统希望用户能够多逛多点击推荐的商品从而提高GMV。

(4)相关性

搜索有严格的query限制,搜索结果需要保证相关性,搜索结果量化评估标准也相对容易。给定一个query,系统给出不同结果,在上线前就可以通过相关性对结果进行判定相关性好坏。例如下图中搜索query为“pool schedule”,搜索结果“swimming pool schedule”认为是相关的、而最后一个case,用户搜索“why are windows so expensive”想问的是窗户为什么那么贵,而如果搜索引擎将这里的windows理解成微软的windows系统从而给出结果是苹果公司的mac,一字之差意思完全不同了,典型的bad case。
推荐除了相关性还考了探索。EE。信息茧房。(待补充)

而推荐没有明确的相关性要求。一个电商系统,用户过去买了足球鞋,下次过来推荐电子类产品也无法说明是bad case,因为用户行为少,推完全不相关的物品是系统的一次探索过程。推荐很难在离线阶段从相关性角度结果评定是否好坏,只能从线上效果看用户是否买单做评估。

(5) 实体不同

搜索中的两大实体是query和doc,本质上都是文本信息。这就是上文说到的为什么搜索可以通过query和doc的文本相关性判断是否相关。Query和doc的匹配过程就是在语法层面理解query和doc之间gap的过程。

推荐中的两大实体是user和item,两者的表征体系可能完全没有重叠。例如电影推荐系统里,用户的特征描述是:用户id,用户评分历史、用户性别、年龄;而电影的特征描述是:电影id,电影描述,电影分类,电影票房等。这就决定了推荐中,user和item的匹配是无法从表面的特征解决两者gap的。但是这里不是也可以表征成词向量衡量吗

(6)个性化要求不同

虽然现在但凡是一个推荐系统都在各种标榜如何做好个性化,“千人千面”,但搜索和推荐天然对个性化需求不同。搜索有用户的主动query,本质上这个query已经在告诉系统这个“用户”是谁了,query本身代表的就是一类用户,例如搜索引擎里搜索“深度学习综述”的本质上就代表了机器学习相关从业者或者对其感兴趣的这类人。在一些垂直行业,有时候query本身就够了,甚至不需要其他用户属性画像。例如在app推荐系统里,不同的用户搜索“京东”,并不会因为用户过去行为、本身画像属性不同而有所不同。

而推荐没有用户主动的query输入,如果没有用户画像属性和过去行为的刻画,系统基本上就等于瞎猜。这个地方也少那么些东西

总结

维度 搜索 推荐
意图 意图明确,主动触发 非主动触发
关注点 user user 与 provider
??
相关性
实体 query和doc都是文本信息,可以通过文本的相关性判断是否相关
个性化要求

##1.2搜索和推荐中匹配统一性
Garcia-Molina等指出,搜索和推荐中的根本问题是识别满足用户信息需求的信息对象。此外,搜索(信息检索)和推荐(信息过滤)是一体两面的,具有很强的联系和相似性。

我们使用信息对象一词来表示要检索/推荐的文档/item,并使用信息来表示相应任务中的查询/用户。即可得到搜索与推荐的统一框架。


搜索和推荐已经在一些app中实现结合(例如美团、淘宝等app)。例如,在某些电商app中,当用户提交查询时,不仅基于相关性(查询-产品匹配),而且还基于用户兴趣(用户-产品匹配)显示产品的排名列表。搜索与推荐的结合已成为趋势,从而更好地满足用户的需求。其中,匹配起着至关重要的作用。

随着深度学习技术的使用,搜索、推荐的匹配模型在架构和方法上更加相似,主要体现在:将输入embedding(查询,用户,文档和项目)作为分布式表示,结合神经网络来表示匹配函数,并以端到端的方式训练模型参数。此外,如果搜索和推荐共享相同的信息对象集(如上述电子商务网站和生活方式app的示例),则可以联合建模和优化。
##1.3搜索匹配中的挑战
在搜索中,queries and documents(通常以标题表示)是文本信息。文档与查询的相关性主要由两者之间的匹配程度来表示。计算机对自然语言的理解仍然具有挑战性,因此,匹配度的计算仍然仅限于文本级别,而不是语义级别。 例如“iphone什么价格?”与“苹果手机多少钱” 这两个query的意思是完全一样的,但是字面上没有任何的重叠,用bm25和tf-idf来计算,他们的相似度都是0。语义匹配就是要解决这类字面上不一定重叠,但是语义层面是相似的文本匹配问题。此外,查询是由用户发出的,而文档是由编辑者编辑的。由于自然语言的含糊性,用户和编辑者可能会使用不同的语言样式和表达方式来呈现相同的概念或主题。转向交叉模式IR(例如,使用文本查询来检索图像文档),查询文档不匹配问题变得更加严重,因为不同的模态具有不同类型的表示形式。在跨模式检索中,一个主要挑战是:如何构建一个匹配函数,以弥合这些模式之间的“异质性差距”。

为了解决查询文档不匹配的挑战,方法有提出了在语义级别执行匹配的方法,称为语义匹配。解决方案中的关键思想是执行更多的查询和文档理解以更好地表示查询和文档的含义,或者构建更强大的匹配功能以弥合查询和文档之间的语义鸿沟。传统的机器学习方法(Li和Xu,2014)和深度学习方法(Guo等,2019b; Mitra和Craswell,2018; Onal等,2018)均已开发用于语义匹配。

##1.4推荐匹配中的挑战
搜索中的失配问题更为严峻。在搜索中,queries and documents均是文本信息。这就使得根据它们的term进行直接匹配至少有意义。
推荐中的两大实体是user和item,两者的表征体系可能完全没有重叠。例如电影推荐系统里,用户的特征描述是:用户id,用户评分历史、用户性别、年龄;而电影的特征描述是:电影id,电影描述,电影分类,电影票房等。这就决定了推荐中,user和item的匹配是无法从表面的特征解决两者gap的。
更具挑战性的是,这些物品可以通过多模态特征来描述,例如服装产品的图像和电影的封面图像,这可以在影响用户的决策中发挥关键作用。 在这样的视觉感知场景中,我们需要考虑用户与多模态内容之间的跨模态匹配。
为了解决上述问题,协同过滤(Collaborative Filtering)被提出,但CF存在诸多缺点,因此矩阵分解算法、神经网络模型、基于图的方法等被提出。

##1.5 近期进展

深度神经网络有足够的能力对复杂的匹配任务进行建模。它们具有自然扩展到跨模态匹配的灵活性,其中学习公共语义空间来普遍表示不同模态的数据。所有这些特性都有助于处理搜索和推荐的复杂性。

在搜索中,深度神经网络可以更有效地解决查询和文档之间的不匹配问题,包括前馈神经网络 (FFN)、卷积神经网络 (CNN) 和循环神经网络 (RNN),因为它们具有更强的表示学习和匹配函数学习的能力。最值得注意的是,BERT显着提高了搜索匹配的准确性,并且现在作为最先进的技术脱颖而出。

在推荐方面,最近的重点已经从以行为为中心的协同过滤转移到信息丰富的用户-项目匹配,如顺序、上下文感知和知识图增强的推荐,这些都是实际场景驱动的。 在技术方面,图神经网络 (GNNs) 成为表示学习的新兴工具 (Wang et al., 2019a,b),因为推荐数据可以自然地组织在异构图中,而 GNNs 有能力利用这种 数据。 为了处理用户行为序列数据,还采用了 self-attention 和 BERT,这在序列推荐中展示了有希望的结果(Sun et al., 2019; Yuan et al., 2020)。

#其他

协同过滤是个性化推荐系统的基础,1句话总结协同过滤。(?)

红色
绿色

#参考链接

  1. 推荐系统中的深度匹配模型
  2. 在算法工程师领域,搜索算法与推荐算法有什么区别?
  3. 推荐系统和搜索引擎的关系是什么?
  4. 自然语言处理中“分布式表示”的含义
  5. 这可能是「多模态机器学习」最通俗易懂的介绍

Deep Learning for Matching in Search and Recommendation 搜索与推荐中的深度学习匹配(1 引言)相关推荐

  1. 搜索推荐-《搜素与推荐中的深度学习匹配(Deep Match)技术》

    本书介绍 匹配是搜索和推荐中的关键技术,即衡量文档与查询(Query)的相关性或用户对项目的兴趣.机器学习算法已经被用来解决该问题,该问题基于输入表示和带标签的数据来学习一个匹配函数,也称为" ...

  2. 【推荐算法】深度学习推荐算法综述 Deep Learning based Recommender System: A Survey and New Perspectives

    一.MLP based Recommender System 1. Deep Crossing模型 Deep Crossing模型完整的解决了从特征工程.稀疏向量稠密化.多层神经网络进行优化目标拟合等 ...

  3. Java软件研发工程师转行之深度学习(Deep Learning)进阶:手写数字识别+人脸识别+图像中物体分类+视频分类+图像与文字特征+猫狗分类

    本文适合于对机器学习和数据挖掘有所了解,想深入研究深度学习的读者 1.对概率基本概率有所了解 2.具有微积分和线性代数的基本知识 3.有一定的编程基础(Python) Java软件研发工程师转行之深度 ...

  4. Deep learning:十一(PCA和whitening在二维数据中的练习)

    前言: 这节主要是练习下PCA,PCA Whitening以及ZCA Whitening在2D数据上的使用,2D的数据集是45个数据点,每个数据点是2维的.参考的资料是:Exercise:PCA in ...

  5. DNA/RNA基序挖掘中的深度学习研究进展(A survey on deep learning in DNA/RNA motif mining)

    摘要 DNA/RNA基序挖掘是基因功能研究的基础.DNA/RNA基序挖掘在识别DNA或RNA蛋白结合位点方面起着极其重要的作用,有助于理解基因调控和管理的机制.在过去的几十年里,研究人员一直致力于设计 ...

  6. Selective Search——Region Proposal的源头 (目标检测)(two-stage)(深度学习)(IJCV 2013)

    论文名称:< Selective Search for Object Recognition > 论文下载:https://ivi.fnwi.uva.nl/isis/publication ...

  7. 重磅 | 清华刘洋与邓力合著338页新书《Deep Learning in NLP》(附下载)

    来源:专知 本文约5800字,建议阅读10+分钟. 本书系统介绍DL在NLP常见问题中的应用,是目前研究领域最新.最全面的综述. [ 导读 ]邓力博士及刘洋博士等人合著的 Deep Learning ...

  8. Use of Deep Learning in Modern Recommendation System: A Summary of Recent Works(笔记)

    注意:论文中,很多的地方出现baseline,可以理解为参照物的意思,但是在论文中,我们还是直接将它称之为基线, 也就是对照物,参照物. 这片论文中,作者没有去做实际的实验,但是却做了一件很有意义的事 ...

  9. 【github】机器学习(Machine Learning)深度学习(Deep Learning)资料

    转自:https://github.com/ty4z2008/Qix/blob/master/dl.md# <Brief History of Machine Learning> 介绍:这 ...

最新文章

  1. redis在php中的使用介绍
  2. 利用反射机制获取未知类型的枚举的信息
  3. PAT甲级题目翻译+答案 AcWing(进位制)
  4. java web 柱状图_使用JFreeChart实现基于Web的柱状图
  5. 引力波应该称为空间波
  6. Android Studio中导出数据库文件的方法总结
  7. [译]露天矿山道路设计指南:第一章
  8. 微信小程序的支付流程 —— 总结
  9. 数字系统的设计层级(行为级、RTL、门级)
  10. JDBC Mybatis 调用 ORACLE 存储过程 函数 返回 varray 类型 function return varray out varray
  11. LINUX C/C++捕获段错误,打印出错的具体位置(精确到哪一行) ​ --Xilinx ARM版本
  12. 分类任务如何用逻辑回归实现_【机器学习面试总结】—— LR(逻辑回归)
  13. 脚本化HTTP——AJax
  14. 程序员双十一剁手指南(2020)
  15. 激光式气体传感器的检测原理及优势
  16. Matlab/Simulink-S-function函数(MATLAB版本2020a)
  17. 深度学习与计算机视觉教程(4) | 神经网络与反向传播(CV通关指南·完结)
  18. Java实现 蓝桥杯 算法提高 秘密行动
  19. java里面的ture和false
  20. Cisco Packet Tracerv7.3下载安装

热门文章

  1. RT-Thread Studio ulog日志
  2. C 修改服务器代码,rpg c 游戏服务器代码大全
  3. LSM303AGR开发中遇到的问题
  4. 【C语言】制作一个通讯录管理系统
  5. AndroidStudio百度地图开发之显示地图
  6. Python 日期处理
  7. 关于Div半透明子元素不透明的问题
  8. 赛扬N4000和赛扬N5095的区别
  9. 游戏网站搭建实例:黑色沙漠中文wiki站搭建(1)
  10. Skyline开发:未能加载文件或程序集“Interop.TerraExplorerX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null