前章で述べたとおり,提案手法では,
• 食材の嗜好(使用傾向)に基づく推薦
• 「栄養」に基づく推薦
• 「カロリー」に基づく推薦
• 「調理の簡単さ」に基づく推薦
• 「在庫食材の有効利用」に基づく推薦
• 「同一レシピの連続推薦の回避」に基づく推薦
を組み合わせてレシピ推薦を行っており,各推薦方法で算出される要因スコアは 値が0〜1の範囲に収まるよう正規化する.
以下では,各推薦手法の得点の具体的な算出方法について述べる.
4.1 食材の嗜好に基づいた推薦
4.1.1 推薦の方針
食材の嗜好は,石原ら[5]の推薦手法を引用し,「食材の使用頻度」と「食材の 珍しさ」に注目する.「食材の使用頻度」については,よく使われている食材ほ どユーザがその食材を好んでいると考えられるため,食材の使用回数の多さで食 材嗜好スコアを決定した.「食材の珍しさ」については,じゃが芋を3回使うより もズッキーニを3回使う方が,わざわざ珍しい食材を使っているため,よりその ユーザの嗜好を表していると考えられる.よって,食材が珍しさによって一回使 用される毎のスコアの増分を変化させた.
4.1.2 算出方法
「食材の嗜好」に基づいた推薦では,食材の特異度と使用頻度に注目して,「珍 しい食材」が「よく使われている」レシピを推薦するようレシピの得点の算出を 行う.本研究では,石原ら[5]の推薦手法を用いる.具体的には,食材iの特異度 をpi,利用頻度をuiとし,推薦候補となるレシピRjに含まれる食材集合をIjと するとき,レシピの得点SI(Rj)は式(2)のように算出される.
SI(Rj) =
∑
i∈Ijui·pi α·∑
i∈Ijpi (2)
なお,SI(Rj)の値を0〜1の間に収めるために,任意のユーザに対して∑
i∈Ijui·pi が取り得る最大の値を式(2)の分母として設定する.そのために用いる定数α (=
「食材の利用頻度スコアuiが任意のユーザに対して取りうる最大の値」)は式(3) の通りである.
α=
∑7 c=1
c−1
c ≃4.407 (3)
また,食材iの特異度piは,レシピデータベースの総数をM,レシピデータ ベース内の食材iを含むレシピ数Miを用いて式(4)のように求められる.また,
利用頻度uiは,何日前までの食事履歴を参照するかをt (本研究では一週間分の 食事履歴から利用頻度を測るため,t = 7と設定),c日前に調理したレシピをrc
とすると,式(5)のように算出される.
pi = −log10(Mi
M) (4)
ui =
∑t c=1
c−1
c ×is included(i, rc) (5)
ただし,is included(i, r)は,式(6)のように設定する.
is included(i, r) =
1 (i∈r) 0 (otherwise)
(6)
4.2 栄養に基づいた推薦
4.2.1 推薦の方針
栄養は,夕食に必要な栄養を摂取できるレシピを推薦することを目的として,
夕食時に取らなければならない栄養素をどれだけ含んでいるかに注目してスコア を決定した.栄養の計算は,栄養学に存在する食事法の一つである四群点数法[14]
に従って算出を行った.
4.2.2 [参考]四群点数法について
四群点数法[14]とは, 女子栄養大学の創立者・香川綾先生が考案された食事法 である.あらゆる食品を栄養の働きごとに四つの群で表現したものでそれぞれ,
• 一群:栄養を完全にする食品群(乳,乳製品, 卵など)
• 二群:肉や血を作る食品群(魚介,肉,豆,豆製品など)
• 三群:体の調子を整える食品群(野菜,芋類,果物など)
• 四群:力や体温となる食品群(穀類,砂糖,油脂など)
となっている.量的なバランスをとるために,食品のエネルギーを80kcal=1点と しており,成人男性の場合は一日25点(2000kcal),成人女性の場合20点(1600kcal) 分摂取することが望ましい.具体的には一群,二群, 三群が3点分ずつ, 四群で残 りの11〜16点をとるようにすると栄養バランスのとれた食事ができているとい える.
4.2.3 算出方法
栄養に基づいた推薦では,上記の四群点数法を用いてレシピの得点の算出を行 う.
ここでは,あるレシピを食べた場合に栄養の量が充足される割合(充足率)を 計算し,「より栄養の充足率が高い」レシピを推薦するようレシピの得点の算出を
行う.
具体的には,四群点数法の1〜3群(4群はカロリーの調整のために存在している ため省略)に注目して,第i群の栄養の充足率をPN uti,夕食までに摂取目標を超 えていない栄養群の数(後述のN uti(u)<3.0 となるi群の数)をX(X=0,1,2,3) とすると,レシピRの得点SN ut(R)は式(7)のように算出される.
SN ut(R) =
0.0 (X = 0)
∑3 i=1PN uti
X (otherwise)
(7)
また,夕食における第i群の摂取目標量をN uti点,レシピRの摂取栄養量を N utiR点とすると,第i群の栄養の充足率PN utiは式(8)のように算出される.
PN uti =
0.0 (N uti = 0)
N utiR
N uti (N utiR≤N uti) 1.0 (N utiR
> N uti)
(8)
ただし,ユーザuが夕食より前に摂取した第i群の摂取栄養量をN uti(u)点と すると,目標摂取カロリーN utiは式(9)のように算出できる.なお,式(9)の
「3.0」は,4群点数法の1〜3群の1日の目標摂取量が3点分(240kcal)であるこ とを意味している.
N uti =
3.0−N uti(u) (N uti(u)≤3.0) 0.0 (N uti(u)>3.0)
(9)
4.3 カロリーに基づいた推薦
4.3.1 推薦の方針
カロリーは,夕食に摂取すべきカロリーに近い値を取れるレシピを推薦できる ようにするために,どれだけ夕食に摂取すべきカロリーに近い値を摂取できるか に注目してスコアを決定した.目標カロリーの設定については,四群点数法の基 準値を利用する.
4.3.2 算出方法
カロリーに基づいた推薦は,上記の四群点数法の一日の目標摂取カロリーを元 に算出を行う.
ここでは,「より目標摂取カロリーに近いカロリーを持つ」レシピを推薦する よう,レシピの得点の算出を行う.具体的には,目標摂取カロリーをC,レシピ RのカロリーをCRとすると,レシピRの得点SC(R)は式(10)のように算出さ れる.
SC(R) =
1.0− |C−CCR| (CR <2C)
0.0 (otherwise)
(10)
ただし,ユーザuが夕食より前に摂取したカロリーをCuとして,目標摂取カ ロリーCは式(11)のように算出される.
C =
2000−Cu (男性ユーザの場合) 1600−Cu (女性ユーザの場合)
400 (Cuが一日の目標摂取カロリーを 超える場合)
(11)
4.4 調理の簡単さに基づいた推薦
4.4.1 推薦の方針
調理の簡単さに基づいた推薦では,時間をかけずに調理できるレシピが手軽で あるという考えから,レシピの調理時間に注目してスコアを決定した.
4.4.2 算出方法
調理の簡単さに基づいた推薦では,レシピの調理時間を用いてレシピの得点を 算出する.
ここでは,上記で述べたように「より調理時間が短い」レシピを推薦するよう
レシピの得点の算出を行う.ただし,夕食の調理時間の平均が52分であること から,余裕を見積もっても調理時間が120分を超えることはないと考え,調理時 間が120分以上のレシピの得点を0.0にするよう算出方法を設定した.具体的に は,レシピRの調理時間をCT(R)分とすると,レシピRの得点ST(R)は式(12) のように算出される.
ST(R) =
1.0− CT120(R) (CT(R)≤120) 0.0 (CT(R)>120)
(12)
4.5 在庫食材の利用に基づいた推薦
4.5.1 推薦の方針
在庫食材の利用に基づいた推薦は,在庫食材の利用によって余剰食材の有効活 用と食費の削減が可能になるため,どれだけ在庫食材を多く使用できるかに注目 してスコアを決定した.
4.5.2 算出方法
在庫食材の有効利用に基づいた推薦では,在庫食材の使用量からレシピの得点 を算出する.
具体的には,レシピの材料集合をIRとすると,レシピRの得点SS(R)は式(13) のように算出される.
SS(R) =
∑
k∈IRW(k)
|IR| (13)
ここで,家に存在する在庫食材の集合をIstkとすると,W(k)は式(14)のように 算出される.
W(k) =
1 (k∈Istk) 0 (otherwise)
(14)
4.6 同一レシピの連続推薦の回避に基づく推薦
4.6.1 推薦の方針
同一料理の連続推薦やパターン化を回避するために,食事履歴に基づいて同じ レシピを推薦候補から除外する仕組みを追加した.具体的には,「同じレシピ推薦 禁止期間」と「同じレシピを抵抗なく食べられるのは何日後か」(推薦禁止とまで はいかないがまだ同じレシピを食べることが嫌な期間を脱する日)の2つのユー ザ情報を利用して,ユーザが同じレシピを敬遠する傾向を表現できるようにスコ アの算出を行った.
4.6.2 算出方法
同一料理の推薦を回避する目的とした推薦では,同じレシピが前に食べられた 日付に注目してその日から離れているほど点数が高くなるようにレシピの得点を 算出する.
具体的には,同じレシピの推薦禁止期間をX日,同じレシピを抵抗なく食べら れるのは何日後かの情報をY 日とし,そして,レシピRを前に食べた日付をD 日前とすると,レシピRの得点SS(R)はDを用いて式(15)のように算出される.
SS(R) =
0 (D < X)
D−X
Y−X (X ≤D≤Y)
1 (D > Y or記録期間中食べていない)
(15)