起源一个实际应用问题:假设有5篇文章(有图片文章,有纯文字文章),另外有一批显示模板(有若干带图模板、和不带图模板),如何选择最佳的显示模板。
首先想到的是决策树,通过一些关键“决策点”(有无图,有1张图、有2张图,有n图,有什么尺寸比例的图)进行判断选择,那好,动手画图,当决策点不断增加时候,发现决策树越来越大,而且每添加一个决策点(影响因素)都会导致决策树变化,而且决策树更加庞大,果断放弃,因为类别太多,决策树方式不适合,不易于扩展。
决策树示意图
其次想到的向量空间模型,影响一组文章(5篇为例)选择显示模板有几个因素(有多少4:3的图片文章,有多少16:9的图片文章····),从中抽象出一组 “独立互斥”的维度(为什么需要独立互斥?脑补一下吧),以空间坐标表示(a1,b1,c1,d1....)。然后将显示模板也抽象成空间坐标(ma1,mb1,mc1,md1....),(ma2,mb2,mc2,md2....),...,这样就将一个程序选择问题转换成一个数学求最优解的问题,计算一组文章空间向量与若干模板空间向量的相似度问题,如果以后需要扩展模板选择因素,需要只是增加一个维度,如果需要扩展模板,只需增加一个模板向量,解决拓展的问题。
空间向量示意图
上图是以二维空间作为示例(实际中是多维空间),从上图可以直观看出,与模板2 更为相似,数学最优解是 “模板2”。
至于向量计算方式,包括绝对距离、垂直距离、余弦值等等方式,至于使用哪种,可以通过实际数据去测试选择。
将问题转换成数学数字,可以引入权重,阀值,排序,在需求发生变化时,可灵活拓展。例如,通过阀值可以判定,可以本来将一个模板内的内容,拆分成2个模板(3篇+2篇)得到最优解。
当然向量空间不是万能,多维空间计算是噩梦,得控制维度的膨胀,另外不能出现 相关性的维度(各个维度必须独立),否则准确度也会降低。
向量空间模型在分类的场合适用性比较广,计算也不复杂,计算的性能取决于维度的多少,在一些非实时性的计算中,可以尝试一下。
整理于2014/5