Prediction.io を使用してレコメンデーション サービスを構築します。Universal Recommender ( http://templates.prediction.io/PredictionIO/template-scala-parallel-universal-recommendation ) は良いテンプレートだと思います。私のウェブサイトには EPG が表示されており、単純な PoC のユーザー ページ ビューに基づいてレコメンデーションを行いたいと考えています。ページ ビューは、性別、俳優、タグ、チャンネル、花束などの属性を持つブロードキャストです。
最初は、プライマリ イベントを 1 つだけ送信します。ユーザーにはブロードキャストが表示されます。
{
"event" : "view",
"entityType" : "user",
"entityId" : "userId",
"targetEntityType" : "item",
"targetEntityId" : "broadcastId",
"properties" : {},
"eventTime" : "2015-10-05T21:02:49.228Z"
}
ドキュメントを理解したら、属性を追加し、新しいアイテムをピオする方法を学ぶために、毎日 crontask を使用して新しいブロードキャストを送信する必要があります。
{
"event" : "$set",
"entityType" : "item",
"entityId" : "broadcastId",
"properties" : {
"bouquet" : ["B1", "B2"],
"people": ["P1", "P2"],
"channel": ["C1"],
"availableDate" : "2015-11-23T21:02:49.228Z",
"expireDate": "2016-10-05T21:02:49.228Z"
},
"eventTime" : "2015-11-23T21:02:49.228Z"
}
さて、ブロードキャストエンティティで属性を使用する方が良いのか、それとも二次イベントを送信する方が良いのかわかりませんか? 例えば :
{
"event" : "view-bouquet",
"entityType" : "user",
"entityId" : "userId",
"targetEntityType" : "item",
"targetEntityId" : "bouquetId",
"properties" : {},
"eventTime" : "2015-10-05T21:02:49.228Z"
}
{
"event" : "view-people",
"entityType" : "user",
"entityId" : "userId",
"targetEntityType" : "item",
"targetEntityId" : "peopleId",
"properties" : {},
"eventTime" : "2015-10-05T21:02:49.228Z"
}
...
{
"event" : "view-channel",
"entityType" : "user",
"entityId" : "userId",
"targetEntityType" : "item",
"targetEntityId" : "channelId",
"properties" : {},
"eventTime" : "2015-10-05T21:02:49.228Z"
}