个性化阅读的过去、现在和未来(一)·概述

简介:

个性化阅读的过去、现在和未来(一)·概述

郑昀 20110414

    以前曾经撰文讲过Topic Engine的过去、现在和未来。Topic Engine是一个生生不息的应用方向,因为从News Group、邮件列表、聊天室、论坛、Google News、博客圈子、群组。。。,人们一直因话题(有人也叫主题,英文为Topic)而聚集而交友,话题一直在生生不息层出不穷,组织形式在不断变异。

    现在再讲讲个性化阅读的过去、现在和未来,也算是这个话题的延续。

一、概念定义

    泛泛地说,只要是根据用户的历史行为(发言、标签等数据,点击流、分享、收藏、推荐、跳过等动作),动态决定哪些资讯内容(论坛帖子、新闻资讯、博客、微博、等)呈现给用户,都叫个性化阅读。

二、历史阶段

2005年~2007年:

    这个阶段还没有Social数据,所以:

首先需要用户选定对哪些分类频道感兴趣,比如历史、人文、明星、体育等。稍微聪明一点的做法,不让用户选分类,而是问用户几个问题,然后就大致匹配出用户的兴趣点。

其次,系统决定给用户展现哪些分类的资讯。

随着用户点击,资讯实时不断变化,点击越多,系统越了解用户的阅读喜好。

这阶段的问题是:

1、利用成熟的协同过滤算法,但由于都在追求实时计算,运算量较大,有一定技术门槛;

2、对用户背景还是不够了解,仅仅通过用户点击流终究太浅。

3、普遍存在冷启动问题。

2008年~2010年:

    有了Twitter,有了Facebook,有了Social Graph,个性化阅读器纷纷利用Twitter/Facebook帐号登录,展现的资讯是用户自己好友的Timeline聚合,主要是合并那些被诸多好友推荐的热点链接、图片和视频。不过,这波潮过去之后,像http://thoora.com/ 、http://twittertim.es/等都没有找到足够的用户群,还没有像2005年杀出来的TechMeme那么成功。

这阶段的问题是:

1、依赖于Twitter/Facebook的Social Graph,依赖于好友推送,可供阅读的数据过少,可供计算的数据过少,限制了自身应用的发展;

2、除非与Twitter保持良好的关系,能拿到 Streaming Firehose 接口,提前积累用户数据,否则用户Timeline信息需要积累一段时间,造成大量用户登录后没有可阅读的数据。

2010年:

    FlipBoard杀出重围,自动排版技术独步天下。

2011年:

    随着国内新浪微博、豆瓣等拥有Interest Graph(兴趣图谱)+Social Graph(社交图谱)海量数据的网站崛起,成为主流数据源,如何把2005年到2010年这些探索择其优点都整合起来,成为一个大课题。

    Zite的横空出世,被众人热捧为“Flipboard Killer”,强调的是基于社会化关系的个性化推荐阅读方式。而Flipboard目前的战略重点主要还是集成各种社会化应用及内容源,并以其创造性的阅读体验方式展现出来。国内已经有几家也在Zite的方向上,尤其是iPad应用上,动了起来。

social media

三、热门?还是个性化?

    在2009年SXSW大会上,SheGeeks 直言不讳:『

热门内容(Popularity)已经过时了,某种程度上令人讨厌。

我不想知道什么是最流行的,Techmeme已经帮我做到了。我想知道什么东西和我相关。我们需要更多“相关性过滤服务”。

    此时,会有几种做法:

1、以热点资讯为主(先有蛋),以社交图谱为辅(后引入鸡):将社交图谱引入热点资讯阅读中,像Quora(或中国的知乎)一样按人来隔离不同话题(不同热点)的讨论。Zite的方式类似于此。

2、以社交图谱为主:组织一度好友和二度好友的数据,做好数据挖掘。曾经有人在很久远的年代说过,“建立一个Social Network,每一个用户都推荐出自己喜欢的内容,那么被推荐得最多的,就一定是大多数人最受欢迎的内容。如果把这些推荐内容的用户区分成不同的群体, 就会得到特定群体欢迎的内容。Digg的想法就源于此。不过,这需要用户有足够的动力去推荐自己喜欢的内容,否则,Network也无法形成”。

3、以为阅读中心:有人很多年前说过“许多人的blog阅读体验和阅读闲谈专栏是相似的,他们选择读什么不读什么的判断依据不是话题,而是作者,因为只有这样才能保证阅读到的内容的质量”。

4、以Topic为中心:用户定义或发掘用户感兴趣的Topic,只要是一篇文章谈及了用户关注的某一个主题,那么就推送给他。或者来自于不同人的文章集中地探讨某个话题,那么把这些文章自动聚合为一个Dialogue(虚拟对话),推送给用户。

    除了第一种做法之外,我曾经尝试过其他三种做法。在中国的大环境下,要么数据过少,要么数据质量不高,都不能很好地做到有“发现、探索”、“新鲜、有趣”的冲击力。

    当Social能完整地提供三重元素时:
1、 你的身份标识(Indentity):Who you are;
2、 你的联系人或圈子(Contacts):Who you know;
3、 你的网际行为(Activities):What you do 。

    那么,Social Graph,Interrest Graph,再联合热点资讯,揉入2005年以来的协同过滤算法,至少能做到make something people want吧。

四、Interest Graph的变化

    以前,郑昀针对不同人群做的信息聚合,单纯从内容分类(也就是靠自然语言处理的自动分类算法)做,属于从信息本身下手。这种方式有一个问题:Social Media Iceberg
   某一类人群,虽然有一些集中的阅读点,但还有边缘的共同兴趣。举例,如IT人群,虽然共享和推荐的大多数是IT科技文章,但也涌现出很多受欢迎的兴趣点,如韩寒的文章,如冷笑话,如创意趣味产品。
    这也就是为何基于 Tag 方式的阅读模式,以及基于指定主题的追踪模式,都不容易持久耐用的原因。一个人群的阅读兴趣点是比较模糊的。对于一个人来说,如果一个信息过滤器供应点科技,供应点娱乐,适当补充些人文历史,就能保证一定的粘度。
    所以,郑昀后来觉得从内容分类,由于不引入人工,只靠比较大条的自然语言处理分类,对于博文、微博、论坛帖子等文字质量不稳定的信息会分得很粗糙,所以改变思路,从人群分类开始做。
    也就是,划分出目标人群,依靠人群来挑拣信息,NLP算法为辅。这样有一个额外的好处,人群的兴趣点在动态变,短期地变,长期地变,但由于锁定人群,所以筛选出来的信息也在变。而相比之下,自动分类做出的信息,隔几个月或半年后,就要重新训练机器,因为往往信息包含的语言特征变了。
    这也是信息聚合中的一个实际考虑点。

    现在,中国也有了自己的Interest Graph,比如新浪微博,它的数据天然就表明一个人的兴趣喜好,以及连续波动,都可以跟踪和挖掘出来。以前依靠遍历Twitter、Google Reader、FriendFeed的好友所得到的社群分离,现在通过新浪微博等Social Graph都可以得到类似的。

五、人员配比

    一般我对这个领域(Topic Engine啦、个性化阅读啦、Meme Tracker啦),研发人员配比是这么建议的:

爬虫2人,
文本挖掘4人(新词发现+分词+分类一个人,实体识别与发现+情感趋势分析一个人,事件识别与发现一个人,User Interest Profile一个人),
数据挖掘和分析2人,
Web前端展现(包括手持设备)3人,
产品经理1人,
12人是一个比较不错的开局。

待续。敬请期待。

郑昀 于北京报道

目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:六十九、Bootstrap采样在大模型评估中的应用:从置信区间到模型稳定性
Bootstrap采样是一种通过有放回重抽样来评估模型性能的统计方法。它通过从原始数据集中随机抽取样本形成多个Bootstrap数据集,计算统计量(如均值、标准差)的分布,适用于小样本和非参数场景。该方法能估计标准误、构建置信区间,并量化模型不确定性,但对计算资源要求较高。Bootstrap特别适合评估大模型的泛化能力和稳定性,在集成学习、假设检验等领域也有广泛应用。与传统方法相比,Bootstrap不依赖分布假设,在非正态数据中表现更稳健。
606 113
|
2月前
|
弹性计算 人工智能 自然语言处理
QoderCLI 智能编程实战指南:5 分钟部署,一句话生成服务
QoderCLI 不只是工具——它是你 24 小时在线的智能编程伙伴,秒级理解项目上下文,一行指令生成完整功能模块,测试、解释、补全一气呵成。开发效率飙升 300%,代码质量肉眼可见提升!
QoderCLI 智能编程实战指南:5 分钟部署,一句话生成服务
|
8月前
|
JSON API 数据格式
淘宝商品评论API接口,json数据示例参考
淘宝开放平台提供了多种API接口来获取商品评论数据,其中taobao.item.reviews.get是一个常用的接口,用于获取指定商品的评论信息。以下是关于该接口的详细介绍和使用方法:
|
小程序 JavaScript
小程序中的数据双向绑定和Vue的有什么区别
小程序中的数据双向绑定和Vue的有什么区别
193 1
|
4月前
|
Ubuntu 编译器 开发工具
在Ubuntu系统上搭建RISC-V交叉编译环境
以上步骤涵盖了在Ubuntu系统上搭建RISC-V交叉编译环境的主要过程。这一过程涉及了安装依赖、克隆源码、编译安装工具链以及设置环境变量等关键步骤。遵循这些步骤,可以在Ubuntu系统上搭建一个用于RISC-V开发的强大工具集。
478 22
|
4月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
344 2
|
8月前
|
开发者
鸿蒙仓颉语言开发教程:网络请求和数据解析
本文介绍了在仓颉开发语言中实现网络请求的方法,以购物应用的分类列表为例,详细讲解了从权限配置、发起请求到数据解析的全过程。通过示例代码,帮助开发者快速掌握如何在网络请求中处理数据并展示到页面上,减少开发中的摸索成本。
鸿蒙仓颉语言开发教程:网络请求和数据解析
|
8月前
|
存储 监控 安全
电商API接口安全防护全流程详解:认证加密筑牢安全防线
本文深入解析电商API接口安全防护,涵盖认证、授权、数据加密及其他安全措施,探讨如何构建全方位的安全体系,保障电商平台数据与业务安全。
|
前端开发 JavaScript 网络架构
实现动态路由与状态管理的SPA——使用React Router与Redux
【10月更文挑战第1天】实现动态路由与状态管理的SPA——使用React Router与Redux
425 95