共創のご相談はこちら
2025年4月 特集:レコメンド特集

web3データの特徴をとらえたレコメンドエンジンの開発

  • #データ/AI活用
English

九島 哲哉(くしま てつや)  
楊 氷潔(よう ひょうけつ)
相場 邦宏(あいば くにひろ)  
橋本 雅人(はしもと まさと)
渡邉 聡紀(わたなべ さとき)

サービスイノベーション部

あらまし

近年,ブロックチェーンが普及し始め,Bitcoinなどの暗号資産や,NFTといったトークンの売買が盛んである.さまざまなトークンが爆発的に増える中,自分の欲しいトークンが推薦されることで,ユーザが探しやすくなることが望まれている.また,web3の世界では,ブロックチェーンに書き込まれた情報に誰でもアクセスできるため,全マーケットの取引履歴を基にしたレコメンドエンジンの構築が可能となる.そこでドコモは,世界に先駆けて,複数のマーケットに対応できるNFTレコメンドエンジンを開発した.

01.まえがき

近年,web3*1技術の進展とともに,トークン*2を利用した新たな経済圏が形成されつつある.その中でも,NFT(Non-Fungible Token)*3は特に注目を集めているトークンであり,その取引量も急激に増加している.NFTは,デジタルアート,音楽,ゲームアイテムなど,さまざまな範囲での応用が進み,ドコモでも,「MetaMe NFTマーケット」などのマーケットプレイスを次々と立ち上げている[1]が,この急激なweb3市場の成長の中で2つの課題が生じている.
第1は,膨大なコンテンツの中から本当に欲しいものにユーザがたどり着くことが困難であるという課題である.Web2.0*4と同様,web3市場にも多様なプラットフォームとNFTなどの無数のアイテムが存在するため,人気のあるアイテムばかりが注目され,その背後にある最もそのユーザに適した選択肢を当該ユーザが発見することができずに購買行動を終えることがしばしば起こり得る.
第2は,web3技術の特性上,従来のWeb2.0におけるレコメンドエンジン*5がそのままweb3市場に適用できないという課題である.Web2.0におけるレコメンドエンジンは中央集権的に情報収集を行うことを前提としているが,web3では非中央集権的にデータが管理されており,ユーザの取引データの収集方法やその記録内容が複雑なため,web3データの特性をよく理解した上でレコメンドの手法を適用していく必要がある.
ドコモでは,web3データの抽出,独自の加工処理,そして,グラフニューラルネットワーク(GNN:Graph Neural Network)*6[2]技術の活用により,web3データを扱い,高い精度でレコメンドが実現可能なエンジンを開発した.本稿では,このweb3技術を活用したNFTレコメンドエンジンの設計と実装について解説する.

  1. web3:Web1.0,Web2.0(*4参照)に続く「第3世代」としてその名がつけられた,ブロックチェーン(*18参照)技術を活用した分散型のネットワークのこと.
  2. トークン:ブロックチェーン(*18参照)上で発行・管理されるNFT(*3参照)や暗号資産などのデジタル資産の総称.
  3. NFT:ブロックチェーン(*18参照)技術などを活用しその唯一性が担保される代替不可能なトークンのこと.
  4. Web2.0:従来の情報を共有するだけの時代(Web1.0)と異なり,SNSなどをはじめとする動的で情報の流れが双方向な現代のWebのこと.
  5. レコメンドエンジン:レコメンド(推薦)技術を扱うエンジンのこと.一般的に,特定のロジックを用いて商材単位のユーザに対するスコアを計算し,スコアの降順に推薦を行う仕組み.
  6. グラフニューラルネットワーク(GNN):ネットワーク理論を基にした機械学習の一種で,グラフ構造を扱うために設計されたニューラルネットワークのこと.ソーシャルネットワーク分析,化学分子の予測,推薦システムなど多くの応用分野で成功を収めており,グラフデータの複雑な関係をモデル化するための強力なアルゴリズムである.

02.関連研究

ドコモでは,NFTをレコメンドするための技術として,さまざまなレコメンドのタスクで成果を挙げているGNNを採用した.ここでは,レコメンドにおいて,GNNがなぜ有効なのか,また,NFTとGNNの関係性や親和性についても解説する.

2.1 GNNとレコメンド

GNNは,グラフ構造*7データの学習に特化したディープラーニングモデル*8であり,ノード*9間の関係性やグラフ全体の構造を効果的にとらえることができる手法である.特に,ノード分類やリンク予測,グラフ分類など,多様なタスクにおいて高い性能を示している.
GNNをアイテムのレコメンドに応用した例として,JODIE(Joint Dynamic Item Embedding)が提案されている[3].JODIEは,ユーザとアイテムの動的埋込み*10を学習し,時間的相互作用のシーケンス*11から未来の埋込みを予測することに特化している.
従来の動的埋込み手法は,ユーザの行動に基づいて埋込みを生成するものの,アイテムの現在の状態を考慮せず,ユーザの埋込みのみを動的に更新するという問題があった.これに対し,JODIEは2つのリカレントニューラルネットワーク(RNN:Recurrent Neural Network)*12を用いて,ユーザとアイテムの埋込みを相互に更新することで,両者の依存関係を明示的にモデル化している.
具体的には,JODIEではユーザの埋込みを更新する際に,相互作用したアイテムの埋込みを利用し,反対にアイテムの埋込みもユーザの埋込みを基に更新する.このアプローチにより,従来の手法が抱えていた「アイテムの状態を無視する」という問題に対応し,より正確な埋込みを生成することを可能としている.
また実験結果において,JODIEではMRR(Mean Reciprocal Rank)*13やRecall@10*14の指標で,従来手法に対して20%以上の改善を達成しており,その有効性が示されている.
このように,GNNをアイテムのレコメンドに応用することで,その高精度化が期待される.

2.2 GNNを用いたweb3データの表現

NFT取引のレコメンドにおいてもグラフ表現は有効である.
NFT取引では,NFTやWallet*15間でさまざまなスマートコントラクト*16が実行され,トランザクション*17履歴としてブロックチェーン*18に記録される.スマートコントラクトには,ERC(Ethereum Request for Comments)*191155[4]の場合,データのNFT化に使われるMint*20やNFTの権利移譲・購買に使われるTransferAll*21などがある.
NFT・Walletをノードとし,トランザクション関係をエッジ*22とすることで,NFT取引をグラフとして表現することができる.ここで,ノードが複数種類(NFTとWallet),エッジが複数種類(MintやTransferAllなど)を有するグラフを異種グラフと呼ぶ.
実際に,web3の分野でもGNNが使われている.NFT取引においては,フィッシング詐欺などの不正取引への対策がweb3の重要な課題となっており,文献[5]の研究においても,暗号通貨における不正取引を検出するための技術として,ノードの種類や関係性を考慮したGNNを採用している.さらにこの研究では,いくつかのGNN手法を比較した結果,R-GCN(Relational Graph Convolutional Network)が最も精度が高かったと報告している.R-GCNは上記の異種グラフを扱えるGNN手法で,GCNを複数種類のノードおよびそれによる複数種類のエッジに対応するように拡張したものである.文献[5]の研究は,ドコモの取組みとはタスクが異なるが,NFT取引を捕捉するという意味では親和性があると考え,レコメンドエンジンの開発にあたって,研究報告において最も精度の高かったR-GCNを採用した.

  1. グラフ構造:ノード(*9参照)とエッジ(*22参照)で構成されるデータ表現.
  2. ディープラーニングモデル:多くの中間層をもつ機械学習モデルの総称.
  3. ノード:グラフにおける頂点のこと.レコメンドエンジンにおいては,ユーザや商材をノードとして表現することが多い.
  4. 埋込み:データの特徴を保持しつつ低次元のベクトルに変換する手法.
  5. シーケンス:システム間や機能ブロック間などで取り決める処理の順序.
  6. リカレントニューラルネットワーク(RNN):時系列的なデータを用いて将来のデータの予測を行うディープラーニングモデルの1つ.
  7. MRR:各クエリに対し,最上位の正解アイテムの順位の逆数を求め,全クエリで平均した評価指標.
  8. Recall@10:正解アイテムのうち,推薦結果の上位10件に含まれる割合を示す評価指標.
  9. Wallet:ブロックチェーン(*18参照)上の暗号資産やNFTなどの資産を管理し,取引を実行するためのデジタルアカウント.
  10. スマートコントラクト:条件が満たされると契約の履行が自動実行されるブロックチェーン(*18参照)上のプログラム.
  11. トランザクション:ブロックチェーン(*18参照)上で記録・承認される資産移動や契約実行などの取引情報の単位.
  12. ブロックチェーン:分散型台帳技術.ネットワークを構成する複数のコンピュータに,暗号化技術を使って取引情報などを鎖のように繋げて記録する手法.
  13. ERC:トークンの仕様や動作が定義されたEthereumにおける標準規格.
  14. Mint:NFTや新しいトークンをブロックチェーン上に発行する処理.
  15. TransferAll:保有するすべてのトークンを特定のアカウントに一括送信する処理.
  16. エッジ:グラフにおける頂点同士を結ぶ辺のこと.頂点間の関係を表現する.

03.提案手法

ドコモでは,NFTレコメンドエンジンとして以下の3つの機能を実装し,ブロックチェーンデータの取得から必要なデータの抽出,レコメンドリストの計算,リストのマーケットへの出力までを実現した(図1).

  • ETL(Extract, Transform, Load)*23/Indexer部
  • R-GCNによる学習・推論部
  • ベクトルDB部

以降では,各部の機能について解説する.

3.1 ETL/Indexer部

ETL/Indexer部では,レコメンドのために必要になるデータの収集や変換,加工を行う.現在のレコメンドエンジンは,EthereumとPolygonを対象のブロックチェーンとしている.
EthereumはNFTを使用する際に,標準的に利用されているブロックチェーンである.仕組みとしてスマートコントラクトをもつことが特徴であり,これを利用してNFTの所有などの契約状態をブロックチェーンに記録している.Polygonは,Ethereumと互換性をもつブロックチェーンであり,Ethereumをスケールさせる目的で開発されている.
ブロックチェーン上のデータは,NFTの情報などを基にした検索が不可能であるために,レコメンドエンジン上でデータの収集をまず行う必要がある.このため,ETL/Indexer部はブロックチェーンのノードに接続し,トランザクションの情報を収集する.トランザクションのデータは,そのままでは利用できないため,変換が必要である.一般的にはERC721[6],ERC1155などの一定の規格に従って記録がなされているため,それらに従って変換を行い,所有者や移転者,NFT自体の情報を抽出する.これらをDB上に記録することで,R-GCNの学習に必要なデータを揃えることができる.また,ETL/Indexer部では規格が増えた場合にはそれに対応可能なように,拡張可能性をもたせた実装を行っている.

3.2 R-GCNによる学習・推論部

学習・推論部では,ETL/Indexer部で収集・変換されたNFTの購買データを用いてグラフ構築を行った.グラフ構成としてはNFTとWalletの2種類のノードを用意し,NFTの購買(以下,Transfer)があったWalletにエッジを定義した.ここで,Walletにはユーザが紐づいている.このように複数種類のノード種別を含む異種グラフに対応するGNNとして,ドコモではR-GCNを利用した.
学習にあたり,ノードごとに特徴量*24を設定する.設定には,ランダムなベクトルを設定する方法と,それぞれのノードを特徴づけるベクトルを設定する方法の2パターンがある.今回は簡易に実装を進めるため,前者の方法を用いている.一方,後者の方法では,例えばNFT自体のメタデータやWalletの利用傾向などの特徴量を取り入れることにより,さらなる精度改善も見込める.
R-GCNでは,上記で定義したNFT – Wallet間のグラフと各ノードの特徴量を用いてR-GCNへの入力とする.推論時には,NFTノードとWalletノード間で購買関係がありそうか否か(すなわち,エッジが定義できそうか否か)を予測する.このようにノード間のエッジの有無を推定するタスクはリンク予測と呼ばれ,GNNのレコメンド向けのタスクとして知られている.
各ノードの間のエッジ有無は,ノードそれぞれがもつベクトル同士の演算で定義される.ここではDistmultと呼ばれる手法[7]を用いて0から1の間のスコアを算出し,より値が大きいものはエッジが定義できそうなものとしてWalletへのレコメンド対象のNFTとする.
R-GCNでは,各ノードの特徴量に対して,隣接するノードの特徴量を,エッジを通じて重み付け集約させることで,特徴量の更新を行う.
エッジがあるノード同士のDistmultの結果が,エッジが無いノード同士の結果より大きい値になるように,重みの更新を行っていき学習を行う.この処理は,グラフのサンプリングによって取得した部分グラフに対して繰り返される.
この部分グラフで学習を行ったR-GCNモデルをグラフ全体に適用することで,学習・推論部はすべてのノードが更新された特徴量を得る.このノード特徴量はグラフ構造を考慮したものになり,購買関係が発生しそうなWallet - NFTのペアはDistmultの結果の値も大きく,反対に購買関係が発生しなさそうなペアはDistmultの結果の値も小さくなる.実際のレコメンドにおいては,Walletごとに各NFTとのDistmultの出力値を計算することで,そのNFTを推薦すべきかを決定する.

3.3 ベクトルDB部

ベクトルDB部では,R-GCNモデルを用いて学習・推論部で抽出したWalletとNFTそれぞれのベクトル情報をDBに格納する.レコメンドを実施する際には,この情報を基に,各Walletに対するレコメンドリストを計算する.具体的にはレコメンド対象となるWalletのベクトルと各NFTのベクトルとのDistmult値を計算し,その結果を降順にレコメンドリストとして出力する.
ここで,距離計算に際しては,近似最近傍探索という技術を用いる.近似最近傍探索は,大量のデータから対象のベクトルに近いベクトルを効率的に見つける技術である.これを用いることで,すべてのWalletとNFTのDistmult値の計算を行わずとも,効率よくレコメンドすべきNFTのリストを抽出することができる.

ドコモでは,これらの技術の組合せにより,高い精度を保ちつつ,効率的にレコメンドを実現可能なエンジンを開発した.

  1. ETL:データを収集し,必要なデータを編集した上で,情報を格納する一連の処理.
  2. 特徴量:データから抽出される,そのデータを特徴づける値のこと.

04.検証と結果

4.1 オフライン検証と結果

(1)概要

ドコモでは,実装したレコメンドエンジンの効果を検証するため,人気のFPS(First Person Shooting)*25ゲーム「Matr1x Fire」[8]のゲームアイテムのNFTを用いてオフライン検証を実施した.具体的には,ERC721規格のトランザクション情報から,Transferが行われた際のログを収集した.データセット*26として約1カ月間のTransferログを使用し,前半3週間を訓練データ,最終週のデータをテストデータとした.この訓練データを学習したレコメンドエンジンによってユーザが購入するであろうと推論されたアイテムと,テストデータにおいて実際に購入されたアイテムとの一致度合を評価した.これにより,実際のマーケット環境に近い形での評価が可能となる.
評価指標として,ランキング*27評価に適したMAP(Mean Average Precision)*28を採用した.MAPは,レコメンドリストのうち,実際に選択(購入,クリックなど)されたアイテムが上位にあるほど高いスコアとなる指標であり,ユーザが上位のアイテムを優先的に閲覧する実際の行動パターンと整合性が高いため本検証に採用された.本稿では,実際にユーザがNFTを購入したことを示すスマートコントラクトであるTransferをした場合に,購入したとみなしMAPを算出した.
比較対象として,訓練データ期間中の取引数に基づく人気ランキングを用意した.人気ランキングは全ユーザに同じレコメンドリストを提供するのに対し,提案手法のGNNモデルに基づくレコメンドエンジンは,ユーザごとの過去の取引履歴から個別のレコメンドリストを生成し提供する.これら2つの手法を用いた際の結果を比較した.

(2)結果

提案手法の有効性を検証するため,定量的評価と定性的評価を実施した.
定量評価では,提案手法のMAPスコアは比較手法の人気ランキングに比べ,有意性のある13%の性能向上を達成した.この結果は,GNNモデルがユーザの個別の嗜好を適切に学習できていることを示している.
定性評価では,特定のユーザのレコメンド結果を分析した.人気ランキングでは,同種のゲームアイテムが推薦されていたのに対し,提案手法に基づくレコメンドでは,ユーザの購入履歴に見られるさまざまなデザインや種類を反映した推薦を行えていることが確認された.
これらの結果は,取引データを活用したNFTレコメンドエンジンの実現可能性を示した.特に,GNNモデルによる取引ネットワークの学習が,個々のユーザの嗜好を反映した効果的な推薦を可能にすることが明らかになった.

4.2 オンライン検証と結果

また,実ユーザへのレコメンド効果を確認するため,音楽NFTマーケット「Sound Desert」[9]においてオンライン検証を実施した.具体的には,Sound DesertのNFT購入画面上に本技術で算出したNFTを表示させた場合と,Sound Desertの運営が設定した人気ランキングを表示した場合の効果の差を確認した.検証の期間は1カ月間とし,ERC1155規格のトランザクション情報から,TransferSingle*29が行われた際のログを収集し検証に用いた.検証における学習方法やアルゴリズムは前述したオフライン検証と同様である.評価指標としてはクリック率を使用した.
検証結果としては,運営が設定した人気ランキングと比較して,レコメンドを表示した際のクリック率が3倍以上であったことを確認した.この結果から,オフラインでの結果のみならず,実際のマーケット上においても本技術の有効性が示された.

  1. FPS:プレイヤー視点で銃火器を使用し戦闘を行うシューティングゲームの一種.
  2. データセット:特定の目的や分析のために収集されたデータの集まり.
  3. ランキング:サービス全体でクリック・購買が多い順に商品・コンテンツを並べたもの.最も基本的なレコメンドアルゴリズムの1つ.
  4. MAP:推薦結果の各クエリに対する平均適合率を算出し,全クエリで平均した評価指標.
  5. TransferSingle:1つのトークンを特定のアカウントに送信する処理.

05.あとがき

本稿では,GNNを応用したNFTレコメンド手法について解説した.各検証では,比較手法と比べて精度向上が確認でき,本技術の有効性が示唆された.
今後の展望として,多様なブロックチェーンやERC規格への対応による本技術の適用可能なデータの拡充や,複数のNFTマーケット上での実証実験による本技術の有効性の検証を進めていく予定である.また,グラフデータを扱う際,大規模なデータにも耐えられるように分散処理を施す工夫も実施していく予定である.

文献

  • [1] MetaMe:“MetaMe NFTマーケットなら欲しいNFTがきっと見つかる.”
    https://nft.metame.ne.jp/ja別ウインドウが開きます
  • [2] F. Scarselli, M. Gori, A. C. Tsoi, M. Hagenbuchner and G. Monfardini:“The Graph Neural Network Model,”IEEE Transactions on Neural Networks, Vol.20, Issue.1, pp.61-80, Jan. 2009.
  • [3] S. Kumar, X. Zhang and J. Leskovec:“Predicting Dynamic Embedding Trajectory in Temporal Interaction Networks,”Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, pp.1269-1278, Jul. 2019.
  • [4] Ethereum Improvement Proposals:“ERC-1155: Multi Token Standard,”Jun. 2018.
    https://eips.ethereum.org/EIPS/eip-1155別ウインドウが開きます
  • [5] H. Kanezashi, T. Suzumura, X. Liu and T. Hirofuchi:“Ethereum Fraud Detection with Heterogeneous Graph Neural Networks,”arXiv preprint arXiv:2203.12363, Jul. 2022.
  • [6] Ethereum Improvement Proposals:“ERC-721: Non-Fungible Token Standard,”Jan. 2018.
    https://eips.ethereum.org/EIPS/eip-721別ウインドウが開きます
  • [7] B. Yang, W.-t. Yih, X. He, J. Gao and L. Deng:“Embedding Entities and Relations for Learning and Inference in Knowledge Bases,”arXiv preprint arXiv:1412.6575, Aug. 2015.
  • [8] Matr1x Fireホームページ.
    https://fire.matr1x.io/別ウインドウが開きます
  • [9] Sound Desertホームページ.
    https://sound-desert.com別ウインドウが開きます
Vol.33 No.1 表紙に戻る
このページのトップへ