我正在努力为演示建立一个排名。 我做了“自动训练”,结果很好(可能会更好) 我正在尝试进行手动培训,但我对Bluemix在线文档中参数的含义感到困惑:https://www.ibm.com/watson/developercloud/doc/retrieve-rank/training_data.shtml#manual
有人可以在下面的Bluemix示例数据中解释一下吗?
query_id, feature1, feature2, feature3,...,ground_truth
question_id_1, 0.0, 3.4, -900,...,0
question_id_1, 0.5, -70, 0,...,1
question_id_1, 0.0, -100, 20,...,3
...
什么是query__id? (它代表什么?) 什么是feature1,feature2? (它代表什么?) 什么是question_id_1? (它代表什么?) 如何计算这些分数(0.0,3.4,-900)?
我知道ground_truth值必须从0到4,(0表示根本不相关,4表示完美匹配)是正确的吗?
亲切的问候 泽维尔
答案 0 :(得分:0)
训练数据旨在训练learning-to-rank(L2R)算法。 L2R方法首先获取candidate answers
的列表(例如,搜索结果页面中的文档),这些列表是为响应query
(也称为问题)而生成的,并将每个query-answer pair
表示为一组功能。每个功能都希望能够捕获特定候选答案与查询匹配程度的一些表示。训练数据中的每一行代表属于这些查询 - 答案对之一的特征值。
因为训练数据包含来自许多不同查询(以及相应的搜索结果)的特征向量,所以第一列使用查询ID将响应于单个查询而生成的不同候选答案联系在一起。
正如你所说,最后一栏简单地捕捉了人类注释者是否认为答案实际上与问题相关。 0-4比例不是强制性的。 0总是代表无关紧要。但之后你可以使用任何对你的用例有意义的比例(当数据有限时,通常人们只使用0-1二进制比例,因为这会降低复杂性)。
在您引用的文档页面上提供的python script实际上将在给定包含不同查询的文件的情况下生成候选答案和相应的特征向量。您可能希望单步执行该脚本中的代码,以便更好地了解如何创建训练数据。