L2r 验证结果

来自cslt Wiki
跳转至: 导航搜索

下面是最近用learning to rank得到的结果(今天突然发现以前一个参数设置错了,导致一直效果没有很明显的提升):

P@1: 0.68734335-->0.7763158 1097-->1239 (The number of queries is 1596.)

P@5: 0.80325814-->0.8383459 1282-->1338 (The number of queries is 1596.)

现在最高能达到的正确率是0.880325,因为目前只有1405个query的候选集里面是有正确答案的,另外的191个query的候选集里面是没有正确答案的,1405/1596=0.880325。


目前看来引入Sentence Embedding的没有太大的效果,但是应该是利用的方法不对,王老师今天提出了一个非常好的新方法,利用tag model在通用大数据集和领域小数据集都得到word vector引入系统,准备马上实现看一看效果如何;NER特征经过试验证明是一个很重要的特征,不过还可以继续更好的利用强化tf*idf模型;POS特征也准备引入强化tf*idf模型。这三部分计划近几天实现。今晚开始进行online learning的研究和在本QA系统的实现。


以下两部分都是各个特征的回归系数,不同的是做没做normalization,但是没做normalization最终得到的P@1的结果要好,原因我认为是做了normalization之后,有些本来不是很重要的特征提高了影响,同时重要的特征区分度下降,不知道我理解的对不对,请王老师甄别赐教,标黑的是比较显著的特征:

第一部分是用了normalization,最后的P@1是0.82393485。

+2.0705 1. 排序文档集为问题模板,利用 tf*idf ranking model得到的分数。

+0.0014 2. 排序文档集为标准问题,利用 tf*idf ranking model得到的分数。

-1.0E-4 3. 问题模板的长度。

+9.0E-4 4. 标准问题的长度。

+0.3753 5. 对query进行分词,分词出现在问题模板中的次数与问题模板长度的比值。

+0.4748 6. 对query进行分词,分词出现在标准问题中的次数与标准问题长度的比值。例子:query为“保障性住房”;分词结果:“保障性” “住房”; 标注问题:“什么是保障性住房?” query的分词结果出现在标准问题中的次数为2次,标准问题长度为18,该feature值为1/9。

+0.6544 7. 对query进行分词, 分词出现在问题模板中的次数与query分词总数的比值。

+0.0981 8. 对query进行分词, 分词出现在标准问题中的次数与query分词总数的比值。例子:query为“保障性住房”;分词结果:“保障性” “住房”; 标注问题:“什么是保障性住房?” query的分词结果出现在标准问题中的次数为2次,query分词总数为3,该feature值为2/3。

+7.0E-4 9. 排序文档集为问题模板,利用 BM25 ranking model得到的分数。

-0.0014 10. 排序文档集为标准问题,利用 BM25 ranking model得到的分数。

+8.0E-4 11. 排序文档集为问题模板,利用 DFR ranking model得到的分数。

-2.0E-4 12. 排序文档集为标准问题,利用 DFR ranking model得到的分数。

+2.0946 13. 排序文档集为问题模板,利用 IB ranking model得到的分数。

+0.0063 14. 排序文档集为标准问题,利用 IB ranking model得到的分数。

+7.0E-4 15. 排序文档集为问题模板,利用 LMDirichlet ranking model得到的分数。

-0.0096 16. 排序文档集为标准问题,利用 LMDirichlet ranking model得到的分数。

+0.0016 17. 排序文档集为问题模板,利用 LMJelinekMercer ranking model得到的分数。

+0.2628 18. 排序文档集为标准问题,利用 LMJelinekMercer ranking model得到的分数。

+0.0523 19.

           (1)query中有NER,问题模板如果也有NER,则feature值为1;
           (2)query中没有NER,问题模板如果也没有NER,则feature值为1;
           (3)query中有NER,问题模板如果没有NER,则feature值为0;
           (4)query中没有NER,问题模板如果有NER,则feature值为0;

+0.0445 20.

           (1)query中有NER,标准问题如果也有NER,则feature值为1;
           (2)query中没有NER,标准问题如果也没有NER,则feature值为1;
           (3)query中有NER,标准问题如果没有NER,则feature值为0;
           (4)query中没有NER,标准问题如果有NER,则feature值为0;

-1.0E-4 21.通过Sentence Embedding计算query和标准答案的cos相似度,为(0,1)的实数。(Sentence Embedding的具体做法是,将所有词的每一维进行比较,取绝对值最大的数值作为Sentence的vector。)


第二部分没用normalization,最后的P@1是0.8383459。

+0.0398 1. 排序文档集为问题模板,利用 tf*idf ranking model得到的分数。

+0.0369 2. 排序文档集为标准问题,利用 tf*idf ranking model得到的分数。

+0.0542 3. 问题模板的长度。

-0.0313 4. 标准问题的长度。

+0.0733 5. 对query进行分词,分词出现在问题模板中的次数与问题模板长度的比值。

+0.1661 6. 对query进行分词,分词出现在标准问题中的次数与标准问题长度的比值。例子:query为“保障性住房”;分词结果:“保障性” “住房”; 标注问题:“什么是保障性住房?” query的分词结果出现在标准问题中的次数为2次,标准问题长度为18,该feature值为1/9。

+0.1751 7. 对query进行分词, 分词出现在问题模板中的次数与query分词总数的比值。

+0.0766 8. 对query进行分词, 分词出现在标准问题中的次数与query分词总数的比值。例子:query为“保障性住房”;分词结果:“保障性” “住房”; 标注问题:“什么是保障性住房?” query的分词结果出现在标准问题中的次数为2次,query分词总数为3,该feature值为2/3。

+0.0342 9. 排序文档集为问题模板,利用 BM25 ranking model得到的分数。

+0.0240 10. 排序文档集为标准问题,利用 BM25 ranking model得到的分数。

+0.0400 11. 排序文档集为问题模板,利用 DFR ranking model得到的分数。

-0.0952 12. 排序文档集为标准问题,利用 DFR ranking model得到的分数。

0.0000   13. 排序文档集为问题模板,利用 IB ranking model得到的分数。
0.0000   14. 排序文档集为标准问题,利用 IB ranking model得到的分数。

-0.0057 15. 排序文档集为问题模板,利用 LMDirichlet ranking model得到的分数。

+0.0152 16. 排序文档集为标准问题,利用 LMDirichlet ranking model得到的分数。

0.0000   17. 排序文档集为问题模板,利用 LMJelinekMercer ranking model得到的分数。

+0.0222 18. 排序文档集为标准问题,利用 LMJelinekMercer ranking model得到的分数。

+0.1052 19.

          (1)query中有NER,问题模板如果也有NER,则feature值为1;
           (2)query中没有NER,问题模板如果也没有NER,则feature值为1;
           (3)query中有NER,问题模板如果没有NER,则feature值为0;
           (4)query中没有NER,问题模板如果有NER,则feature值为0;

+0.1605 20.

           (1)query中有NER,标准问题如果也有NER,则feature值为1;
           (2)query中没有NER,标准问题如果也没有NER,则feature值为1;
           (3)query中有NER,标准问题如果没有NER,则feature值为0;
           (4)query中没有NER,标准问题如果有NER,则feature值为0;

-0.0181 21.通过Sentence Embedding计算query和标准答案的cos相似度,为(0,1)的实数。(Sentence Embedding的具体做法是,将所有词的每一维进行比较,取绝对值最大的数值作为Sentence的vector。)