嵌入已成为机器学习中的基本工具,但它们存在一些重要的局限性。第一个主要局限性是它们无法完全捕捉上下文和细微差别。虽然嵌入将单词或短语转换为表示语义含义的向量,但它们通常难以处理模棱两可的术语或依赖于上下文的含义。例如,“cold”一词可以指温度、人格特征或医疗状况,但标准嵌入可能会将所有用法映射到单个向量,从而失去特异性。此外,嵌入一旦经过训练就是静态的——除非明确地重新训练,否则它们不会适应新的上下文或不断发展的语言。这使得它们对于实时社交媒体分析等动态应用程序的效果较差,在这些应用程序中,俚语或新术语会频繁出现。
第二个局限性是维度和计算方面的权衡。嵌入依赖于固定长度的向量,而选择正确的维度是一项平衡行为。低维嵌入可能会丢失关键的语义细节,而高维嵌入会增加计算成本和内存使用量。例如,一个 300 维的嵌入可能会捕捉到细粒度的关系,但在大规模存储和处理时会变得昂贵,尤其是在诸如具有数百万个项目的推荐系统之类的应用程序中。此外,余弦相似度等相似性度量——通常用于比较嵌入——可能会产生误导。两个向量在数学上可能看起来“接近”,但缺乏有意义的现实世界关系,从而导致语义搜索或聚类等任务出现错误的结果。
最后,嵌入会继承偏差并且缺乏领域特异性。预训练嵌入(例如,Word2Vec、GloVe)在通用语料库(如维基百科或新闻文章)上进行训练,这些语料库可能与特定领域不一致。例如,医学术语在标准嵌入中可能表示不佳,从而降低了它们在医疗保健应用程序中的有效性。开发人员通常需要在特定领域的数据上重新训练模型,这需要时间和资源。此外,嵌入会使训练数据中存在的偏差永久存在。例如,职位名称中的性别刻板印象(例如,“护士”与“工程师”)可能会被编码到向量中,从而导致简历筛选等下游任务的输出出现偏差。解决这些问题需要仔细的数据管理和诸如去偏算法之类的技术,这增加了实现的复杂性。