3

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"
}
4

1 に答える 1