几乎每一种非结构性巨量数据的搜寻算法,都会使用称为潜藏狄利克雷分配(latent Dirichlet allocation,LDA)的技巧;不过美国西北大学(Northwestern University)教授Luis Amaral发现,目前的LDA搜寻方法似乎有九成是不准确、而且有八成是不能重复的,通常同一个搜寻关键词串会得到不同的搜寻结果。为了找出原因,Amaral把LDA拆开,找到了缺陷并修补之。
现在Amaral可提供一种改良版的LDA方法,不只号称能得到更精确的搜寻结果,而且每次使用相同的数据库都会得到相同的结果;他愿意免费将这种改良版算法提供给Google、Yahoo搜索引擎以及Watson超级计算机,或是其他会用到搜索引擎的工具,例如推荐系统(recommendation systems)、垃圾邮件过滤器、数字图像处理或科学研究设备等等。
“常见的LDA模型演算演算实作是令人难以置信的不可靠,”Amaral表示:“首先,相信能有一种方法可在标题明显混合的文件中检测到特定标题,是很不切实际的;我们的系统性分析显示,只要数据库的生成伴随大量的α值(这在LDA算法中控制文件中的标题混合量),其算法就会失效得一蹋胡涂。”
另一个LDA算法的大问题是,它使用的方法往往不是会落在所谓的“局部最大值(local maximum)”。举例来说,如果要寻找美国最高的山,从东岸开始往西岸找,结果可能是落在阿帕拉契山脉(Appalachia),而不会是落基山脉(Rockies);因为从阿帕拉契山脉到落基山脉已经没有上坡路径,因此永远也找不到正确的山峰;而如果是由西岸往东岸找,就有可能会找到最高的山峰。这使得算法不可靠,每次执行所获得的结果也不一样。
标题映像会产生一个相关字网络,而如图片中所显示的,会一直出现最重要的标题
“常见的算法假设只要使用最陡上升算法(steepest ascent),几乎就能找到似然函数地貌(likelihood function landscape)中的全局最大值;但物理学家从对于无序系统的研究中得知,当地貌购够崎岖,就有可能陷入局部最大值,而该局部最大值的发现是仰赖初始状态。”Amaral表示:“在特定的LDA案例中,这意味着仰赖对参数值一开始的猜测,一个正在估计,一个是得到对参数的不同估计。”
而Amaral的改良版LDA会先做初始扫描,决定地貌的“崎岖度”,使其从阿帕拉契山脉的某个高峰跳到落基山的某个高峰上,再比较两者,从而每一次都得到正确答案:“我们藉由已知的方法有效扫描似然函数地貌并取得了良好的最大值,克服了以上难题。”接下来Amaral与他的同事将进一步优化其搜寻算法,并用以检查所有已经有答案的案例,确保该算法是牢不可破的;这在搜寻方法研究社群没有人尝试过,但他认为非常有必要。
“我很讶异没有人曾经小心检查目前的LDA算法精确度,只提供算法却不知道它得出的答案是否正确实在是很蠢;特别是做这种答案检查是那么容易验证偏颇。”Amaral的研究伙伴是同为西北大学教授的Konrad Kording,他们将添加标题映射(Topic Mapping)以他们的词干来取代所有的搜寻字符串(例如将star与stars视为同一个字),然后建立一个链接字词的网络──也就是定义文件中标题的群组。
在测试中,新的验算法能从以标题区分的2.3万篇科学论文以及120万篇维基百科(Wikipedia)文章中,产生精确的重复结果。
关键词:
教授
免费
提供
改良
算法
Google
搜索引