380 likes | 749 Views
The Twitter World. 2010 年 11 月 9 日. 指导老师:赵燕平 张华平 主讲: 欧阳旭 孙隽. http://hi.baidu.com/drkevinzhang/. 策划: 孙隽 欧阳旭 米志付 赵伟东. What Is Twitter. ICTCLAS & Human-based computation. Coding Language In Twitter. Twitter Construction. Searching Technology In Twitter. Web 2.0 :一个时代的诞生.
E N D
The Twitter World 2010年11月9日 指导老师:赵燕平 张华平 主讲: 欧阳旭孙隽 http://hi.baidu.com/drkevinzhang/ 策划: 孙隽 欧阳旭 米志付 赵伟东
What Is Twitter ICTCLAS & Human-based computation Coding Language In Twitter Twitter Construction Searching Technology In Twitter
Web 2.0:一个时代的诞生 Web 1.0 1. 用户仅仅是获取信息 2. 很少能对网络做出贡献 Web 2.0 1. 不仅仅是阅读者(Negative Receiving ) 2. 更是创作者(Positive Creating) 3. Collective Intelligence
Web 2.0 主要代表技术 Blog——博客/网志:WEB BLOG Instant Publication;Communicate with Friends RSS ——是站点用来和其他站点之间共享内容的一种简易方式(也叫聚合内容)的技术。 WIKI——百科全书 ,Wiki--一种多人协作的写作工具。Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨。
Twitter 的由来 Evan Williams等人在2006年推出了Twitter服务 缺少同步服务 BLOG 页面信息分散 讨论聚拢性不强 • 形容鸟的叽叽喳喳声 • 形容人说话议论时的声音
Twitter 的机理 Twitter (一种服务) Web2.0模式 (互联网平台) 参与者自行组织其中的内容(Web Maker) Followers 关注某一账号所发布内容的其他Twitter用户 Following 主动“追随”别人
Twitter 大显身手 2008年的美国总统大选,Twitter视作是奥巴马竞选成功的重要因素之一。 Follower Following 奥巴马 131151 135229 希拉里 5996 0 Twitter的秘密在于你关注了多少人,而不在于有多少人关注你. 要尽可能多地去追随更多的人,它是一个很好的从别人那里获取信息的来源
Twitter 大显身手 2009年6月,当杰克逊被救护车抬出家门时,有位路人用手机向Twitter发布了一条消息:天哪,我在杰克逊家门口,(看到)有人被抬出去了,肯定是发生什么事了。 事实上,连CNN、美联社的报道都是援引Twitter上的信息。 从杰克逊的离去,所有加入传播的人都开始在想:140字内,我该说些什么?我该传播一些什么? 而新媒体的意义,也许便从宣传式播、挖掘式传播发展到主动式传播
Twitter设计语言 基本概念回顾: 面向对象(Object Oriented, OO):对象是人们要进行研究的任何事物,从数,人到飞机。类:对象的抽象是类,类的具体化就是对象。(以潘笛和人为例) JVM: Java Virtual Machine(Java虚拟机),它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java 语言在不同平台上运行时不需要重新编译。 线程:thread。。线程(thread),有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。 静态类型语言:是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行。例如C/C++/Java/C#动态类型语言:是指不需要进行变量/对象类型声明的语言,一般情况下不需要编译( 但也有编译型的)。例如 PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等 XML:(Extensible Markup Language)即可扩展标记语言,Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。XML与 HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又需访问源码,或理解内部工作机制的细节。
Twitter工程师对Ruby的不满 Ruby,一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言,由日本人松本行弘开发。 Ruby 是完全面向对象的:任何一点数据都是对象,包括在其他语言中的基本类型,每个过程或函数都是方法。 1)Ruby不太合适开发长时间运行(Long-Live)的服务器端程序,但JVM很合适,因为Java有10年的经验教训和优化,Scala是运行在JVM上的,所以天生就有了这个优点; 2) Ruby没有很好的线程(Thread)支持,Ruby多线程会限制在一个CPU上且Ruby VM的垃圾收集支持也没有Java先进,就造成每个Ruby进程长时间运行后使用的内存月来越大; 3) JRuby缺乏使用广泛的Rem支持(很多优秀的Ruby包都需要C扩展,它们并没有移植到Java),而且性能也不太理想,比MRI(C实现的Ruby VM)要慢
从思考到选择 Scala 理想中的编程语言: ◆快速◆函数式◆表达能力◆静态类型◆并发◆优美◆轻量
Scala 的特性 • Type inference that does not suck.(静态类型) • Immutable save where mutability fits(面向对象,并发,异步) • First-class functions, because we are classy people(把函数写成没有名字的文本) • Traits, because inheritance isn’t always what you want(引入新方法) • Pattern matching: case statements on crack • XML literals and query methods make working with XML positively tolerable(JavaScript+JSON ) • Actors: a nice way to handle concurrency(but not the only way)
平台构成—概述 手机 Twitter.com 第三方 Twitter平台
进入Twitter架构 • 一些架构数据 • Twitter目前有105,779,710注册用户数; • Twitter现在每天有300,000的新注册用户数; • 每月有180万独立访问用户数; • 75%的流量来自Twitter.com网以外的网站; • 每天通过API有30亿请求总次数; • Twitter用户每天平均有5500万次tweet; • 37%的活跃用户为手机用户; • 超过一半(60%)的tweet来自第三方应用;
核心业务 • Following和Be followed • 1. 为每一个注册用户订制一个Be-followed的表,主要内容是每一个follower的ID。同时,也订制一个Following的表,主要内容是每一个following作者的ID。 • 2. 当用户打开自己的个人空间时,Twitter先查阅Following表,找到所有following的作者的ID。然后去数据库读取每一位作者最近写的短信。汇总后按时间顺序显示在用户的个人主页上。 • 3. 当用户写了一则短信时,Twitter先查阅Be-followed表,找到所有followers的IDs。然后逐个更新那些followers的主页。 • 如果有follower正在阅读他的Twitter个人主页,主页里暗含的JavaScript会自动每隔几十秒,访问一下Twitter服务器,检查正在看的这个个人主页是否有更新。如果有更新,立刻下载新的主页内容。这样follower就能读到最新发表的短信了。
架构思想 发布消息 获取消息 Mongrel Rails Server Mongrel Rails Server 40%hits Kestrel (MQ) 缓存聚合器 Page Cache Items/user (Varnish) 95%hits 99%hits 95%hits Vector Cache Tweet/user Fragment Cache Items/tweet Row Cache Items/user MySql
架构1—缓存 • 每个tweet平均被126个用户跟踪,所以这里有着明显的缓存需求; • 只有API有着一个页面缓存,当每次从一个用户那里来了一个tweet时就会失效,而应用的其它部分都是无缓存的;
架构1—缓存 • 改进进程 • 1、创建一个直写式向量缓存Vector Cache,包含了一个tweet ID的数组,tweet ID是序列化的64位整数。命中率是99%。 • 2、加入一个直写式行缓存Row Cache,它包含了数据库记录:用户和tweets。这一缓存有着95%的命中率并且使用了Nick Kallen的名为Cache Money的Rails插件。 • 3、引入了一个直读式的碎片缓存Fragment Cache,它包含了通过API客户端访问到的tweets的序列化版本,这些tweets可以被打包成 JSON,XML或者是Atom的格式,有着同样是95%的命中率。 • 4、为页面缓存创建一个单独的缓存池Page Cache。根据Evan的说法,该页面缓存池使用了一个分代的键模式,而不是直接的失效;
架构1 用三层结构表示
关于网络Tag的技术 加标签(tag)是一种网络搜索技术: 以Flickr为例: 图片上传者可自己定义该相片的关键字,也就是“标签(Tags)”(是元资料(Metadata)的一种格式),如此一来搜寻者可很快的找到想要的相片,例如指定拍摄地点或照片的主题,而创作者也能很快了解相同标签(Tags)下有哪些由其他人所分享的照片。 Girl Mother Hedgehog Lawn Image Retrieval Image Tagging
关于Twitter Hashtag技术 # 标签还是很有的。加 # 标签,可表示在谈论某个特定话题;还有那些缩写的 # 标签消息。比如 #sxsw,表示在德州奥斯丁举行的西南偏南音乐节;还有 #nptech,表示非赢利技术(non-profitable technology)
Twitter 风靡之因 内容以简短的文字为主 可快速发布的内容 手段多样化,包括Web、客户端和手机 网站主交互模式是“分众型广播”,简单, 且就在首页为主 可快速发布的网站结构 网站交互手段即时且简 单,主要是即时回应 Twitter 网站本身是一个 开放平台,方便大量第三方应用植入。 病毒式传播设计 该产品如果只有你一个人使用,没法玩:你要玩好它,你必须要拉更多的朋友来
Twitter 获取信息 信息按照时间顺序排列,越新的信息越靠前 通过点击它提供的链接地址,我们就可以看到Dell 笔记本电池销售页面,达到按图索骥的效果。 这样一来,热门产品的型号、报价与用户反馈等重要信息便一目了然了。
Twitter 即时信息搜索 由于Twitter 的信息发布属于即时性质,所以这种关键字搜索便是关键字的即时搜索 可以使用RSS 订阅的方式来让Twitter 的搜索引擎将最新的结果自动发送到自己的订阅器上面
Twitter 即时信息搜索 Google 阅读器。确定之后,再次登录进入Google 阅读器,就可以随时看到Twitter 上面关于Dell 的最新搜索结果。
Twitter社交网络进行可视化 通过观察用户之间公开交流,可以看到某个用户与哪些人之间进行了通信,他们探讨了哪些话题。 通过对双方交流频率的统计,可以了解他们之间的关系紧密程度。 将某个用户与所有其他用户的交流进行分类统计,就可以获得该用户社交网络的概貌 Mailana 是一个统计社交联络信息的网站 利用来自于Twitter平台的数据,通过 统计与数据挖掘的方法,对某个用户 的社交联络信息进行可视化。
人本计算(Human-based Computation) Countless Computing Cost Accumulation is Enormous Surf Internet Produce Online Computing Cost Let’s make digitalization as an Example 1. The former 129 years’ material are not digitalized 2. Scanning the earlier material Dividing the text image into simple words 3. Strip and distort the words into the identifying code
人本计算(Human-based Computation) Collects very mini power of huge number of people and it can help finish large projects while single human is not able to Traditional Method: System catch intent from human, processing according to certain logic and send the result back to users. Human-Based method: System leaves some specific processing logic to the user. Then extract the users’ action feature to derive the final results.
人本计算在图片检索上的应用 1. Upload the images to the image sharing website. 2. The website distributes the images to different users 3. Users tag the images with their own methods Child Hedgehog Mother Girl Woman Hedgehog Hedgehog 4. Backstage system utilizes suitable algorithm to process the tags to extract the suitable keywords
ICTCLAS分词系统 Primary Chinese String Element segmentation Fifth HMM Level Segment unit sequence Optimizing segmentation chart Segmentation for N-shortest path Optimum N results Forth HMM Level Simple new words recognition Duality segmentation chart Cascade new words recognition CHMM based on Class Third HMM Level Second HMM Level Word class CHMM recognition First HMM Level Morphology Analysis Results
Thank you Contact Email: kevinzhang@bit.edu.cn Welcome to visit my blog http://hi.baidu.com/drkevinzhang/