ECの人工知能活用、まずは行列
さて今回は、実際にどう人工知能・機械学習がECで活用されるのかの具体例について考えてみます。
まずは、一番単純な例からです。ユーザーを縦軸、アイテムを横軸とした行列を考えてみます。縦軸、横軸が逆でも大丈夫です。行列というと数IIっぽくてアレルギーがあるかもしれませんが、Excelのような表計算があつかうのも行列です。
アイテム/ユーザー | A | B | C | D | E |
---|---|---|---|---|---|
a | 1 | 0 | 0 | 1 | 1 |
b | 0.5 | 1 | 0.9 | 0.3 | 0.7 |
c | 0.8 | 0.3 | 0.1 | 0.7 | 0.5 |
d | 0 | 0.8 | 1 | 0.1 | 0.5 |
e | 0.2 | 0.1 | 0.4 | 0 | 0.3 |
ところで、ユーザーとアイテムは計算上は交換可能ですが、出力は常にユーザーです。アイテムに計算結果を渡しても、アイテムは自分で考えたり行動したりはしません。
「行動に影響を与える部分」を制御モデルと呼んだりもします。
- ECの画面でアイテムをレコメンドする(ことで購買を期待する)
- メールで新商品をお知らせする(ことで購買を期待する)
- 機械学習は関係ないですがイチオシの商品をトップで大きく表示する(ことで購買を期待する)
これらはすべて制御モデルです。ちなみに、制御モデルとしてわかりやすいのは道路標識や信号です。
- 信号が赤になれば止まる
- 標識に止まれとあれば止まる
- 制限速度があればその速度を超えないようにする
これらがつまり制御モデルです。
人工知能・機械学習の活用を考えるときは、最後は「制御モデルにつながないと意味がない」をまずおさえる必要があります。
ユーザーとアイテムの行列を考えるとき、そこの値に入るのはなんでしょうか。「実はここがとても重要」なのですが、これについてはまたのちほど詳しく解説します。
とりあえず、ユーザーによるアイテムの評価を入れてみます。実はこの評価の値はそんなに良い指標ではないことが多いのですが、あくまで例なので大目に見てください。
たとえば、 1,2,3,4,5 という5段階評価であれば、その数値を入れます。ちなみに値はなんでもいいのですが、0から1の間にするのが一般的です。
これを正規化(normalize)と言います。 1,2,3,4,5 であれば、とりあえず 0.2,0.4,0.6,0.8,1.0 とするなどです。適切な正規化によって、100段階評価も5段階評価も一緒くたに扱うことができます。