Depending on your requirements, you might also precompute predictions and save them to a relational database.
On Sat, Jun 17, 2017 at 7:39 AM Pat Ferrel <[email protected]> wrote: > 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]> 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]> >> 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”] 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 >>> >>> >>> On Jun 16, 2017, at 10:55 AM, Cody Kimball <[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]> >>> 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]> >>>> 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/> > > >
