翻訳:Saki Kitaoka. - Original Blog Link
商品マッチングは、多くの小売企業や消費財メーカーにとって不可欠な機能です。サプライヤーがオンライン・マーケットプレイスで新商品を販売する際、入荷する商品は既存の商品カタログの商品と比較されます。サプライヤーは、小売業者のウェブサイトに掲載されている商品リストを比較し、表示されている内容が契約条件と一致していることを確認します。小売業者はお互いのウェブサイトをスクレイピングし、価格比較のために商品を一致させることがあります。また、サプライヤーは、小売業者やサードパーティのデータから、より上位の商品アグリゲートと、販売する個々のSKUを照合する必要があります。多くの組織にとって、この作業は時間がかかり、正確ではありません。
この作業を行う上での主な課題は、同じ商品でも組織によってラベル表示が異なることです。表示される商品名、説明文、または顧客と商品との結びつきをよくするための箇条書きの特徴リストの小さな差異が、正確な一致を不可能にすることがあります。GTINコードやその他の普遍的な識別子は、SKUレベルで提供される場合、このデータとともに提示されることはあまりなく、集計レベルで提供される場合、組織は、情報を正式な製品カタログと整合させる追加配分を形成する前に、見慣れないラベルを使用してデータを照合しなければなりません。また、消費者が気づかないような製品詳細の些細な違いは、商品の生産方法のわずかな違いを反映している場合もあります。そしてもちろん、単純な入力ミスやデータの切り捨てによるばらつきの余地は常にあります。
この問題の簡単な解決策は、商品リストを見ることです。人間は、このような差異を埋めることに驚くほど長けており、2つの商品が同じか、あるいは与えられた目的に対して同じと考えられるほど似ているかどうかを判断することができます。しかし、比較する商品の数が増えれば増えるほど、潜在的な比較対象は倍々的に増えていき、あっという間に人間の解釈能力が追いつかなくなってしまいます。
機械学習による商品マッチング
機械学習を使用することで、さまざまな手法を使って商品のメタデータを比較し、2つの商品が同じであるとみなされる確率を推定するモデルを構築することができます。商品ペアのセットを使用し、あるものは一致するとラベル付けされ、あるものは一致しないとラベル付けされ(図1)、モデルは、名前、説明、価格などの類似性の様々な尺度が、2つの商品を一致すると認識することにどのように影響するかを学習することができます。
データで通常観察されるバリエーションの範囲を考えると、完全に自動化された商品マッチングパイプラインを構築することは不可能です。しかし、モデルがマッチする可能性が高いとスコアした商品ペアを自動的に受け入れることにするかもしれません。同様に、ある閾値以下の確率を持つペアを自動的に拒否することもできます。そうすると、マッチング確率が中間の、専門家の注意を必要とするもっと小さな製品セットが残ります。
そこで問題になるのは、どの製品を比較するかということです。単純なルールであれば、「本」カテゴリの商品と「靴」カテゴリの商品を比較する必要はないと判断できるかもしれませんが、比較する商品を絞ったところで、網羅的に比較することが難しい商品が大量に残ってしまうことがよくあります。そこで登場するのが、ブロック化とも呼ばれる類似近似のテクニックです。
ブロッキングのテクニックを使えば、関連する属性間の類似度に基づいて、製品を空間内に整理することができます。そして、確率推定を正当化しないほど非類似な製品間の徹底的な探索を避け、互いに一定の距離内に存在する製品に比較を限定することができます。例えば、同じカテゴリーに属する2つの製品は、本質的には同じものですが、サイズや色だけが異なっており、その情報は十分に重複している可能性があります。また、非常に似ていないため、ブロッキング・モデルで完全に除外できる場合もあります。
商品画像は貴重なインプット
しかし、前述のとおり、隣接する商品であっても、自動的に一致を認めるほど類似度が高くない場合があります。このような場合、人間の分析者が候補となるペア商品の詳細を比較し、判断材料とします。
消費者として、私たちはオンラインで商品を比較するとき、いつもこのようなことをしています。2つの商品がより詳細な比較を正当化するのに十分似ているかどうかをすばやく判断するために、商品と一緒に表示されることが多い商品画像を見ています。画像には認識可能な詳細がかなり含まれており、私たち人間はこの製品比較の問題の側面に取り組むために自然に採用することができます。この同じ能力を自動化された商品比較に組み込むことができれば、商品マッチングの推定精度を大幅に向上させ、人間の通訳の負担をさらに軽減することができます。
そのためには、エンベッディングを使うことができます。エンベッディングとは、画像の構造に関する情報をとらえた数値の配列です。多数の画像の類似・非類似を比較するために訓練されたモデルから派生したもので、2つの画像から得られた画像間の距離を計算し、それを使って2つの画像の類似性を知ることができます。これをファジィ照合モデルへのもう一つの入力として使用することで、商品のメタデータと画像情報の両方に基づいて、2つのアイテムがどの程度同じとみなされるべきかをモデルに学習させることができます。
Zinggはメタデータと画像の両方を使ったファジィマッチングを可能にします。
入力データの準備、候補ペアの生成、アイテムのマッチング確率の推定には様々な課題があり、対応するにはかなりの専門知識が必要です。DatabricksのパートナーであるZinggのスタッフは、エンティティ解決の分野からベストプラクティスをパッケージ化し、使いやすいオープンソースライブラリにまとめました。
Zinggでは、アイテムに関連する様々な属性は、比較されるアイテムを説明する役割に基づいて識別されます。これは、属性レベルの比較を実行する際に、どのようなルールやテクニックが適用されるかをZinggに知らせます。Zinggは自動的にこれらのルールを適用してデータをブロック化する準備をし、エキスパートユーザーに一連の候補ペアを提示します。このユーザーからのフィードバックは、ファジィマッチングモデルの組み立ての入力となり、専門家から提供された受諾と拒否にどのような影響を与えるかという観点から、準備された属性間の類似性を重み付けします。
分散エンジンであるZinggには、Databricksクラスタ内でネイティブにスケールできるという利点があり、組織が多数の製品について比較作業を行う必要がある場合に、それを簡単かつ効率的に行うことができます。これは、製品データのボリュームがそこそこであっても、大量の複雑な計算が必要となり、そのすべてをタイムリーに実行する必要があるようなシナリオでは非常に重要です。
Zinggの0.4リリース(0.4 release)では、数値配列のサポートが組み込まれました。これにより、画像データに適切なデータ準備を適用した後、画像比較を含む幅広い項目比較を実行することができます。
どうやって実現するのか
ZinggをDatabricks上で使用して、商品のメタデータと画像とのマッチングを実行する方法を示すために、新しいソリューションアクセラレータを構築しました。このアクセラレータでは、Amazon-Berkeley Objectsデータセットを活用して、商品データの初期セットと "新しく到着した "商品データの増分セット間の重複と一致を識別します。
Amazonのウェブサイト上でこれらの商品とともに表示されるサムネイル画像は、Hugging Faceの汎用画像モデルを活用して埋め込みに変換されます。Zinggによって促進され、Databricksノートブックでホストされるインタラクティブな製品ラベリング演習を通じて、各製品と画像の記述要素を使用して一致する製品を識別するモデルが学習されます。
このアクセラレータのコードは自由にアクセスできます。私たちは、このアクセラレータが、小売や消費財の分野で、よりスケーラブルで堅牢な商品マッチングワークフローを開発し、利用可能なデータの可能性を最大限に活用することで、これらのデータの使用を取り巻く最も差し迫ったニーズに人的資源を集中させることを期待しています。
ソリューション・アクセラレーターをご覧ください。