기본 설정 일치 알고리즘


12

다음 문제에 대한 솔루션을 구조화 해야하는이 측면 프로젝트가 있습니다.

나는 두 그룹의 사람들 (고객)이 있습니다. 그룹 AB결정된 제품 을 사고, 그룹 은 판매하려고합니다 X. 이 제품은 속성의 시리즈를 가지고 x_i, 내 목표는 사이의 거래 촉진하는 것이다 A하고 B자신의 환경 설정을 일치하여입니다. 주요 아이디어는 제품이 그의 요구에 더 잘 맞는 A그에 해당하는 각 구성원을 지적하는 B것이며 그 반대의 경우도 마찬가지입니다.

문제의 몇 가지 복잡한 측면 :

  1. 속성 목록은 유한하지 않습니다. 구매자는 매우 특별한 특성이나 어떤 종류의 디자인에 관심이있을 수 있습니다.이 디자인은 인구 중 드물며 예측할 수 없습니다. 이전에 모든 속성을 나열 할 수는 없습니다.

  2. 속성은 연속적이거나 이진 적이거나 정량화 할 수 없습니다 (예 : 가격, 기능, 디자인).

이 문제에 접근하여 자동으로 해결하는 방법에 대한 제안이 있으십니까?

가능한 경우 다른 유사한 문제에 대한 언급을 부탁드립니다.


좋은 제안! 내가 문제에 접근하려고 생각하는 방식과 많은 유사점.

속성 매핑의 주요 문제는 제품을 설명해야하는 세부 수준이 각 구매자에 따라 달라진다는 것입니다. 자동차를 예로 들어 봅시다. 제품 "자동차"는 성능, 기계적 구조, 가격 등 다양한 속성을 가지고 있습니다.

싼 차나 전기 자동차를 원한다고 가정 해 봅시다. 이 제품의 주요 기능을 나타내므로 쉽게 매핑 할 수 있습니다. 예를 들어, 듀얼 클러치 변속기 또는 크세논 헤드 라이트가 장착 된 자동차를 원한다고 가정 해 봅시다. 이 속성을 가진 데이터베이스에는 많은 자동차가있을 수 있지만, 판매자가 누군가를 찾는 정보가 있기 전에 판매자에게 제품에이 수준의 세부 정보를 입력하도록 요구하지는 않습니다. 이러한 절차는 모든 판매자가 복잡하고 매우 상세한 양식을 작성하여 플랫폼에서 자동차를 판매하려고합니다. 그냥 작동하지 않습니다.

그러나 여전히 도전 과제는 검색에서 필요한만큼 상세하게 일치 시키려고 노력하는 것입니다. 그래서 내가 생각하는 방식은 제품의 주요 측면, 아마도 모든 사람과 관련이있는 측면을 잠재적 판매자 그룹을 좁히는 데 매핑하는 것입니다.

다음 단계는 "정제 된 검색"입니다. 너무 자세한 양식을 작성하지 않기 위해 구매자와 판매자에게 사양에 대한 무료 텍스트를 작성하도록 요청할 수 있습니다. 그런 다음 단어 일치 알고리즘을 사용하여 가능한 일치 항목을 찾으십시오. 판매자가 구매자에게 필요한 것을 "추측"할 수 없기 때문에 이것이 문제에 대한 적절한 해결책이 아니라는 것을 알고 있습니다. 하지만 가까이 갈 수 있습니다.

제안 된 가중치 기준은 훌륭합니다. 판매자가 구매자의 요구와 일치하는 수준을 수량화 할 수 있습니다. 그러나 각 속성의 중요성은 클라이언트마다 다르므로 스케일링 부분은 문제가 될 수 있습니다. 일종의 패턴 인식을 사용하거나 구매자에게 각 속성의 중요도를 입력하도록 요청하려고합니다.

답변:


9

첫 번째 제안은 적절한 매핑 함수를 사용하여 정량화 할 수없는 속성을 수량에 매핑하는 것입니다. 그렇지 않으면, 그냥 두십시오.

둘째, 속성 목록이 유한하지 않다고 가정해야한다고 생각하지 않습니다. 표준적이고 직관적 인 접근 방식은 각 속성을 벡터 공간에서 개별 차원으로 나타내는 것입니다. 그런 다음 각 제품은 단순히이 공간의 한 지점입니다. 이 경우 더 많은 속성을 동적으로 추가하려면 제품 벡터를 새 형상 공간에 추가 치수로 다시 매핑하면됩니다.

이 표현에서 판매자는 제품 속성이있는 기능 공간의 한 지점이고 구매자는 환경 설정 속성이있는 동일한 기능 공간의 한 지점입니다. 그러면 주어진 판매자 포인트에 대해 가장 유사한 구매자 포인트를 찾는 것입니다.

데이터 세트 (예 : 구매자 / 판매자 수)가 크지 않은 경우 kd 트리를 사용하여 가장 가까운 인접 접근 방식으로이 문제를 해결할 수 있습니다.

매우 큰 데이터의 경우 IR 방식을 사용할 수 있습니다. 각 가중치를 속성 값으로 설정 한 상태에서 각 속성을 별도의 용어로 취급하여 판매자 세트 (예 : 제품 속성)를 색인화하십시오. 이 경우 쿼리는 적절한 용어 가중치를 가진 쿼리 벡터로 용어 공간에 인코딩 된 구매자입니다. 검색 단계는 가장 유사한 K 개 일치 항목의 목록을 리턴합니다.


라이트 여기서 주요 이슈는 차원의 수, 즉 내가 사용해야하는 세부 수준입니다. “IR 접근법”을 명확히 해주시겠습니까?
RD

1
IR은 정보 검색을 의미했습니다. 컬렉션의 문서 (판매자)와 쿼리 (구매자)는 모두 용어 (속성) 공간에 포함 된 벡터라고 생각할 수 있습니다. 내가 말했듯이, 이러한 접근 방식에는 작동하기 위해 미리 설정된 수의 치수가 필요합니다.
Debasis

7

제안한대로, 야생으로 이동 합니다. 우선, 내가 틀렸다면 정정하십시오.

  • 각 고유 한 제품에는 몇 가지 기능 만 있습니다.
  • 궁극적 인 기능 목록이 없으며 클라이언트는 제품에 새로운 기능을 추가 할 수 있습니다.

그렇다면 전체 제품 기능 표를 구성하는 데 계산 비용이 많이들 수 있습니다. 그리고 최종 데이터 테이블은 매우 희박합니다.

첫 번째 단계는 일치하는 고객 (제품) 목록을 좁히는 것입니다. 판매자가 유형 1 노드가되고 구매자가 유형 2 노드가되는 이분 그래프를 작성해 봅시다. 다음 스케치에서와 같이 유사한 제품 기능을 참조 할 때마다 판매자와 구매자 사이의 경계를 만드십시오.

그래프

위의 그래프를 사용하면 모든 고유 판매자 제품에 대해 제품과 일치하는 기능에 관심이있는 구매자 만 선택할 수 있습니다 ( 최소한 하나의 공통 기능 을 필터링 하거나 전체 기능 세트를 일치 시키거나 임계 값 레벨을 설정할 수 있음). 그러나 그것은 충분하지 않습니다. 다음 단계는 판매자와 구매자가 설명한대로 기능 값을 비교하는 것입니다. k-Nearest-Neighbors와 같은 다양한 변형이 있습니다. 그러나 기존 그래프를 사용 하여이 질문을 해결하려고 시도해보십시오. 가장자리에 가중치를 추가합시다 :

  • 지속적인 기능 (예 : 가격) :

    price_weight

  • 이진 및 정량화 할 수없는 기능-논리적 인 이중 조건부 :

    feature_weight

여기에 주요 아이디어는 것입니다 확장 구간에 대한 모든 기능을 [0, 1]. 또한, 특징 계수를 사용하여 가장 중요한 특징을 결정할 수 있습니다. 예를 들어, 가격이 일부 희귀 기능의 가용성보다 두 배 중요하다고 가정합니다.

adj_w_1

adj_w_2

마지막 단계 중 하나는 그래프 구조를 단순화하고 이전에 계산 된 각 피처의 가중치의 합과 동일한 가중치로 많은 모서리를 하나의 모서리로 줄이는 것입니다. 이러한 축소 된 구조로 인해 모든 고객 / 제품 쌍은 하나의 모서리 만 가질 수 있습니다 (병렬 모서리 없음). 따라서 정확한 판매자를위한 최상의 거래를 찾으려면 최대 가중치를 가진 연결된 구매자를 선택하면됩니다.

미래의 도전 : 첫 번째 단계에서 가장자리에 가중치를 부여하는 저렴한 방법을 소개하십시오 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.