Monthly Archives: January 2012

做一个自由的灵魂

信息化的时代,意味着什么?可能意味着如果你够糗,你的事迹会传遍这个世界的每一个角落。我们被这个时代深深的改变了,享受着从未有过的信息洪流,facebook、 MySpace、 twitter 亦或是微博、人人、微信、手机简讯等等等等,由此而来引发的政府监管、网络暴力、人肉搜索、五毛、美狗等等新时代的产物,试想你会多大程度地被这些信息影响着?

一件事,从不同的角度来看就会有不同的看法,我不想举例,因为每个例子其实都会有我自己的主观看法,我们不是当事人,无法了解每一个细节,而尤其是现实社会并没有电视中那么险恶坏到底的罪人,更没有完美的好人。

媒体在其中充当着一个重要的角色,媒体的采访,媒体的评论,要做到客观?每一份媒体都是由人组成,我一直坚信由人来说、做的东西不会是完美,都会有自己的利益在上面,甚至很多媒体为了博得眼球会扭曲一些显而易见的事情。现代的媒体,我们不能指望看到最客观的报道,应该尽力去了解每一方面的观点,容纳每一方观点。

亦或者我们了解的事情的每一个细节,但是我们自己内心中有一个评判的标准,什么是好,什么是坏,每个人都有不同的道德观。

当我们轻而易举地认为富人、明星就应该多捐,甚至为此辱骂、记恨他们的时候,有没有想过我们可能是在以道德的名义耍流氓?

当网络上、周围的人们充斥的对其他集体的某种仇恨的情绪,有没有想过,我们可能仅仅是在维护自己的利益最大化,抛弃了我们自以为一直拥有的公平判断?

有一种人皆为自私的观点我很是赞同,你爱哪个国家?自己的国家。你爱哪个省?自己的省。你爱哪个市?自己的市。你爱哪个家?自己的家。最后都归并到爱自己。你做什么事都其实是有目的的,帮助他人可能是有求于回报,否则则是愉悦自己,体会别人感受帮助的快乐;主动承认自己的错误,比如拾金不昧、比赛中主动告诉裁判是自己的错误,更有可能是为了不让自己收到内心的谴责;你报效祖国、开发西部,是为了让集体更好,提升自己的荣誉感、集体自尊。

如果我们假设有上帝这么一个角色,如果我们站在上帝这个位置来俯视人类社会的时候,会不会有种想笑的感觉,人类社会有这么多荒诞可笑的事情发生,他们把自己分成了不同的民族,不同的国家,把自己由皮肤的颜色又进行了划分,这么做的目的仅仅是为了找对敌人,然后竞争;他们制定了一种规章制度,称之为法律,并且赋予了这个规章制度一种人为寄托的精神,说什么为了维护法律的尊严;他们常常说神圣不可侵犯、自古以来,殊不知几亿年前他们来自同一个母体,他们发源地只有一小块领土;他们有一种集体精神,为了大家的利益,牺牲小我的利益,当然也不能牺牲的太过分了,然而目的其实也是大家的利益提高了,分均到个人利益的提高,亦或是集体的自尊心做怂。他们对集体也有详细的划分,一家三口的这种小集体,亲属集体,朋友集体,城市集体,省集体,国家集体,他们最后想到的才是人类集体。

人类更是有很多莫名的自尊,他们会自主地掩盖自己的缺点,夸赞自己的优点。当指责他人时,他们有理有据,然而情况相同的发生在自己或者自己所属的集体的身上时,他们又会抛弃自己的道理逻辑。有时候我在想“报恩”这个词,是不是仅仅是为了以后还会获得相应类似的帮助,国家与国家之间,这种利益冲突显得尤为突出,没有永远的敌人,更没有永远的朋友。为什么希望自己的国家,自己的省市繁荣富强,难道不是为了分均到自己的利益或分均自己的自尊?当国际主义战士帮助我们这个集体时,我们高度赞扬,巴不得能有更多的来帮助,但是当我们的一小撮分子帮助他人时,又是怎样的一种情况。

为什么很多在国内天天骂这骂那的跑到国外后突然变得很爱国?怎么说呢,我自己说我家的事或者和我家里人讨论说我家的事——可以,你一个外人说我家的人是不是和我对立。于是乎就有大清国的太监说自己心甘情愿,指责外国大使无权说三道四。一个人到了一个地方,或者到了哪里都会首先找到自己的对立面,他们是白人,他们是别的国家,他们鄙视我们的制度,他们认为我思想迂腐,他们内心把我当成敌人,凭什么?但时间久了融入之后情况就又发生了变化。这种集体之间的冲突,细分最终会细分到个人与个人的冲突,每个人都是冲突的个体,周围都是敌人。

我们再从另一个角度来看,冲突的个体,冲突的集体,这种复杂的冲突圈子正是人类社会总体进步的动力。正是有了国家与国家的区分,省与省的区分,民族与民族的区分,人与人之间互相的对立,有了竞争。国家会为以前的侵略仇恨而奋发图强,民族会为曾经的种族灭绝而奋发图强。面对一帮愚人下属,你是领导人,为了让大家都获利亦或是自己获最大利怎么办?教会他们那种完美的道理太难了,但是人其实都很自私啊,那么灌输简单的仇恨、对立、竞争、自尊思想就会蛮简单的。没有敌人,我们就造一个敌人。在国与国之间的冲突面前,人们注重自己国家的利益最大化,满不讲道理,这种集体的自尊思想可见一斑。人们牺牲自己的个体利益,要么是被逼的(担心不这么做自己的利益会更受损),要么是整体利益提高了,分均到自己的利益也有相应的提高,要么就是寄希望于未来,未来自己的利益会提高,这里说的利益当然那包括什么自豪感等等。

那么这种对立、集体、自私的思想就是错的吗?没有对与错,但是我认为作为有思想的人不能完全认同任何观点,应该有自己的想法。或许我可以乐观地认为世上很多宣扬集体思想、煽动仇恨、宣扬自尊的都是非常有思想,已经清楚了只有这样宣传,教育世人才能够推动世界的进步。

说了这么多,我们究竟应该怎么做?在行为上,人皆自私,我们依旧做自己利益最大化的事,我们依旧做让集体尊严、利益最大化的事。面对其他普通的人,与其费劲口舌给他讲一堆大道理,反倒不如给他灌输仇恨、尊严、道德、集体利益思想,倒也简单,其实也是帮助实现自己利益的最大化。面对另一个集体成员的挖苦嘲笑,我们也就能坦然面对,想想他只不过是实现自己利益最大化的一枚小卒。尝试找找和他重合的集体,找共同的异类集体,和他就站在一起了,如果实在找不到我们重合的集体,那只有等到外星人攻击地球,人类就能够团结一些,找到了一个属于全人类的大集体。

而在思想上,我只想说,我们应该不被任何的已有思想束缚,我想做一个思想的局外人,不被任何政权、尊严、仇恨、大局观、道德影响,做一个自由的灵魂。

原创文章,转载请注明: 转载自yongxiu

本文链接地址: https://yongxiu.net/201201/05241.html

搜索引擎内容相关性

最近在看搜索引擎相关书籍,在这里整理下几个IR (Information Retrieval) 的相关算法,便于以后详细分析和学习。这篇打算介绍下几个算法的大概,以后的几篇详细介绍每个算法的使用还有中文分词算法等。

什么是Relevance?首先我们知道互联网有数以万计的网页,每张网页都有内容。作为搜索引擎,它的任务就是通过用户输入的关键词,理解用户的意图,找到用户想找的那张网页内容,将用户最可能需要的网页链接排好序呈献给用户,Relevance 表示的就是用户输入的关键词和每张网页的相关程度,这是一项最关乎用户体验的指标,一个搜索引擎的Relevance 做的越好,说明它的搜索结果排序越好,用户往往在第一项或前几项就能找到自己的期望内容,显然用户就更偏向于使用这款搜索引擎。

不仅仅用在搜索结果,通过Relevance 我们还能再搜索结果中插入广告,将广告放在右侧或上面,这就要求广告的内容和搜索关键词相关程度越高越好。需要注意的是搜索引擎厂商不仅仅会考虑每个客户对关键词的出价是多少,还会考虑如果投放这家客户的广告,用户观看、点击这则广告的效果如何,因为首先广告分几个等级,投放后用户观看到了就需要钱,而如果用户点击的话需要更多的钱,用户如果点击这则广告、甚至点击之后出现购买更能使搜索引擎厂商受益。例如一个客户出一万元买了一个关键词“鞋子”,而他这个广告是关于路由器的,而另一个客户只出一千元,但他的广告是关于鞋子的,这个时候用户点击这则广告的概率显然要大的多,而且很可能还通过点击这则广告购买了产品,路由器的基本不会点,搜索引擎反而赚的少了,总体来说这个时候如果出鞋子的广告,不仅用户体验(找到自己想要的)更好,而且搜索引擎赚的更多。

不但如此,我们还可以通过像Google Adsense 的这种平台,发布分享广告,帮助中小网站获利,这个时候更需要Relevance,通过Relevance 算法我们能够找到对应于一张网页的内容最适合这张网页的广告,什么是最适合,和内容相关(当然还要考虑很多其它因素:用户当前通过搜索什么关键词进入到这张网页、用户所在的地区,如果还能结合用户通过社交网络发布的状态、他好友的选择就更好了)!用户看到文章后看到广告能够对广告有印象,甚至去点击。当然也有一些广告无需和内容太相关,例如Nike 的广告,它甚至都不期望用户去点,因为Nike 的广告更多的是希望能对用户产生印象,用户看到Nike 的广告能在下次购买运动品牌的时候更喜欢选择这个品牌。

以上展示了Relevance 的重要性,我们能看到它不仅仅关乎一款搜索引擎的好坏,更关乎这款搜索引擎的盈利,它的重要性可见一斑。

一说到搜索结果排序,可能很多人首先想到的就是PageRank,诚然PageRank 对搜索结果的排序起了非常大的作用,有了Google 这样伟大的公司。根据PageRank,PR值越高代表这张网页质量越高,高质量的网页排在最前面往往符合用户的需求,但是有两点:首先PageRank 是建立在HyperLink 之上的,对于一堆独立出来的,或者说没有HyperLink的文章内容,我们需要其它的算法来判断找出用户最想要的文章;在现代的搜索结果排序中我们不能仅仅依靠PageRank,Relevance 中的很多算法能帮助找出用户之最想要。

基本需求已经确定,看看我们手头有什么数据,从程序输入输出的角度来看我们要做出什么,输入是什么?海量的网页内容,英文的网页包括由单词组成的文章,中文的假设也已经分好词都是由词汇组成的文章,还有就是用户输入的关键词,当然这个关键词也是经过处理好的。输出时什么?尽量多的不遗漏的和关键词相关的网页链接,最重要的是它们和关键词的相关性(前后顺序)。

初始工作,海量的网页内容和用户的输入都有一个初始的修改工作,例如将一些is, are, I 去掉,这些词过于常见,基本每张网页都会出现,不应纳入我们的检索系统。中文的文章比较头痛,需要进行分词操作,因为检索的过程必须是以词汇为单位,例如上段的第一句话“基本需求已经确定”,需要被分解成“基本/需求/已经/确定”,这样当我们搜索“基本”的时候,可能就会出项上述这句话的结果。建立索引,将这些词汇建立一张表,通过这张索引,我们能够很快地找到这篇文章等等。

布尔检索:对用户的输入关键词检索,查看每张网页是否有上述的关键词,如果有那么这篇文章就符合要求,我们就要显示出来,缺点明显,类似于一个Find 工具,区别不出两篇文章都包含用户输入的关键词的差别。

向量空间检索:考虑权值,对于每个关键词,判断这个词在一篇文章中的权值,权值的算法有很多,例如我们可以将权值简单地考虑成出现的次数,还可以考虑一个词的重要性,重要性分数乘以出现的次数,没有这个关键词则权值为0。根据检索的词,判断谁的总分数最高,则它最符合要求。

BM25算法:用公式描述的手段,基于海量的数据,计算每个关键词分数,文档的分数,相应于检索关键词计算它们相关性程度。基本公式

2ddc5e204a1aa0069ca9c744b39fa3eb

9e44aac1ad6e4fd74bc1d4f1afabb401

公式1:score(DQ), 我们所要计算的评分,即为给定搜索关键词Q(Query) 和给定文档D(Document) 的相关程度,分数越高表示相关度越高。f(qi, D):在给定文档D 中,某一个语素qi 出现的频率。nn 个关键词。|D|:给定文档D 的长度。avgdl,索引中所有文档长度。另外两个参数k1 b 用来调整精准度,一般情况下我们取k1 = 1.2 ~ 2.0,b = 0.75。

公式2:用来计算公式1中IDF(qi ) 的值。N,索引中文档的总数目。n(qi ),索引中包含语素qi 的文档的总书目。

Query Likelihood Model: 基于一般语言模型的文本检索,一般来说语言模型的研究任务是:已知文本序列中前面(i-1) 个词汇,第i 个词汇为单词w 的可能性有多大。统计语言模型,Ponte 和Croft 最初提出的语言模型检索方法现在经常被称为“查询条件概率模型”。这个模型假设用户头脑中有一个能够满足他的信息需求的理想文档,用户从这个理想文档中抽取词汇作为查询条件,用户所选择的查询条件词汇能够将这个理想文档同文档集合中其他文档区分开来。这样查询条件可以看作是由理想文档生成的能够表征该理想文档的文本序列。由这个假设我们可以看出信息检索系统的任务被转化为判断文档集合中每个文档与理想文档哪个最接近的问题。给定一个文档集合与用户查询条件Q,存在一个未知的相关模型R,相关模型R 为相关文档中出现的词汇赋予一个概率值P(w|R)。这样相关文档被看作是从概率分布P(w|R) 中随机抽样得到的样本。通过词汇的概率分布来分析判断文章的话题,对于话题很重要的词汇通常具有很高的概率值(相对于文章的其他词汇)。

基本可以分为以上几大类,每种类别又分为很多细小的改进等,可以发现,基本上所有都是基于海量的数据进行判断几个因素:关键词的分数、文章关键词的频率、文章质量、语言模型。发展方向肯定是越来越注重文章的内容,希望计算机能够按照人类思考方式来理解文章的内容,通过搜索输入的Query,找到最能符合的文章。

总结来说,做出一款搜索引擎其实不是非常难,但是做一个好的搜索引擎则是一个浩瀚的工程,每个细小的步骤每年都有无数个科学家,无数个会议,无数篇学术报告,paper 来专攻某一领域。像TREC(Text REtrieval Conference) 会议就是文本检索领域人气最旺、最权威的评测会议。相关性的提高有时是枯燥的,几个月的奋斗,提高程度并不明显,用户的体验或许依旧如此,需要考虑的因数不仅仅是关键词与内容相关性,还有地域性,时间等等一系列。涉及的知识领域包括统计、机器学习、数据挖掘等等。

写这篇文章,督促自己深挖掘上述的几个算法和改良的算法,多挖挖相关论文,新年快乐~

 

References

http://en.wikipedia.org/wiki/Relevance_(information_retrieval)

Search Engines: Information Retrieval in Practice

The PageRank Citation Ranking: Bringing Order to the Web

http://en.wikipedia.org/wiki/Pagerank

http://en.wikipedia.org/wiki/Okapi_BM25

http://summerbell.iteye.com/blog/494227

原创文章,转载请注明: 转载自yongxiu

本文链接地址: https://yongxiu.net/201201/01231.html