搜索引擎的两大问题(2) - 相关性相关性是为了计算用户查询(query)和返回文档(doc)的相关程度,即判断doc中的内容是否满足用户query的需求。以下是关于搜索引擎相关性问题的详细解答:一、相关性的核心相关性计算的核心在于充分理解query和doc。这包括从query角度理解其关键词的重要性、实体成分、意图以及时效性;从doc角度理解其话题类型、核心词、文本质量以及是否属于标题党、推销、广告、色情等页面。充分理解这两者是实现精准相关性计算的基础。二、相关性计算的挑战query的歧义性:当用户搜索的query存在歧义时,如“苹果”,系统需要判断用户是想要找水果还是苹果手机。这种歧义性增加了相关性计算的难度。query意图的复杂性:有时用户的查询意图并不完全体现在term的匹配上。例如,用户搜索“北京到上海的火车票”,而某个doc的标题是“北京到上海的火车票的乘车体验”,虽然query完全紧邻命中doc,但用户实际想要找的是火车票的购买信息,而非乘车体验。mismatched term的影响:query和doc中不匹配的term对相关性也有很大影响。传统的相关性计算往往只考虑了匹配的term对相关性的贡献,而忽略了不匹配的term可能带来的负面影响。语义相关性的判断:很多时候,query和doc的相关性需要从语义维度来判断。例如,query“苹果手机多少钱?”和“iphone xs max的官方标价?”在语义上是相关的,但字面上并不完全相同。三、相关性的计算方法相关性计算主要分为字面相关性和语义相关性两个维度。字面相关性:定义:根据term的匹配度来计算相关性。方法:常用的方法是BM25方法。该方法通过考虑term在doc中的频率、逆文档频率等因素来计算相关性。不足:无法处理一词多义或者多词一义的情况,并且会忽略词之间的顺序。语义相关性:定义:通过计算query和doc在语义上的相似性来判断相关性。方法:近年来,SVD、Topic Model、Embedding等方法被广泛应用于语义相关性的计算。其核心思想是将query和doc分别表示为一个低位稠密向量,然后用其cosine距离表示其相似性。其中,Embedding方法(如word2vec、doc2vec、sent2vec、lstm等)尤为常用。不足:语义相关性计算不太具有解释性,当出现badcase时,只能大概猜测可能的原因。此外,如何学习长文本、有oov(out-of-vocabulary,未登录词)的文本的embedding仍然是一个挑战。四、相关性计算的应用场景相关性计算不仅应用于搜索引擎中query和doc的相关性判断,还可以扩展到其他领域。例如,在推荐系统中,可以计算user和item的相关性;在广告系统中,可以计算user和ad的相关性。因此,做好相关性计算是保证用户体验最核心的一步。五、总结相关性是搜索引擎中至关重要的一个问题。为了实现精准的相关性计算,需要充分理解query和doc,并克服query的歧义性、意图的复杂性、mismatched term的影响以及语义相关性的判断等挑战。同时,结合字面相关性和语义相关性两个维度的计算方法,可以更有效地判断query和doc的相关性。在未来,随着自然语言处理技术的不断发展,相关性计算将更加精准和高效。(图片来源:网络)以上内容详细阐述了搜索引擎的相关性问题,包括其核心、挑战、计算方法、应用场景以及总结等方面。希望这些内容能够帮助您更好地理解搜索引擎的相关性计算。



































