推荐系统算法解说

推荐实例扩展【转】

7.一、阅读推荐html

先来看一段文字(摘自36kr):web

”北京十分科技也很是看好阅读推荐类的应用,他们花了很是大的精力(一年60人团队),才在今天推出了iPhone 版“酷云阅读”。算法

为何要投入这么多人去作这个阅读应用?CEO 李鹏告诉我,这个团队超过一半的人都在作后台相关的东西,包括语义分析、机器学习等算法。他们的目的是将互联网“语义化”之后,把人的兴趣明确,最后把每一个人感兴趣的内容推荐给相关的人。在iPhone 上,酷云的大体作法和Zite iPad 版相似,用户的行为也是有“喜欢”、“不喜欢”,以及点击相应的媒体来源或者相关的标签来告诉酷云你但愿之后看到更多这些内容。数据库

这个目的是大部分阅读推荐应用都有的,可是酷云的作法彷佛更加变态。他们除了天天要抓取来自互联网的超过10万篇文章以外,还对全国200个的电视台播出的视频内容进行了索引,以便用户也能够经过文字搜索出视频、以及对视频内容进行同样的推荐。大体作法是先把这些节目都录制下来,而后把声音转文字,最后创建摘要和索引。“编程

    通常的推荐系统应用的算法是有上文所述的什么协同过滤那般复杂呢?如下是援引自本人1月21日所发在微博上的文字:
    一、大多数推荐阅读应用通常会给文章根据内容打上标签:算法,iphone(点击至关于为此标签加分加权重),并邀请对文章做出评价:喜欢,或不喜欢。每一次点击都被推荐系统记录了下来,最终渐渐造成用户的标签tag云(与此同时,还可基于相同或类似的标签tag寻找类似用户,从而基于用户推荐),然后系统每检索一篇新的文章,提取出文章的关键字,匹配用户的标签取向,进行推送。
    二、目前手机上的新闻阅读作到了分类,如科技,教育,但通常不会采起如网页那般评分表态,因此也就没法记录用户的行为特征,也就不会有新的文章出来后后续的推荐阅读服务,因而造就了一批手机推荐阅读的问世,如 @酷云阅读 ,指阅等。
     三、但通常用户的习惯是看完一段新闻便完事了,择日要看则择日看。例若有几个用户愿意为了评价一篇文章而特意去注册一个账号呢?如何尽可能让用户付出额外代价去使用这类阅读器,改变用户习惯,我的认为,是关键。
    而后我还对上面的那句:先把这些视频节目都录制下来,而后把声音转文字有点疑问。咱们已经知道若是是音乐的话像豆瓣FM多是以下的作法:

 

  1. 你喜欢一些歌曲,而我也喜欢一些歌曲,若是你我喜欢的歌曲中有不少是重复相似的,则系统会把你我定义为好友,即类似用户,基于用户的协同过滤推荐:朋友喜欢,你也可能喜欢 ;
  2. 还有一个就是针对歌曲的推荐,你喜欢一首歌曲A,而另外一首歌曲B与歌曲A相似(如都是有关爱情、感伤一类的),因此系统猜想你也可能喜欢B,而把B推荐给你。这就是基于项目(物品)的协同过滤推荐。

根据所听歌曲的重复相似断定为好友从而基于用户的协同过滤进行推荐,经过某些歌曲是差很少相似的来基于项目的协同过滤进行推荐,但问题出来了,重复的好说,同一首歌曲同一个歌手嘛,可那些类似音乐歌曲又如何定义断定呢?经过系统去分析歌曲的频谱?区别各个歌曲节奏的快慢,音频?此举虽然看起来有效,但实际实行起来不太现实。数据结构

    我以为应该是为那些音乐打上标签tag(估计视频也是这么作的,便于往后查找索引。全视频的实录目前以为仍是不靠谱),如打上“爱情”“感伤”一类的tag,然后tag相同的则可断定为类似歌曲。但关键是怎么打?语音识别?
 
7.二、标签tag怎么打
    初期能够人肉,爬虫,买数据库,等流量上来了,能够考虑ugc。所谓ugc,用户产生内容。可是用户通常不太可能本身给音乐打标签,太繁琐了(如最近的新浪微博的每条微博内容下多了一个“加标签”的提示,但有多少用户愿去理它呢?),固然有的系统也会为你自动产生一些标签tag(固然,你也能够自行加上一些标签),如新浪博客:
    如何作到的呢?个人想法是,
  1. 应该是系统在背后扫描你的文章一遍,而后提取一些关键词做为tag,供你选择。取哪些关键词呢?固然是取高频词。扫描整篇文章,统计每一个单词出现的频率。
  2. 而后取其前TOP K,如上面截图中的“算法”在那篇文章中出现了4次,“博客”出现了3次,因此系统为你自动匹配这些标签。
  3. 至于采起何种数据结构或方法来统计这些关键词的频率呢。通常的应用hash+堆(11、从头至尾完全解析Hash表算法),或trie树(从Trie树谈到后缀树)都可。但当trie树面对的是汉字中文的时候,就比较麻烦了。因此hash+堆是比较理想的选择。
    一样,针对视频的话,应该也是相似的:一、经过系统或机器读取视频内容,把视频转换为文字,而后提取其中频率出现高的关键词(如何提取关键词呢,这就涉及到一个关键问题了:分词。本blog往后阐述),把提取出来的这些关键词做为此视频的标签tag;二、而后针对这些tag创建索引摘要(什么样的索引?倒排索引。至于什么是倒排索引,参考编程艺术第二十四章: 第二十3、四章:杨氏矩阵查找,倒排索引关键词Hash不重复编码实践),最终方便于往后用户或系统的查找(此节系与编程艺术内的朋友讨论整理总结而出)。
    具体细节后续阐述。
 

八、参考文献

  1. 本人1月7日,1月21日的发表的微博(挂在本blog左侧边栏);
  2. 探索推荐引擎内部的秘密,做者:赵晨婷,马春娥;
  3. 集体智慧编程,TobySeganra著。
  4. 推荐系统之协同过滤概述
  5. http://www.cnblogs.com/leoo2sk/
  6. Mitchell, Tom M. Machine Learning. McGraw-Hill, 1997(机器学习领域的开山之做).
  7. http://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91。
  8. http://www.36kr.com/p/75415.html
  9. 智能web算法,第三章推荐系统(实现了用户及项目的类似度的计算,值得一看)
相关文章
相关标签/搜索