推荐系统之信息茧房问题

什么是信息茧房

信息茧房其实是现在社会一个很可怕的现象,从字面意思来看的话其实比喻的是信息被虫茧一般封锁住。这个问题反映了现在随着个性化推荐的普及衍射的一个社会问题。

平时在浏览新闻或者淘宝的时候,平台会自动根据用户的浏览记录获取用户的偏好,然后推送感兴趣的文章。久而久之,比如用户A是个体育迷,那么A获取的信息大多是跟体育相关的,很难获取音乐或者军事等其它相关的资讯,因为平台追求点击率,会一直推送A感兴趣的内容以获取高广告浏览量。时间长了,因为信息茧房的作用,因为信息获取单一,A的社交圈可能也会变的狭小。如果整个社会陷入了个性化推荐系统的信息茧房效应,将是病态的。

所以,真正的个性化推荐绝对不等于只推荐历史感兴趣的内容,这样其实不是一个长期可持续的推荐系统,如果陷入了信息茧房,一定会有用户觉得审美疲劳。那么如何破解信息茧房,因为从推荐模型角度分析,一旦获取了用户的画像,就很难跳出用户习惯的逻辑,比如昨天买个手机,第二天还推荐手机,这个时候可能比较好的一种方法是跨域推荐(cross-domain recommendation)。

跨域推荐的概念

跨域推荐做的事情就是跳出推荐的信息茧房。不是一个新概念了,我上研究生的时候学校就有实验室做相关的研究,今天主要讲下思路。具体大家想了解的话可以看下这个Paper: 《Cross-Domain Recommendation: An Embedding and Mapping Approach》

有几个关键词我觉得可以充分体现跨域推荐的精髓:

“diversity” - “novelty” - “serendipity”

如果我们做一个推荐系统,说是“individuality”,其实我会觉得很normal,不够高级,现在几乎所有推荐系统都有个性化推荐,但是如果一个推荐系统标榜自己是“novelty”,那我就觉得很有意思了。下面聊聊怎么实现novelty。

第一步:确定什么是target & source

这里以新闻推荐为例,如果一用户A,经常浏览同一个类型的新闻,比如体育新闻,如何找到A喜欢的其他类别新闻呢?

这其实是一个user overlap的场景,推荐系统的主体user不变,有个source源是体育新闻,要找到target是体育以外user感兴趣的文章。这就建立了跨域推荐中的target和source关系。

第二步:确定推荐level

跨域推荐有多种level,要确定跨域的种类,大体可以分以下三种:

其实跨域推荐确定了source和target后只要确定跨域的幅度即可。

  1. Attribute level:挖掘target间的相似属性,推荐同一类别的target。比如一个用户很喜欢买红色、大尺寸的诺基亚手机,attribute level推荐是要在推荐物属性层面做跨域,可以试着给用户推荐黑色、小尺寸的其它手机,这样的跨属性的相同物种推荐会在一定程度上给用户新鲜感

  2. Type level:挖掘target间的相似属性,然后推荐相同大品类下不同小品类的物品。比如用户喜欢红色、大尺寸的诺基亚手机,手机和电脑都属于电子产品,可以推荐红色、大尺寸的电脑给用户

  3. Item level:挖掘target间的相似属性,推荐不同大品类的物品。比如用户喜欢红色、大尺寸的诺基亚手机,直接推荐红色大尺寸的马桶

以上3个跨域level由轻到重,大家可以根据自己的需求选用。其实关键点是如何挖掘物品的属性,因为无论是电脑、手机、马桶,他们都有共通的属性,比如大小、颜色、材质等,下面就介绍如何挖掘这些属性。

第三步:挖掘target间的属性

既然跨域推荐的关键是能挖掘出target间共有的属性,那么有什么办法可以做到这一点呢。首先要根据业务属性人工挖掘出一些隐性特征,比如电商平台可以挖掘出颜色、材质、价格、使用频率等隐性特征,然后可以通过矩阵分解的方式获取具体每个特征的权重(下图中矩阵A和B之间的矩阵)。

总结

信息茧房效应是因为个性化推荐系统推荐信息的不平衡性,导致用户长期只能浏览限制领域的信息,可以在推荐系统中加入跨域推荐的逻辑来规避信息茧房的影响,具体流程包含确定推荐逻辑中的source和target,确定跨域的粒度,通过矩阵分解找出隐含的共性属性。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

【快讯】阿里云张建锋:数据成为经济发展的新生产要素

在2019阿里云广东峰会上,阿里云智能总裁张建锋表示,全面迈入数字经济时代,数据成为社会经济发展的新生产要素,云智能是新基础设施。 “数字经济时代,最大的不一样是有一种新的生产要素是数据。”张建锋表示&#xff0c…

Flutter Exception降到万分之几的秘密

1. flutter exception 闲鱼技术团队于2018年上半年率先引入了Flutter技术实现客户端开发,到目前为止成功改造并上线了复杂的商品详情和发布业务。随着flutter比重越来越多,我们开始大力治理flutter的exception,起初很长一段时间内闲鱼内flutter的except…

mac vim php 颜色,mac vim 配色

syntax onset nuset noicset t_Co256set tabstop4set nocompatibleset shiftwidth4set softtabstop4set backspace2set autoindentset expandtabset smartindentset hlsearch"状态栏显示当前执行的命令set showcmd"粘贴时保持格式set paste"允许使用鼠标点击定位…

云栖专辑 | 阿里开发者们的第6个感悟:享受折磨

2015年12月20日,云栖社区上线。2018年12月20日,云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来,寒冬中,最值得投资的是学习,是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的…

事务专栏

事务用法: 写一个配置类 EnableTransactionManagement Configuration public class TransactionManagementConfig {}在需要事物的方法上添加 Transactional注解即可, 特殊场景:注解也加了为什么还是不生效, 建议, 1&g…

推荐算法 php SQL,MixPHP 独特的SQL构建方式

独特的SQL构建方式MixPHP 对CUD这些写操作都有专用方法,可快速构建,使用方法也与 Yii2 完全一至,而R操作完全不一样,MixPHP 发明了一种新奇的构造方式,非常简单的方式,在定义复杂查询时,可使 SQ…

2019年人工智能硬件与应用大趋势

2019年即将到来,人工智能将往什么方向发展?机器学习将如何演变为人工智能?在神经网络领域具有20年的技术经验Eugenio Culerciello,在硬件和软件两方面都有经验积累。他预测,在硬件和应用两方面,2019年的人工…

阿里专家杜万:Java响应式编程,一文全面解读

本篇文章来自于2018年12月22日举办的《阿里云栖开发者沙龙—Java技术专场》,杜万专家是该专场第四位演讲的嘉宾,本篇文章是根据杜万专家在《阿里云栖开发者沙龙—Java技术专场》的演讲视频以及PPT整理而成。 摘要:响应式宣言如何解读&#xf…

redis集群原理分析--故障转移

https://blog.csdn.net/hw120219/article/details/95939870

java中的v递归的思想,Java中的递归思想 - osc_9lqilnv7的个人空间 - OSCHINA - 中文开源技术交流社区...

递归:递归的概念:方法自身调用自身则称为递归。递归的分类:间接递归:方法A调用方法B,方法B调用方法C,方法C调用方法A。直接递归: 方法A调用方法A。(常用)递归的注意事项:递归一定要出口&#xf…

日站会——你的站会姿势正确吗?

今天我们讲讲如何利用站会,更好地实现促进团队有效协作和聚焦,促进价值顺畅流动和交付,同时及时的暴露问题和风险。 站会的目标 说到站会,人们最熟悉的Scrum站会,典型的形式是团队围成一圈,依次回答三个问…

springboot2 配置redis报错 redis timeout Value not a valid duration解决办法

配置文件加上时间单位ms就好了, application.yml spring:redis:# Redis数据库索引(默认为0)database: 10# Redis服务器地址host: 192.168.203.220# Redis服务器连接端口port: 6379# Redis服务器连接密码(默认为空)pas…

TableStore实战:DLA+SQL实时分析TableStore

一、实战背景 什么是DLA(DataLake Analytics数据湖)?他是无服务器化(Serverless)的云上交互式查询分析服务。作为分布式交互式分析服务,是表格存储计算生态的重要组成之一。为了使用户更好的了解DLA的功能…

matlab里用fix函数,Matlab基本函数-fix函数

1、fix函数:向零方向取整2、用法说明:yfix(x) 函数将x中元素零方向取整,得到y是一个整数数组。对于复数z,分别对实部和虚部取整3、举例说明>> x [1-2.9i 34.5i 5-6.7i 9-10.2i]x 1.0000 - 2.9000i 3.0000 4.5000i 5.0000 …

权限管理快速入门_01

文章目录一、表结构设计二、权限方法2.1. 根据用户id,查询用户拥有的角色列表2.2. 根据角色id,查询用户拥有的权限列表2.3. 获取用户拥有权限的菜单列表彩蛋: 组装数据成树工具类补充表结构一、表结构设计 一般权限管理由5张表构成(3张主表2张中间表):包…

云栖专辑 | 阿里开发者们的第8个感悟:在信息大爆炸的时代,保持专注度显得尤为可贵

2015年12月20日,云栖社区上线。2018年12月20日,云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来,寒冬中,最值得投资的是学习,是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的…

php脚本防上多进程同时执行,Jorker

软件简介Jorker — 脚本多进程执行功能脚本多进程执行支持中断续运行内存过载保护定时报告进度高度可配置安装composer require jorker/jorker用法require_once(dirname(__DIR__) . /vendor/autoload.php);$manager new \Jorker\JobForkerManager(3);$manager->allot(funct…

手机秒变IoT设备?——巧妙利用阿里云物联网平台

什么?嵌入五行代码可以实现用户定位,用户在线数量统计,还能和云端消息交互! 没错得益于阿里云物联网套件创建设备免费,消息收费也只有百万消息三块六(先使用后付费,不满不要钱)&…

springboot3.x 集成持久层框架

文章目录一、通用部分1. 通用依赖2. 通用配置 yml二、 springboot3.x 集成通用mapper2.1. pom.xml2.2. yml2.3. mapper接口2.4. 启动类加MapperScan注解2.5. 启动类加ComponentScan注解三、 springboot3.x 集成通用Mybatis3.1. pom.xml3.2. yml3.3. mapper接口3.4. 启动类加Map…