当你打开一个资讯APP刷新闻时,有没有想过,系统是如何迅速推送给你你想看的内容?资讯APP背后有一个巨大的内容池,系统是如何判断要不要将某条资讯推送给你的呢?这就是笔者今天想跟大家探讨的问题——推荐策略中的召回。

召回是什么

推荐系统如何根据已有的用户画像和内容画像去推荐,涉及到两个关键问题:召回和排序。

“召回(match)”指从全量信息集合中触发尽可能多的正确结果,并将结果返回给“排序”。

召回的方式有多种:协同过滤、主题模型、内容召回和热点召回等,而“排序(rank)“则是对所有召回的内容进行打分排序,选出得分最高的几个结果推荐给用户。

图1 推荐系统的算法流程

在搜索系统中,用户会输入明确的搜索词,根据搜索词进行内容的召回和呈现即可,但在推荐系统中,用户没有一个明确的检索词(Query)输入,推荐系统需要做的,就是根据用户画像、内容画像等各种信息为用户推荐他可能感兴趣的内容。

另外,由于没有明确的检索词,推荐系统就需要从整个信息集合中挑选出尽可能多的相关结果,同时又需要剔除相关性较弱的结果,降低排序阶段的工作量。

怎样的召回策略是好的

召回策略的评估主要根据两个评价指标:召回率和准确率。

召回率(Recall)=系统检索到的相关内容 / 系统所有相关的内容总数准确率(Precision)=系统检索到的相关内容 / 系统所有检索到的内容总数。

以搜索为例,当用户搜索“北京大学”时,想看到北大相关的网站、新闻等,系统返回了以下三个网页:

a. 北京大学保安考上研究生;

b. 北京互联网工作招聘;

c. 大学生活是什么样的;

可以看到,只有a是用户真正想看到的,其他两个和用户搜索词无关,而事实上数据库里还有这种网页:

d. 北大开学季;

e. 未名湖的景色;

d、e这两个网页没被搜索到,但它们和“北京大学”的相关度其实是超过b、c的,也就是应该被搜索(被召回)到但实际并没有显示在结果里的,所以,这个系统的:

召回率 = a / (a + d + e)=0.33;

准确率 = a /(a + b + c)=0.33。

这是搜索情境下的召回率和准确率,而“推荐”其实就是没有检索词输入时的搜索,例如,用户并没有输入“北京大学”这样的关键词,但其实他是北京大学的学生,对自己学校相关的新闻很感兴趣,推荐系统的召回就是要根据用户画像、内容画像等各种信息,为用户提供他感兴趣的相关内容,所以也存在召回率和准确率的问题。

召回率和准确率有时存在相互制衡的情况,好的召回策略应该在保证高准确率的情况下也保证高召回率。

当然,召回率和准确率也是存在一定关系的,而我们在做实际项目的优化目标通常是希望用户所检索的内容能够在召回率和准确率两方面都表现都好。

举个例子(或许不够准确,仅供参考)如表1,机器在给用户推荐内容的时候,会出现A(准确并召回)、B(准确不召回)、C(不准确召回)、D(不准确不召回)四种情况。那么,最理想的就是A、C两种情况。

表1 内容召回的4种情况

推荐系统如何召回

召回策略主要包含两大类,即基于内容匹配的召回和基于系统过滤的召回。

1. 基于内容匹配的召回

内容匹配即将用户画像与内容画像进行匹配,又分为基于内容标签的匹配和基于知识的匹配。

例如,A用户的用户画像中有一条标签是“杨幂的粉丝”,那么在他看了《绣春刀2》这部杨幂主演的电影后,可以为他推荐杨幂主演的其他电影或电视剧,这就是“基于内容标签的匹配”。

“基于知识的匹配”则更进一步,需要系统存储一条“知识”——《绣春刀2》是《绣春刀1》的续集,这样就可以为看过《绣春刀2》的用户推荐《绣春刀1》。基于内容匹配的召回较为简单、刻板,召回率较高,但准确率较低(因为标签匹配并不一定代表真的感兴趣),比较适用于冷启动的语义环境。

2. 基于协同过滤的召回

如果仅使用上述较简单的召回策略,推荐内容会较为单一,目前业界最常用的基于协同过滤的召回,它又分为基于用户、基于项目和基于模型的协同过滤。

其中,基于用户(User-based)的协同推荐是最基础的,它的基础假设是“相似的人会有相同的喜好”,推荐方法是,发现与用户相似的其他用户,用用户的浏览记录做相互推荐。

例如,通过浏览记录发现用户一与用户二的偏好类似,就将用户一点击的内容推送给用户二。

图2 基于用户的推荐

基于项目(Item-based)的协同过滤中的“项目”可以视场景定为信息流产品中的“内容”或者电商平台中的“商品”,其基础假设是“喜欢一个物品的用户会喜欢相似的物品”计算项目之间的相似性,再根据用户的历史偏好信息将类似的物品推荐给该用户。

图3 基于项目的推荐

基于模型的协同过滤推荐(Model-based)就是基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测推荐。

总体来说,基于协同过滤的召回即建立用户和内容间的行为矩阵,依据“相似性”进行分发。这种方式准确率较高,但存在一定程度的冷启动问题。

在实际运用中,采用单一召回策略的推荐结果实际会非常粗糙,通用的解决方法是将规则打散,将上述几种召回方式中提炼到的各种细小特征赋予权重,分别打分,并计算总分值,预测CTR。

例如,根据内容匹配召回策略,用户A和内容甲的标签匹配度为0.6,同时,根据协同过滤召回策略,应该将内容甲推荐给用户A的可能性为0.7,那么就为0.6和0.7这两个数值分别赋予权重(这个权重可能会根据算法的具体情况来确定),得出总分,用它来预测用户可能点击的概率,从而决定是否返回该结果。

今日头条的召回策略

今日头条作为业界推荐系统方面的顶级选手,不免有人会好奇,它的召回策略是怎样的?

今日头条的算法架构师曾在接受采访时表示,今日头条有一个世界范围内比较大的在线训练推荐模型,包括几百亿特征和几十亿的向量特征。但因为头条目前的内容量非常大,加上小视频内容有千万级别,推荐系统不可能所有内容全部由模型预估。所以需要设计一些召回策略,从庞大内容中筛选一个模型组成内容库。

召回策略种类有很多,今日头条主要用的是倒排的思路。离线维护一个倒排,这个倒排的key可以是分类,topic,实体,来源等,排序考虑热度、新鲜度、动作等。线上召回可以迅速从倒排中根据用户兴趣标签对内容做截断,高效地从很大的内容库中筛选比较靠谱的一小部分内容。基于召回策略,把一个海量、无法把握的内容库,变成一个相对小、可以把握的内容库,再进入推荐模型。这样有效平衡了计算成本和效果。

参考文献

【1】闫泽华,《内容算法》,中信出版集团

【2】CSDN博客:信息流推荐算法实践 &深入 https://blog.csdn.net/dengxing1234/article/details/79756265

【3】IBM官网资料探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探

【4】今日头条推荐算法原理首公开,头条首席算法架构师带来详细解读 https://www.leiphone.com/news/201801/XlIxFZ5W3j8MvaEL.html

本文由 @Alex 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

给作者打赏,鼓励TA抓紧创作!赞赏

2人打赏

广告召回率是什么意思_推荐策略中的“召回”相关推荐

  1. 广告召回率是什么意思_召回率的常用名词

    True Positive(真正, TP):将正类预测为636f707962616964757a686964616f31333431356635正类数. True Negative(真负 , TN): ...

  2. 广告召回率是什么意思_准确率、精确率、召回率的含义

    最近在看机器学习的,要理解准确率.精确率.召回率的含义,首先要理解 TP.FN.FT 和  TN 的含义. TP.FN.FT 和  TN 这几个概念一直搞得不太清楚.记录一下.看了别人的文章,举的例子 ...

  3. python计算召回率_机器学习之分类:精确率和召回率

    精确率 精确率指标尝试回答以下问题: 在被识别为正类别的样本中,确实为正类别的比例是多少? 精确率的定义如下: Precision = \dfrac{TP}{TP + FP} 注意:如果模型的预测结果 ...

  4. 【序列召回推荐】(task2)序列召回GRU4Rec模型

    学习总结: 一般的RNN模型我们的输入和输出是什么,我们对RNN输入一个序列 X = [ x 1 , x 2 , . . . , x n ] X = [x^1,x^2,...,x^n] X=[x1,x ...

  5. 机器学习面试题集-图解准确率,精确率,召回率

    https://www.toutiao.com/a6692359723615781389/ 今天进入第二章:模型评估 1. 什么是模型评估 模型训练后要对其进行评估,看模型表现如何,哪里可以改进 分类 ...

  6. 深度召回模型在QQ看点推荐中的应用实践

    导语:最近几年来,深度学习在推荐系统领域中取得了不少成果,相比传统的推荐方法,深度学习有着自己独到的优势.我们团队在QQ看点的图文推荐中也尝试了一些深度学习方法,积累了一些经验.本文主要介绍了一种用于 ...

  7. 准确率,召回率,mAP,ROC,AUC,特异性,敏感性,假阴性,假阳性

    P/R和ROC是两个不同的评价指标和计算方式,一般情况下,检索用准确率.召回率.F1.AP和mAP,分类.识别等用ROC和AUC(特异性和敏感性是ROC当中的一个部分). 准确率.召回率.F1.AP和 ...

  8. 召回率 matlab代码,召回率和精度(示例代码)

    召回率(Recall) 查全率 精度(Precise) 查准率 是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量. 在信息检索中的解释: 系统检索到的相关文档数           ...

  9. 准确率-召回率 - Precision-Recall

    Precision-Recall 准确率-召回率 本文翻译自 Precision-Recall 更多翻译可以看 Scikit-learn 某部分的中文翻译 用于评估分类器输出质量的 准确率-召回率 指 ...

  10. 机器学习——二分类、多分类的精确率和召回率

    机器学习有很多评估的指标.有了这些指标我们就横向的比较哪些模型的表现更好.我们先从整体上来看看主流的评估指标都有哪些: 分类问题评估指标: 准确率 – Accuracy 精确率(差准率)- Preci ...

最新文章

  1. 枚举保存到数据库中为序号解决方案
  2. Android手机启动流程与TEE OS
  3. 在React 组件中使用Echarts
  4. php+sqlserver实现分页效果
  5. iOS之深入解析KVC的底层原理和自定义KVC的实现
  6. AspNetCore 中使用 InentityServer4(2)
  7. linux批量远程多服务器FTP并下载文件的脚本
  8. Systrace的用法小结
  9. git 取消 所有暂存_Git版本管理完全指南—学好Git一文足矣
  10. cat testEOF,more
  11. 华为p20nfc怎么复制门禁卡_“碰一碰”即可开大门,华为手机上这个“逆天”功能,你用了吗?...
  12. vc中操作Xml--使用CMarkup类
  13. poj 1679(次小生成树)
  14. Windows系统注册表
  15. Go语言Revel框架 环境搭建
  16. MyBatis 大于等于、小于等于的写法
  17. 【C++】VAL树的旋转(左单旋、右单旋、双旋)
  18. 【亲近自然亲子营】 世外桃源”享受野趣,双山邂逅浪“慢”~旅程
  19. powerdesigner 16.5 破解步骤
  20. SQL Server UPDATE语句用于更新数据

热门文章

  1. 每天被信息轰炸的你,如何辨别新闻真假?
  2. 工程师思维 vs 销售思维
  3. CSS实现兼容浏览器的文字阴影效果
  4. 怎样才能够修改PDF文件中的文字大小
  5. 电感耦合等离子体质谱法响应时间
  6. 基于POC的不可能三角解决方案:深度解析存储公链Subspace Network
  7. 485的信号测试软件,RS485通信测试项目中的压力测试方法、原理及基本测试模型...
  8. CC2530采集重力加速度MMA7455的值
  9. 16 医疗挂号系统_【预约下单】
  10. 2021碳纤维山地车哪个牌子好世界10大顶级自行车品牌排行榜