Skip to main content
QUICK REVIEW

[論文レビュー] An Efficient Shared-memory Parallel Sinkhorn-Knopp Algorithm to Compute the Word Mover's Distance

Jesmin Jahan Tithi, Fabrizio Petrini|arXiv (Cornell University)|May 14, 2020
Topic Modeling参考文献 13被引用数 4
ひとこと要約

本稿では、密行列演算をスパースカーネル統合に変換することで、Word Mover's Distance (WMD) の計算を高速化する共有メモリ並列 Sinkhorn-Knopp アルゴリズムを提示する。96コアで67倍の高速化を達成し、ネイティブなPython実装と比べて700倍以上高速化される。本手法は、SDDMM_SpMM統合と最適化されたユークリッド距離計算を組み合わせ、現代のCPU上で高性能な意味的テキスト類似度計算を実現する。

ABSTRACT

The Word Mover's Distance (WMD) is a metric that measures the semantic dissimilarity between two text documents by computing the cost of moving all words of a source/query document to the most similar words of a target document optimally. Computing WMD between two documents is costly because it requires solving an optimization problem that costs \(O(V^3log(V))\) where \(V\) is the number of unique words in the document. Fortunately, the WMD can be framed as the Earth Mover's Distance (EMD) (also known as the Optimal Transportation Distance) for which it has been shown that the algorithmic complexity can be reduced to \(O(V^2)\) by adding an entropy penalty to the optimization problem and a similar idea can be adapted to compute WMD efficiently. Additionally, the computation can be made highly parallel by computing WMD of a single query document against multiple target documents at once (e.g., finding whether a given tweet is similar to any other tweets happened in a day). In this paper, we present a shared-memory parallel Sinkhorn-Knopp Algorithm to compute the WMD of one document against many other documents by adopting the \(O(V^2)\) EMD algorithm. We used algorithmic transformations to change the original dense compute-heavy kernel to a sparse compute kernel and obtained \(67 imes\) speedup using \(96\) cores on the state-of-the-art of Intel extregistered{} 4-sockets Cascade Lake machine w.r.t. its sequential run. Our parallel algorithm is over \(700 imes\) faster than the naive parallel python code that internally uses optimized matrix library calls.

研究の動機と目的

  • Word Mover's Distance (WMD) の計算コストがV個の固有語に対してO(V³log V)で増加するという高コスト問題に対処すること。
  • 1つの照合文書と複数のターゲット文書を同時に処理するWMDの効率的並列計算を可能にすること。
  • Sinkhorn-Knoppアルゴリズムにおける密行列演算の計算負荷を、アルゴリズム的変換によってスパースカーネルに低減すること。
  • OpenMPとC++を用いて、共有メモリ型マルチソケットx86システム上で高い性能と強スケーリングを達成すること。

提案手法

  • WMD計算の複雑さをO(V³log V)からO(V²)に低減するために、エントロピー正則化Earth Mover’s Distance (EMD)の定式化を採用する。
  • 正則化されたEMD問題を効率的に解くために、Sinkhorn-Knopp行列スケーリングアルゴリズムを適用し、高速かつ安定した収束を実現する。
  • スパース・ドレイン・ドレイン行列乗算(SDDMM)とドレイン・スパース行列乗算(SpMM)を統合した、新規のスパースカーネル統合SDDMM_SpMMを導入する。
  • ユークリッド距離計算をブロック化され、GEMMに類似した行列乗算カーネルに再構築することで、データ局所性とキャッシュ効率を向上させる。
  • 複数のCPUコアおよびNUMAドメインに跨るタスクレベル並列化のためにOpenMPを用い、拡張性を高めるためにメモリアクセスパターンを最適化する。
  • アルゴリズム的変換により、密行列計算カーネルをスパースカーネルに置き換えることで、メモリ帯域幅の圧力を軽減し、演算強度を向上させる。

実験結果

リサーチクエスチョン

  • RQ1WMD用のSinkhorn-Knoppアルゴリズムにおける密行列計算カーネルを、性能向上を図るためにスパースカーネルに効果的に変換できるか?
  • RQ2共有メモリシステムを用いて、複数のターゲット文書に跨るWMD計算を並列化することで、どの程度の高速化が達成できるか?
  • RQ3最適化された数学ライブラリを用いたネイティブな並列Python実装と比較して、高度に最適化されたC++/OpenMP実装の性能はどの程度か?
  • RQ4ユークリッド距離カーネルのアルゴリズム的最適化が、全体のWMD計算性能にどの程度の影響を及ぼすか?
  • RQ54ソケットx86サーバー・アーキテクチャにおける複数NUMAノードに跨るアルゴリズムのスケーリング特性はいかがなものか?

主な発見

  • 提示された並列Sinkhorn-WMDアルゴリズムは、Intel Cascade Lakeシステムの4つのNUMAソケットに跨る96コアで、逐次実装と比較して67倍の高速化を達成した。
  • 最適化された並列Python実装(最適化された数学ライブラリを活用)と比較して、本実装は700倍以上高速に動作した。
  • SDDMM_SpMMカーネル統合により、メモリ帯域幅の圧力を軽減し、演算強度を向上させ、現代のCPUキャッシュを効率的に活用できるようになった。
  • 最適化されたGEMMに類似したユークリッド距離カーネルは、WMDワークロードで一般的な高さが大きく太さが小さい行列に対して、データ局所性を向上させることで性能を向上させた。
  • アルゴリズムはNUMAドメインに跨って良好にスケーリングされ、4ソケットシステムでは、ソース文書に37語が含まれる場合にピーク性能が観測された。
  • パフォーマンストレースではコールドスタート効果が観察され、v_r = 31のケースでキャッシュミスが原因で最も悪い高速化率が得られた。これは、入力順序とデータレイアウトの重要性を示している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。