predictionio-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Donald Szeto <don...@apache.org>
Subject Re: PredictionIO return array of objects
Date Sat, 17 Jun 2017 17:49:31 GMT
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 <pat@occamsmachete.com> 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 <cody-kimball@pluralsight.com>
> 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 <donald@apache.org> 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 <pat@occamsmachete.com>
>> 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 <cody-kimball@pluralsight.com>
>>> 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 <pat@occamsmachete.com>
>>> 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 <cody-kimball@pluralsight.com>
>>>> 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/>
>
>
>

Mime
View raw message