- Blog home
- >
- Engineering
- >
- MindMeld ER(Entity Resolution)의 새로운 기능
Tags: pstn
ER(Entity Resolution)은 엔티티를 명확화하는 프로세스입니다. 조회 KB(Knowledge Base)에서 가장 적합한 실제 이름에 텍스트 멘션을 매핑하여 엔티티를 명확화합니다. 예를 들어 ‘madrid fc‘를 ‘Real Madrid Club de Fútbol‘로 처리하며, 여기에서 ‘madred fc’는 ‘Real Madrid Club de Fútbol’을 다른 말로 표현한 것입니다. ER은 엔티티 매칭, 엔티티 연결, 레코드 연결 또는 레코드 중복 제거와 같은 다른 이름으로 부르기도 합니다. ER은 MindMeld NLP Pipeline의 일부로 제공되며 사용자 입력에서 지정된 엔티티를 명확화하여 사전 입력된 KB와 비교하는 데 사용됩니다. MindMeld 앱을 구축함과 동시에 엔티티 리졸버를 위해 KB를 만들고 사용하는 방법은 공식 문서를 참조하세요. 최근까지 MindMeld는 ER을 위한 두 가지 옵션을 제공했습니다. 첫 번째는 Elasticsearch 전체 텍스트 검색 및 분석 엔진을 기반으로 한 옵션이고, 두 번째는 대체 옵션으로 단순한 완전 일치 알고리즘을 기반으로 한 옵션입니다. MindMeld 적용 분야가 보다 다양해짐에 따라 이러한 옵션을 실현할 수 없을 수도 있습니다. 지원을 확대하기 위해 MindMeld에서는 ER용 2가지의 추가 옵션을 제공합니다. 첫 번째는 TF-IDF에, 두 번째 옵션은 사전 학습된 신경망 모델 표현(BERT, GloVe, fastText 등)에 기반한 옵션입니다. 특히 이러한 새로운 옵션에는 Elasticsearch 종속성(및 서비스)이 없습니다. 이러한 새로운 옵션에 관한 자세한 내용을 알아보기 전에 MindMeld에서 엔티티 기술 자료가 어떻게 구성되는지 간략히 살펴보겠습니다. 다음은 식료품 품목 이름을 명확화하기 위해 생성된 기술 자료가 있는 식료품 주문 블루프린트의 예시입니다(
정확한 일치를 제외한 리졸버에서의 첫 단계는 명확성이 필요한 입력 텍스트와 명확화를 진행하는 동안 별칭으로 사용되는 KB의 모든 항목(cname 및 whitelist)에 관해 벡터 표현을 확보하는 것입니다. 이렇게 하면 벡터 유사성 일치 형식(코사인 유사성)을 통해 별칭에 점수와 순위가 부여됩니다. 새로 추가된 ER 옵션에서, TF-IDF 기반 리졸버는 다양한 n-gram 기능(표면 수준의 텍스트 기능)을 구성한 다음 스파스 벡터에 대한 코사인 유사성을 계산합니다. 한편, 사전 학습된 임베더 리졸버는 텍스트의 밀집 벡터 표현에 대한 코사인 유사성을 사용하여 비교합니다. ER의 사전 학습된 임베더는 다른 접근 방식과 비교해 여러 장점이 있습니다. 예를 들어 허용 목록에 포괄적인 정보를 자동으로 채우지 않아도 구문을 이해하고(예: ‘기대치 미만의 성능’이 ‘낮은 성능’과 동일) 다중 언어 엔티티 일치로 쉽게 변환할 수 있습니다(예: 스페인어로 ‘tercio’와 영어로 ‘third’ 동일). 하지만 입력 텍스트 길이의 차이와 같은 사전 학습과 유추가 불일치하다는 점이 사전 학습된 임베더의 단점입니다. 또한 기본 조밀한 벡터 계산으로 인해 임베더 모델의 추론 시간이 다른 리졸버 옵션보다 오래 걸릴 수 있습니다. 하지만 적합한 미세 조정을 거치면 임베더 모델은 주로 표면 수준의 텍스트 기능에 기반한 다른 리졸버 옵션보다 효과적일 수 있습니다. 아래 분석에서는 사전 학습된 임베더 기반 리졸버를 Elasticsearch 및 TF-IDF 엔티티 리졸버와 비교합니다. 이러한 비교를 위해 선별된 데이터 세트에는 표면 수준의 텍스트 일치뿐 아니라 구문 일치도 포함됩니다.
자체적으로 구성된 다양한 데이터 세트로 실험한 결과, 짧은 텍스트 엔티티 일치에 대한 여러 엔티티 리졸버의 평균 성능은 다음과 같습니다. Top-1 검색 점수는 (왼쪽에서 오른쪽으로: 가장 정확한 BERT, TF-IDF, Elasticsearch) 다양한 크기의 기술 자료에 따른 엔티티당 유추 시간 X축은 기술 자료의 크기를 나타내고, Y축은 엔티티당 시간을 밀리초 단위로 나타냅니다. 노란색은 입력 텍스트를 인코딩하는 유추 시간이고, 초록색은 유사성 계산에 대한 유추 시간입니다. TF-IDF와 Elasticsearch의 시간 복잡성은 상당히 비슷하지만, 가장 우수한 BERT 변형은 양자화를 거친다 하더라도 20배 느립니다. 최상위 4개 레이어를 연결하지 않는 경우 10배 더 느린 속도로 완화되지만, 정확도를 잃게 됩니다.
MindMeld 엔티티 리졸버 구성은 사용되는 리졸버에 따라 다양한 구성 가능한 매개변수를 사용합니다. 다음 스니펫을 앱의 ‘config.py’에 사용하면 Huggingface에서 원하는 사전 학습된 BERT 모델이 사용됩니다. ENTITY_RESOLVER_CONFIG = { ‘model_type’: ‘resolver’, ‘model_settings’: { ‘resolver_type’: ‘sbert_cosine_similarity’, ‘pretrained_name_or_abspath’: ‘distilbert-base-nli-stsb-mean-tokens’, … } } ’embedder_type’ 매개변수를 수정하여 다른 임베더 모델을 사용할 수 있습니다. ENTITY_RESOLVER_CONFIG = { ‘model_type’: ‘resolver’, ‘model_settings’: { ‘resolver_type’: ’embedder_cosine_similarity’, ’embedder_type’: ‘glove’, … } } 임베더 모델을 임베더 모델별 구성과 함께 사용할 때 ‘batch-size’와 같은 런타임 구성을 지정할 수도 있습니다. TF-IDF 기반 리졸버를 로드하려면 다음을 따르세요. ENTITY_RESOLVER_CONFIG = { ‘model_type’: ‘resolver’, ‘model_settings’: { ‘resolver_type’: ‘tfidf_cosine_similarity’, … } }KB 내 각 엔티티에 대해, 모든 별칭 임베딩의 평균/최대 풀인 특수 임베딩이 구성되면 계산되어 확인에 사용됩니다. 이러한 특수한 임베딩을 사용하면 약간 더 높은 컴퓨팅 비용으로 리졸버의 정확성이 향상됩니다. 자세한 내용과 모든 구성 가능한 옵션은 공식 문서의 ‘구성’ 섹션을 참조하세요.
결론적으로 Elasticsearch 기반 리졸버를 사용할 수 없는 특수한 경우를 제외하고는 Elasticsearch 기반 리졸버를 사용하는 것이 좋습니다. 대체 시스템으로 더 많은 구문 일치가 필요한 경우에는 임베더 모델 기반 리졸버를, 이러한 요구 사항이 없는 경우에는 TF-IDF 기반 리졸버를 사용합니다. MindMeld ER 모듈에서는 애플리케이션에 어떤 리졸버가 가장 효과적으로 작동하는지 나타내는 API를 아직 제공하지는 않습니다. 이러한 지원과 임베더 모델 기반 리졸버를 미세 조정할 수 있는 기능이 추가될 예정입니다. Webex에 등록하세요. 도움이 필요한 경우 홈페이지를 확인하거나 직접 문의해주세요. Webex에서 제공하는 서비스에 대해 자세히 살펴보고 무료 계정을 만들려면 여기를 클릭하세요.