レコメンドの精度を改善をしようとして失敗した要因を考察する

この投稿はアイスタイル Advent Calendar 2021の14日目の記事です。

こんにちは。アイスタイルデータ分析基盤の運用を担当している kakizakih です。
みなさま、”@cosme アプリおすすめタブ”と “@cosme shopping トップページ”で商品や記事のレコメンドが出ていることはご存知でしょうか?
こちらの機能は、それぞれ今年の6月と11月にリリースされたものになります。
そして、このレコメンドロジックの作成を担当させていただきました。
本記事では、レコメンドロジックの精度改善をしようとして失敗した話をご紹介します。

レコメンドデータ作成の流れ


今回精度改善を行なったレコメンドは、@cosme アプリのおすすめタブで利用しているものになります。
アイスタイルでは社内外のデータを BigQuery へ取り込んでおり、アクセス履歴や購買履歴、商品情報などを組み合わせてレコメンドデータを作成しています。
レコメンドデータは Cloud Composer を利用しており、全部で4つのレコメンドロジックを作成しています。


データ作成の流れ

  • ① レコメンドデータを Cloud Storage へバックアップ
  • ② レコメンドロジック共通データを BigQuery へ作成
  • ③ 4つのレコメンドデータを BigQuery へ作成
  • ④ BigQuery から CSV 出力し、Cloud Storage へ格納

精度改善方針と実践


レコメンドロジックを作って終わりではなく、PDCAを回して改善していこうとチームで話し合いました。
自社のKPIである “商品LIKEや購買などのMAU増加”を促すことを改善の定義とし、その中でも商品LIKEにフォーカスしました。
4つあるロジックのうち、1ロジックを対象としています。


検証の流れ

  • @cosme を閲覧中心で利用してきたユーザーさんが、商品LIKEをするキッカケを見つける
  • 上記の要素をロジックに組み込む
  • ロジック改修前後で商品LIKE率などが上がるかを検証する

精度改善の結果

検証期間中、ロジックの変更を合計3回行い、それぞれの結果を①〜③にまとめています。
グラフは商品LIKEをしたユーザーさんの割合を表しています。

結果①

ロジック改修前と後の1週間でユーザー数の割合を比較しました。グラフは1週間の数値変動を、表は変更前1週間のユーザー数の割合を1とした場合の増減を表しています。

改修前(%) 結果①(%)
商品LIKEユーザー割合 1.0 0.5

改修をしたタイミングでガクッと商品LIKE率が下がってしまい、変更前と比べてユーザー数の割合が半減しています。
別の数値でも、レコメンド商品の閲覧率は変わらないのに対して、 click 率は下がっていました。
改修していないロジック2つの数値変動を加味しても、下がっているように思えます。
変更点は2つあり、そのどちらが要因となったかを確認するため、変更点を段階的に戻すことにしました。

結果②

段階的に変更点を戻して数値を見ていこうとしたところ、変更すべきではないところを変更していたことが発覚しました。

おすすめの商品を絞り込むため、”とある数値の多い順”としていたのですが、1回目の変更で誤ってその部分を消してしまっていたのです。
これでは本来検証したいことができていなかったことになります。
“とある数値の多い順”に戻し、改めて本来検証したかったロジックで計測し直しました。
変更して1週間の数値で比較すると・・・

結果①(%) 結果②(%)
商品LIKEユーザー割合 0.5 0.6

商品LIKE率が若干回復しています。しかし、変更前のロジックと比べると数値は低いままの結果となりました。

結果③

そうこうしているうちに、BEAUTY DAY の予約期間がせまってきました。通常よりアクセスも増えて正確な検証ができないと判断し、検証は一旦おやすみして変更前のロジックに戻しました。
ロジックを戻してすぐに・・・

商品LIKEの数値がグンと上がっています。母数のユーザー数も多くなってはいますが、それを考慮しても変更前のロジックの方が精度が高い結果となりました。

結果まとめ

上記をまとめると、

  • 【結果①】変更しすぎたロジック
    商品LIKE率が半減
  • 【結果②】本来検証したかったロジック
    結果①と比べると商品LIKE率が回復するも、変更前よりも低い
  • 【結果③】変更する前のロジック
    結果①②よりも商品LIKE率が大幅に回復

となります。検証期間をそれぞれ1週間単位で、ロジック変更の効果測定ができるよう他の施策と被らないように行いました。
結果③は BEAUTY DAY の予約期間に差しかかりましたが、それを踏まえても、数値低下はロジック変更による要因が大きいと考えられます。

考察と今後の展望

以上の結果から、

  • 商品を選定する指標である、”とある数値”がレコメンドに効いている
  • 変更した2点のうち、どちらかもしくは両方がレコメンド精度を下げる要因となる

ということがわかりました。
変更するつもりのなかった部分に手を加えてしまったため、最後まで検証することができませんでした。
しかし、その変更によってレコメンドに効く指標の一つが確認できたことは良かったと思います。
変更した2点においても、数値の変わり具合から、片方の変更が大きな要因ではないかと推測しています。
これらの知見を活かし、ユーザーさんとブランド・商品を繋げるための改善を今後もしていく予定です。
ゆくゆくは Recommendations AIVertex Matching Engine といった機械学習の利用や、ユーザーさんに合わせてロジックを変えていく仕組みを作りたいと考えています。

最後までご一読くださりありがとうございました!
明日は新卒の omuramao さんの記事です、お楽しみに!

2019年6月中途入社。webアプリケーション開発やデータ分析に携わり、現在はデータ分析基盤構築の開発を担当。