对中国开发者最具吸引力的科技企业有哪些?快来为你 pick 的企业投票! 了解详情
写点什么

构建生产可用的推荐系统需要注意哪些问题?

2020 年 1 月 06 日

构建生产可用的推荐系统需要注意哪些问题?

虽然经历了几十年的研究和发展,推荐系统已经成了各种现代网络应用中不可或缺的组成部分,但是推荐系统的研究和应用仍然面临着很多重要而急迫的挑战,推荐系统的应用形式和场景也蕴含着更多的可能。本节,我们总结归纳目前推荐系统在研究和应用方面所面临的一些重要问题,同时指出推荐系统在研究和应用上的一些潜在方向,以使读者对推荐系统的未来发展拥有一些认识。


推荐系统面临的问题

1.推荐的冷启动问题

冷启动问题是困扰学术界和产业界多年的重要问题。对于一个全新的网络用户,系统中尚没有任何可以用来分析其个性化偏好和需求的商品购买或浏览交互信息,因此无法向其提供个性化的推荐列表。该问题在传统的基于数值化评分的个性化推荐方法中尤为突出,并与数据的稀疏性问题互为因果,这是由于网站内的新注册用户往往只对非常少量的商品给出过数值化的评分,很难通过如此少量的评分分析用户的偏好和需求。另外,在大数据环境下,数据的稀疏性显得愈加明显和严重,这进一步加重了冷启动问题给实际系统带来的负面影响。


目前,解决冷启动问题的方法主要包括如下几种。


(1)降维技术(Dimensionality Reduction),通过 PCA、SVD 等技术降低稀疏矩阵的维度,为原始矩阵求得最好的低维近似,但是实际系统中庞大的数据规模使得降维过程存在大量运算成本,并有可能影响预测和推荐效果。


(2)使用混合推荐模型的方法,通过取长补短弥补其中某种方法的问题。


(3)加入用户画像信息和物品属性信息,例如通过使用用户资料信息计算用户相似度,或者使用物品的内容信息计算物品相似度,进一步与基于打分的协同过滤方法相结合,以提供更准确的推荐。


另外,推荐系统中的小众用户(gray sheep)问题限制了系统在小众用户上取得较好性能。该问题主要表现为有些人的偏好与任何人或绝大多数人都不同,因而难以在大规模数据上采用协同过滤的方式为该用户给出合理的推荐。目前,小众用户推荐一般采用混合式的推荐模型来解决。例如,最常见的方法是把基于内容的推荐和基于协同过滤的推荐结合起来,挖掘小众用户在感兴趣的物品上的内容信息,并进一步结合可用的相似用户行为信息给出推荐。然而,该方案在解决小众用户推荐的问题上还远远不够,由于长尾效应的存在,系统在小众用户上的性能对整体能取得的性能有较大的影响,需要对小众用户推荐做进一步的研究和实践。


2.个性化推荐的可解释性问题

个性化推荐的可解释性是长期困扰学术界和产业界的重要问题。由于算法的复杂性和隐性变量方法的大量使用,算法所给出的推荐列表往往并不能得到较为直观的解释,也就难以让用户理解为什么系统会给出该物品作为推荐而不是其他物品。


当前的实际系统中往往简单地给出“看过该物品的用户也看过这些物品”作为推荐理由,这样的推荐理由往往无法令人信服,从而降低了用户点击和接受推荐结果的潜在可能性。在跨领域的异质推荐背景下,推荐结果的可解释性显得更为重要,因为缺乏直观可信的推荐理由将难以说服用户进入新的甚至陌生的网站查看异质推荐结果。如何将推荐理由的构建与系统所使用的推荐算法紧密结合,得到更细致、准确、有说服力的推荐理由,引导用户查看甚至接受系统给出的推荐,是学术研究和实际系统都需要考虑的重要问题。


3.推荐系统的防攻击能力

推荐系统如何应对恶意攻击(shilling attack)也是实际系统中需要解决的重要问题,该问题实际上是推荐系统中的反垃圾(anti spam)问题。例如,有些用户或商家会频繁地为自己的物品或者对自己有利的物品打高分,为竞争对手的物品打低分,甚至注册大量的系统账号人工干预某物品的得分,达到人工干预推荐系统推荐效果的目的,这会影响协同过滤算法的正常工作。该问题的被动解决方法是采用基于物品的推荐,因为在恶意攻击的问题上,基于物品的推荐往往能比基于用户的推荐具有更好的鲁棒性。作弊者总是较少数,在计算物品的相似度时影响较小。当然,我们也可以采用主动的解决办法,设计有效的垃圾用户识别技术来识别和去除作弊者的影响。


除此之外,推荐系统的研究和应用中还面临很多其他的问题和挑战,如隐私问题、噪声问题、推荐的新颖性,等等。急需对这些问题投入更多的研究和实践,从而不断完善推荐系统的性能和应用场景。


推荐系统的新方向

1.基于多源异质信息的推荐

长期以来,推荐系统的各种算法和研究都是基于数值化打分矩阵的形式化模型,该模型的核心是以用户打分为基础,而少有对基于用户文本评论语料进行个性化推荐的研究。基于文本评论的个性化推荐被很多论文提到,但是研究并不深入,这一方面限于文本挖掘技术的研究遇到很多难点,另一方面限于之前网络上积累的文本信息还不够多。随着 Web 2.0 网络的兴起,互联网上所积累的用户文本信息越来越多,已经成为一种不可忽略的信息来源,如电子购物网站中的用户评论、社交网络中的用户状态,等等。这些文本信息对于了解用户兴趣、发掘用户需求有极其重要的作用,如何充分利用这些数值评分之外的文本信息进行用户建模和个性化推荐具有重要的意义。


2.推荐系统与人机交互的关系

推荐系统与用户的交互方式也是相关领域内研究的热点方向。目前常见的实际系统一般以推荐列表的形式给出推荐,然而一些研究表明,即便是同样的打分和评价系统,如果展示给用户的方式不同,也会对用户的使用、评价、效果产生一定的影响。例如,MovieLens 小组第一次研究了用户打分区间、连续打分还是离散(如星标)打分、推荐系统主动欺骗等对用户使用推荐系统造成的影响。与搜索引擎一样,推荐系统的界面设计和交互方式也越来越受到研究人员的关注。


3.长尾效应与小众推荐

长尾效应在推荐系统中的理解和应用可以为进一步提高系统的推荐效果打开新的窗户。一个推荐系统的性能不能直接以预测评分的精确度测量,而应该考虑用户的满意度。推荐系统应该以“发现”为终极目标,而现存的一些推荐技术通常会倾向于推荐流行度很高的,用户已经知道的物品。这样存在于长尾中的物品也就不能很好地推荐给相应的用户了。但是,这些长尾物品通常更能体现用户的兴趣偏好。


所以,在推荐系统的设计过程中,不仅要考虑预测的精度,还要考虑用户真正的兴趣点在哪里。研究人员也开始考虑长尾效应在推荐系统设计过程中的应用,并考虑如何将长尾物品推荐给用户,以及如何为小众用户推荐合适的物品。


4.可解释性推荐

推荐系统的可解释性成为一个重要的研究课题。随着实际系统中的数据越来越多、规模越来越庞大、算法越来越复杂,包括推荐系统在内的智能决策系统变得越来越黑箱化,系统难以给出直观可信的解释来告诉用户为什么要做特定的决策。


在此背景下,推荐系统的可解释性变得越来越重要,研究人员正在试图构建可解释的推荐算法和模型,使得系统不仅可以给出推荐结果,还可以自动给出恰当的推荐理由。


5.推荐系统的商业价值

推荐系统所能实现的价值也是个性化推荐的一个重要问题。在已有的绝大多数推荐系统中,算法往往只关心准确率、点击率、购买率等指标,很多推荐算法也是围绕着对 RMSE、Precision、NDCG 等指标的优化而设计的。然而被推荐的物品未必会被用户购买,即便被用户购买,不同物品为系统带来的价值也是不一样的。因此,如何直接优化推荐系统对平台的价值也是一个重要的演进方向,有助于帮助推荐系统通过推荐恰当的物品,直接优化和提升系统带来的实际效益。


例如,阿里巴巴通过直接优化推荐列表的商业价值来构建推荐列表(Pei, et al.,2019),在这一方向上做出了尝试。


6.多平台协作式推荐

越来越多的生活项目日益网络化,在网络上造成了一个个信息孤岛:每一个网络应用平台拥有用户在该平台或该领域内的行为信息,了解用户在该平台和领域内的行为偏好,从而可以在该领域内给出个性化的专业服务;然而在不同平台和领域之间,尤其是异质领域(如视频和购物)之间,用户的行为线索并没有被打通,每一个平台和领域没有其他平台和领域的用户行为信息,也就难以给出平台之外其他领域的个性化服务。这些独立的信息孤岛将网络用户原本完整而流畅的生活时间线割裂,未能形成浑然一体的个性化服务流程,使得互联网本应在人们日常生活中所起的重要甚至核心作用大打折扣。


因此,如何由互联网所连接的各个系统协作式地发掘用户潜在需求,适时地给出跨领域的异质推荐结果和个性化服务成为推荐系统向通用推荐引擎方向发展的重要问题和研究前沿,并将极大地降低人们使用互联网的时间和精力成本,免去在各个独立服务之间进行切换和查找的麻烦。更重要的是,不同类型的异质商品或服务之间的信息联通和相互推荐,蕴含着全新的互联网运营和盈利模式。例如,通过从历史数据中进行任务挖掘,旅行机票订购网站可以通过异质推荐为酒店预订、车辆租赁、团队预订等多种潜在的关联网站带来流量,并从中获得额外收益;视频服务商可以通过异质推荐给出来自购物网站的商品推荐,从而实现虚拟产业收入与实物商品收入的结合,这对促进产业协作发展和产业整合具有重要意义。


本文内容节选自图书《大数据智能》,感兴趣的用户欢迎点击链接了解:https://item.jd.com/12603411.html?dist=jd


2020 年 1 月 06 日 11:591474

评论

发布
暂无评论
发现更多内容

最简单的JVM内存结构图

叫练

JVM 堆栈 Java虚拟机 堆栈溢出 内存优化

算法攻关 - 验证二叉搜索树 (O(n))_098

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 验证二叉搜索树

Python With 关键字和语句

HoneyMoose

公平

ES_her0

28天写作 3月日更

互联网人一天24小时在做些啥《打工人的那些事》

谙忆

网页设计指南

张鹤羽粑粑

28天写作 3月日更

10 个解放双手超实用在线工具,有些代码真的不用手写

比伯

Java 编程 架构 计算机 技术宅

【数独问题】入门题:判断一个数独是否有效 ...

宫水三叶的刷题日记

LeetCode 数据结构与算法 面试数据结构与算法

多元化:为什么会产生不良资产?

boshi

战略思考 七日更 创业失败启示录

翻译:《实用的Python编程》05_00_Overview

codists

(28DW-S8-Day20) 以太坊账户

mtfelix

28天写作

区块链人才观——和谐理念

茜茜公主

3月日更

62图带你入门Docker

我是程序员小贱

容器 面试 3月日更

算法喜刷刷之验证二叉树的前序序列化

Kylin

算法 3月日更 刷题笔记

CloudQuery, 一款基于WEB的数据库客户端(转自杨建荣的工作笔记)

CloudQuery社区

喜讯 | 音视频云服务商拍乐云荣登「2021值得关注的中国教育公司」榜单

拍乐云Pano

音视频 在线教育 互动课堂 白板 教育科技

分销的智能变局,华为好望云服务的铁索连环

脑极体

3月12日学习笔记

Nydia

【技术干货】如何评价一款App的稳定性和质量?

友盟全域数据

性能优化 App 应用崩溃 anr 友盟

云边协同类型

lenka

3月日更

快的不止一点点!阿里首推Java性能优化全栈笔记,极致经典!

程序员小毕

Java 程序员 架构 面试 性能优化

使用Assembly打包和部署Spring Boot工程

互联网架构师小马

微软的各种考试,不知道是不是真的“香”

Tango

3月日更

DCache 分布式存储系统|List 缓存模块的创建与使用

TARS基金会

MySQL nosql 微服务 分布式缓存 TARS

闭关3个备战美团、字节、蚂蚁,成功斩获Offer!自曝狂刷5遍的面试题!

Java王路飞

Java 程序员 面试 分布式 大厂

诗歌动画、酸奶麻将......户外广告营销的玩法多!

󠀛Ferry

七日更 3月日更

推荐一款小众且好用的 Python 爬虫库

星安果

Python 爬虫 RoboBrowser

手机高端化,需要不同却被认同

脑极体

Wireshark 数据包分析学习笔记 Day8

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

05|PPT教程|PPT 有哪些类型?

青城

PowerPoint 3月日更

二分查找以及变体

一个大红包

3月日更

滴滴 Logi 日志管理与分析平台

滴滴 Logi 日志管理与分析平台

构建生产可用的推荐系统需要注意哪些问题?-InfoQ