机器学习和生物信息学实验室联盟

标题: Ranking SVM [打印本页]

作者: hllysx    时间: 2013-9-14 15:57
标题: Ranking SVM
本帖最后由 hllysx 于 2013-9-14 15:57 编辑

Ranking SVM是一种Pairwise的排序算法, 给定查询q, 文档d1>d2>d3(亦即文档d1比文档d2相关, 文档d2比文档d3相关, x1, x2, x3分别是d1, d2, d3的特征)。为了使用机器学习的方法进行排序,我们将排序转化为一个分类问题。我们定义新的训练样本, 令x1-x2, x1-x3, x2-x3为正样本,令x2-x1, x3-x1, x3-x2为负样本, 然后训练一个二分类器(支持向量机)来对这些新的训练样本进行分类。
H. Joachims的主页上有Ranking SVM的开源实现,可执行文件以及相应的论文,有兴趣的可以前去研究下哈。
一,输入文件: 数据的格式与LIBSVM的输入格式比较相似, 第一列代表文档的相关性, 值越大代表越相关, 第二列代表查询, 后面的代表特征
# query 1
3 qid:1 1:1 2:1 3:0 4:0.2 5:0
2 qid:1 1:0 2:0 3:1 4:0.1 5:1
1 qid:1 1:0 2:1 3:0 4:0.4 5:0
1 qid:1 1:0 2:0 3:1 4:0.3 5:0
# query 2
1 qid:2 1:0 2:0 3:1 4:0.2 5:0
2 qid:2 1:1 2:0 3:1 4:0.4 5:0
1 qid:2 1:0 2:0 3:1 4:0.1 5:0
1 qid:2 1:0 2:0 3:1 4:0.2 5:0
# query 3
2 qid:3 1:0 2:0 3:1 4:0.1 5:1
3 qid:3 1:1 2:1 3:0 4:0.3 5:0
4 qid:3 1:1 2:0 3:0 4:0.4 5:1
1 qid:3 1:0 2:1 3:1 4:0.5 5:0

(rankingsvm会处理数据将数据转变为样本对格式,如下(1.jpg):)
二, 训练模型和对测试数据进行排序的代码分别为:
  ./svm_rank_learn path/to/train path/to/model
./svm_classify path/to/test path/to/model path/to/rank_result

推荐大家看一看下面两位大牛的论文:刘铁岩、李航等,参考的主要几篇文章如下:
1: Adapting Ranking SVM to Document Retrieval. (Liu Tie Yan. et al. MSRA)
2: Learning to rank for Information Retrieval– tutorial. (Liu Tie Yan. et al. MSRA)
2: Learning to rank: From Pairwise Approach to Listwise Approace. (Liu Tie Yan. et al. MSRA)

作者: zouquan    时间: 2013-9-14 22:29
开源软件网址的链接?在什么系统下运行?用什么语言写的?有无什么注意事项?
作者: hllysx    时间: 2013-9-16 19:02

H. Joachims的网站:http://www.cs.cornell.edu/people/tj/svm_light/svm_rank.html
网站上提供有源代码和可执行文件:xp,linux均支持哈,代码是c语言写的
上面提供有测试样本,可不用修改直接执行。




欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/) Powered by Discuz! X3.2