To attach properties to items in the UR you will have to denormalize so the 
only key is the item-id, and they are set using $set events. I have commented 
on the feature request.


On Jun 16, 2017, at 9:13 PM, Cody Kimball <[email protected]> wrote:

It is very likely that the metadata will change periodically, so unfortunately 
I won't be able to denormalize. A key value store is certainly a possibility 
that could be integrated into returned predicted responses.

@Pat, I went ahead and created that issue with the feature request. Meantime in 
effort to maximize the potential and use of PredictionIO I am trying to see 
where the properties are being stripped out. I am assuming this is done in 
Serving.scala?


On Fri, Jun 16, 2017 at 2:18 PM Donald Szeto <[email protected] 
<mailto:[email protected]>> wrote:
It also depends on how much you are willing to denormalize. If your items' 
metadata don't change, it would be fine to send items' metadata in as part of 
the event.

If you cannot denormalize and your scale is huge, you might want to consider 
putting metadata in a KV store.

On Fri, Jun 16, 2017 at 12:19 PM, Pat Ferrel <[email protected] 
<mailto:[email protected]>> wrote:
If you are setting properties of items, these are internally returned with the 
item ids and stripped off from the results before the query response. I think 
it would be a simple mod to leave them instead of stripping so you’d have to 
mod the code and later merge with newer updates if they are required. 

This would require you send $set events to the EventServer with properties for 
every item but not all possible types are supported and the format of the 
returned properties is fixed so you would need to deal with that. Basically all 
attributes must be encoded in named JSON arrays of strings like “image”: 
[“http://image/url <http://image/url>”] etc. 

This is not the first time we’ve been asked for this so you can add a feature 
request: https://github.com/actionml/universal-recommender/issues 
<https://github.com/actionml/universal-recommender/issues>


On Jun 16, 2017, at 10:55 AM, Cody Kimball <[email protected] 
<mailto:[email protected]>> wrote:

Sorry yes, I am using the Universal Recommender put up by ActionML. 

I am hoping to avoid spinning up another service to simply return the queried 
results (title, description, image) to augment the prediction results. However, 
if that is the only way to do this, then I'll follow down that path. 

On Fri, Jun 16, 2017 at 11:27 AM Pat Ferrel <[email protected] 
<mailto:[email protected]>> wrote:
What template? Generally this requires you take the id and make a query to your 
catalog DB.


On Jun 16, 2017, at 9:50 AM, Cody Kimball <[email protected] 
<mailto:[email protected]>> wrote:

Architectural Design Question:

I have a model that performs as expected and returns an array of ID's with 
their associated scores. Now as I am trying to get the PIO response to render 
their associated pieces of content on our website, it looks like I will need 
not only those IDs but other meta tag values as well to render the pieces of 
content on the website properly.

My question is can the PredictionIO response array of objects be easily 
configured to return the TargetEntityID and score, as exists currently, as well 
as with a few specific items it pulls from the property list?

example:

{
  "itemScores":[
    {"item":"22","score":4.072304374729956, "title":"title1", 
"description":"helpful meta description1", "image":"imageurl1"},
    {"item":"62","score":4.058482414005789, "title":"title2", 
"description":"helpful meta description2", "image":"imageurl2"},
    {"item":"75","score":4.046063009943821, "title":"title3", 
"description":"helpful meta description3", "image":"imageurl3"},
    {"item":"68","score":3.8153661512945325, "title":"title4", 
"description":"helpful meta description4", "image":"imageurl4"}
  ]
}

Or would it make more sense to have the input value for TargetEntityID be a 
json object for PredictionIO to train on, possibly by altering the training 
model to only use the "ID" attribute from that object to train on? 

itemScores":[
    {"item": {"ID": "22", "title":"title1", "description":"helpful meta 
description1", "image":"imageurl1},"score":4.072304374729956},

Or even I could fudge the model to have targetEntityID be a large concatenated 
value, which in my mind seems like problems waiting to happen.

itemScores":[
    {"item": "22 || title1 || helpful meta description1 || 
imageurl1"},"score":4.072304374729956},

-- 
Cody Kimball
Revenue Engineer

 Don't Just Keep Up With Technology. Master It! <https://www.pluralsight.com/>


-- 
Cody Kimball
Revenue Engineer

 Don't Just Keep Up With Technology. Master It! <https://www.pluralsight.com/>



-- 
Cody Kimball
Revenue Engineer

 Don't Just Keep Up With Technology. Master It! <https://www.pluralsight.com/>


Reply via email to