Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id A0FE1200BDC for ; Wed, 14 Dec 2016 09:37:20 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 9F735160B19; Wed, 14 Dec 2016 08:37:20 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id AE867160B13 for ; Wed, 14 Dec 2016 09:37:18 +0100 (CET) Received: (qmail 49578 invoked by uid 500); 14 Dec 2016 08:37:17 -0000 Mailing-List: contact user-help@predictionio.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@predictionio.incubator.apache.org Delivered-To: mailing list user@predictionio.incubator.apache.org Received: (qmail 49568 invoked by uid 99); 14 Dec 2016 08:37:17 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Dec 2016 08:37:17 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 469461A02FD for ; Wed, 14 Dec 2016 08:37:17 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.279 X-Spam-Level: * X-Spam-Status: No, score=1.279 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id MsnL2gCrV7Ze for ; Wed, 14 Dec 2016 08:37:13 +0000 (UTC) Received: from SNT004-OMC2S16.hotmail.com (snt004-omc2s16.hotmail.com [65.55.90.91]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id E81095F238 for ; Wed, 14 Dec 2016 08:37:11 +0000 (UTC) Received: from EUR01-VE1-obe.outbound.protection.outlook.com ([65.55.90.73]) by SNT004-OMC2S16.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.23008); Wed, 14 Dec 2016 00:36:23 -0800 Received: from DB5EUR01FT003.eop-EUR01.prod.protection.outlook.com (10.152.4.52) by DB5EUR01HT168.eop-EUR01.prod.protection.outlook.com (10.152.5.94) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.6; Wed, 14 Dec 2016 08:36:01 +0000 Received: from DB5PR08MB1158.eurprd08.prod.outlook.com (10.152.4.55) by DB5EUR01FT003.mail.protection.outlook.com (10.152.4.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.6 via Frontend Transport; Wed, 14 Dec 2016 08:36:01 +0000 Received: from DB5PR08MB1158.eurprd08.prod.outlook.com ([10.166.174.139]) by DB5PR08MB1158.eurprd08.prod.outlook.com ([10.166.174.139]) with mapi id 15.01.0771.014; Wed, 14 Dec 2016 08:36:01 +0000 From: Hossein Bahrami To: Pat Ferrel , "user@predictionio.incubator.apache.org" CC: Magnus Kragelund Subject: RE: Customizing Recommender engine Thread-Topic: Customizing Recommender engine Thread-Index: AQHSVSb3P8VFqqjF4UegqQv95nn/FKEFuUVpgAA0cQeAAHGnAIAAwIZq Date: Wed, 14 Dec 2016 08:36:00 +0000 Message-ID: References: ,<88A50DB5-67B8-4CE2-A7E9-8D3366C2F7AF@occamsmachete.com> In-Reply-To: <88A50DB5-67B8-4CE2-A7E9-8D3366C2F7AF@occamsmachete.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: occamsmachete.com; dkim=none (message not signed) header.d=none;occamsmachete.com; dmarc=none action=none header.from=live.com; x-incomingtopheadermarker: OriginalChecksum:E7530049FD1F418F7EE9E8AD5F4ED236BEE5C88D55199F771753D20EB872D1A8;UpperCasedChecksum:55E8196AA385C7736D7C57EE6E351C58E593F842C2EFA57E45E10BBF8C0E34F5;SizeAsReceived:7761;Count:40 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [YfwE5VtetHGPUjsvFnOYAESnEjKz98m7] x-incomingheadercount: 40 x-eopattributedmessage: 0 x-microsoft-exchange-diagnostics: 1;DB5EUR01HT168;7:b3pq4YMX5Zt/n9wZtxf01Iu+zojndMGSax+FXwzIo8JEXKJX/tcTotTOMfpzFCaBHxLFKCFOMVuETYw9uHTKjDNbGpD2kwzD6XizIlMCAot4EFLQOXmzyHPTKEjp0np17ctSd1KgH5+2PoLGNuCbJr+bmGPlD48xW1cgPcRI30EMyWLXxHIsvYtidNZIqB57codDEaajsBieMLQlpdEN03ADckCes7z98xmtq0khnEP7O6O7rulPvcPPJEm43vgcolQgZRJDtRwNHJMMlJN1P5CqGsGgGA0vy7v6UsjJAdUdf6Ct1yN80jRTRz7+ynGTULfYiKi/yhdPN5aYfqjGjh54z6fuu1RGRE9ILtN2E0rZ04Vr0uCGrRYJezdVDzGazTz4ZnNXCWkXvZaQWMxph8/ZQsHkIWK5uPClYFLXL7a6uitMm2B6IMqX7jD5MsxKSIR1JKi4P/E10hLriXxWcg== x-forefront-antispam-report: EFV:NLI;SFV:NSPM;SFS:(10019020)(98900003);DIR:OUT;SFP:1102;SCL:1;SRVR:DB5EUR01HT168;H:DB5PR08MB1158.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en; x-ms-office365-filtering-correlation-id: 03a6aac0-7e9c-46ea-91cf-08d423fc3bf6 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(1601124038)(1603103113)(1601125047);SRVR:DB5EUR01HT168; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(432015012)(82015046);SRVR:DB5EUR01HT168;BCL:0;PCL:0;RULEID:;SRVR:DB5EUR01HT168; x-forefront-prvs: 01565FED4C spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/alternative; boundary="_000_DB5PR08MB1158407792EE3F53712A5A62999A0DB5PR08MB1158eurp_" MIME-Version: 1.0 X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2016 08:36:00.8406 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5EUR01HT168 X-OriginalArrivalTime: 14 Dec 2016 08:36:23.0618 (UTC) FILETIME=[26EE2A20:01D255E5] archived-at: Wed, 14 Dec 2016 08:37:20 -0000 --_000_DB5PR08MB1158407792EE3F53712A5A62999A0DB5PR08MB1158eurp_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Hi Pat, Thanks for your reply, the reason I switched back to the Recommendation Eng= ine is getting error during build. This is my pio version : 0.10.0-incubating And I=92m getting below error during pio build of the UR template you share= d, and also you can find the engine.json as well ########################################################################## { "comment":" This config file uses default settings for all but the requir= ed values see README.md for docs", "id": "default", "description": "Default settings", "engineFactory": "org.template.RecommendationEngine", "datasource": { "params" : { "name": "sample-handmade-data.txt", "appName": "ur2", "eventNames": ["rate", "$set"] } }, "sparkConf": { "spark.serializer": "org.apache.spark.serializer.KryoSerializer", "spark.kryo.registrator": "org.apache.mahout.sparkbindings.io.MahoutKry= oRegistrator", "spark.kryo.referenceTracking": "false", "spark.kryoserializer.buffer": "300m", "es.index.auto.create": "true" }, "algorithms": [ { "comment": "simplest setup where all values are default, popularity b= ased backfill, must add eventsNames", "name": "ur", "params": { "appName": "ur2", "indexName": "urindex", "typeName": "items", "comment": "must have data for the first event or the model will no= t build, other events are optional", "indicators": [ { "name": "rate" },{ "name": "$set", "maxCorrelatorsPerItem": 50 } ], "availableDateName": "available", "expireDateName": "expires", "dateName": "date", "num": 4 } } ] } ###########################################################################= #### ERRORS [INFO] [Console$] [warn] :::::::::::::::::::::::::::::::::::::::::::= ::: [INFO] [Console$] [warn] :: UNRESOLVED DEPENDENCIES = :: [INFO] [Console$] [warn] :::::::::::::::::::::::::::::::::::::::::::= ::: [INFO] [Console$] [warn] :: org.apache.mahout#mahout-math-scala_2.10= ;0.13.0-SNAPSHOT: not found [INFO] [Console$] [warn] :: org.apache.mahout#mahout-spark_2.10;0.13= .0-SNAPSHOT: not found [INFO] [Console$] [warn] :: org.apache.mahout#mahout-math;0.13.0-SNA= PSHOT: not found [INFO] [Console$] [warn] :: org.apache.mahout#mahout-hdfs;0.13.0-SNA= PSHOT: not found [INFO] [Console$] [warn] :::::::::::::::::::::::::::::::::::::::::::= ::: [INFO] [Console$] [warn] [INFO] [Console$] [warn] Note: Unresolved dependencies path: [INFO] [Console$] [warn] org.apache.mahout:mahout-math-scala= _2.10:0.13.0-SNAPSHOT (/root/workspace/hossein.bahrami/ur2/build.sbt#L17-38= ) [INFO] [Console$] [warn] +- com.actionml:template-scala-pa= rallel-universal-recommendation_2.10:0.5.0 [INFO] [Console$] [warn] org.apache.mahout:mahout-spark_2.10= :0.13.0-SNAPSHOT (/root/workspace/hossein.bahrami/ur2/build.sbt#L17-38) [INFO] [Console$] [warn] +- com.actionml:template-scala-pa= rallel-universal-recommendation_2.10:0.5.0 [INFO] [Console$] [warn] org.apache.mahout:mahout-math:0.13.= 0-SNAPSHOT (/root/workspace/hossein.bahrami/ur2/build.sbt#L17-38) [INFO] [Console$] [warn] +- com.actionml:template-scala-pa= rallel-universal-recommendation_2.10:0.5.0 [INFO] [Console$] [warn] org.apache.mahout:mahout-hdfs:0.13.= 0-SNAPSHOT (/root/workspace/hossein.bahrami/ur2/build.sbt#L17-38) [INFO] [Console$] [warn] +- com.actionml:template-scala-pa= rallel-universal-recommendation_2.10:0.5.0 [INFO] [Console$] sbt.ResolveException: unresolved dependency: org.apache.m= ahout#mahout-math-scala_2.10;0.13.0-SNAPSHOT: not found [INFO] [Console$] unresolved dependency: org.apache.mahout#mahout-spark_2.1= 0;0.13.0-SNAPSHOT: not found [INFO] [Console$] unresolved dependency: org.apache.mahout#mahout-math;0.13= .0-SNAPSHOT: not found [INFO] [Console$] unresolved dependency: org.apache.mahout#mahout-hdfs;0.13= .0-SNAPSHOT: not found [INFO] [Console$] at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActio= ns.scala:278) [INFO] [Console$] at sbt.IvyActions$$anonfun$updateEither$1.apply(Ivy= Actions.scala:175) [INFO] [Console$] at sbt.IvyActions$$anonfun$updateEither$1.apply(Ivy= Actions.scala:157) [INFO] [Console$] at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Iv= y.scala:151) [INFO] [Console$] at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Iv= y.scala:151) [INFO] [Console$] at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:12= 8) [INFO] [Console$] at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:56) [INFO] [Console$] at sbt.IvySbt$$anon$4.call(Ivy.scala:64) [INFO] [Console$] at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.s= cala:93) [INFO] [Console$] at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$Globa= lLock$$withChannelRetries$1(Locks.scala:78) [INFO] [Console$] at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock= $1.apply(Locks.scala:97) [INFO] [Console$] at xsbt.boot.Using$.withResource(Using.scala:10) [INFO] [Console$] at xsbt.boot.Using$.apply(Using.scala:9) [INFO] [Console$] at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoid= ed(Locks.scala:58) [INFO] [Console$] at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:= 48) [INFO] [Console$] at xsbt.boot.Locks$.apply0(Locks.scala:31) [INFO] [Console$] at xsbt.boot.Locks$.apply(Locks.scala:28) [INFO] [Console$] at sbt.IvySbt.withDefaultLogger(Ivy.scala:64) [INFO] [Console$] at sbt.IvySbt.withIvy(Ivy.scala:123) [INFO] [Console$] at sbt.IvySbt.withIvy(Ivy.scala:120) [INFO] [Console$] at sbt.IvySbt$Module.withModule(Ivy.scala:151) [INFO] [Console$] at sbt.IvyActions$.updateEither(IvyActions.scala:15= 7) [INFO] [Console$] at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1= .apply(Defaults.scala:1318) [INFO] [Console$] at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1= .apply(Defaults.scala:1315) [INFO] [Console$] at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$85.a= pply(Defaults.scala:1345) [INFO] [Console$] at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$85.a= pply(Defaults.scala:1343) [INFO] [Console$] at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.= scala:35) [INFO] [Console$] at sbt.Classpaths$$anonfun$doWork$1$1.apply(Default= s.scala:1348) [INFO] [Console$] at sbt.Classpaths$$anonfun$doWork$1$1.apply(Default= s.scala:1342) [INFO] [Console$] at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracke= d.scala:45) [INFO] [Console$] at sbt.Classpaths$.cachedUpdate(Defaults.scala:1360= ) [INFO] [Console$] at sbt.Classpaths$$anonfun$updateTask$1.apply(Defau= lts.scala:1300) [INFO] [Console$] at sbt.Classpaths$$anonfun$updateTask$1.apply(Defau= lts.scala:1275) [INFO] [Console$] at scala.Function1$$anonfun$compose$1.apply(Functio= n1.scala:47) [INFO] [Console$] at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeF= unctions.scala:40) [INFO] [Console$] at sbt.std.Transform$$anon$4.work(System.scala:63) [INFO] [Console$] at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.a= pply(Execute.scala:226) [INFO] [Console$] at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.a= pply(Execute.scala:226) [INFO] [Console$] at sbt.ErrorHandling$.wideConvert(ErrorHandling.sca= la:17) [INFO] [Console$] at sbt.Execute.work(Execute.scala:235) [INFO] [Console$] at sbt.Execute$$anonfun$submit$1.apply(Execute.scal= a:226) [INFO] [Console$] at sbt.Execute$$anonfun$submit$1.apply(Execute.scal= a:226) [INFO] [Console$] at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.ap= ply(ConcurrentRestrictions.scala:159) [INFO] [Console$] at sbt.CompletionService$$anon$2.call(CompletionSer= vice.scala:28) [INFO] [Console$] at java.util.concurrent.FutureTask.run(FutureTask.j= ava:266) [INFO] [Console$] at java.util.concurrent.Executors$RunnableAdapter.c= all(Executors.java:511) [INFO] [Console$] at java.util.concurrent.FutureTask.run(FutureTask.j= ava:266) [INFO] [Console$] at java.util.concurrent.ThreadPoolExecutor.runWorke= r(ThreadPoolExecutor.java:1142) [INFO] [Console$] at java.util.concurrent.ThreadPoolExecutor$Worker.r= un(ThreadPoolExecutor.java:617) [INFO] [Console$] at java.lang.Thread.run(Thread.java:745) [INFO] [Console$] [error] (*:update) sbt.ResolveException: unresolved depen= dency: org.apache.mahout#mahout-math-scala_2.10;0.13.0-SNAPSHOT: not found [INFO] [Console$] [error] unresolved dependency: org.apache.mahout#mahout-s= park_2.10;0.13.0-SNAPSHOT: not found [INFO] [Console$] [error] unresolved dependency: org.apache.mahout#mahout-m= ath;0.13.0-SNAPSHOT: not found [INFO] [Console$] [error] unresolved dependency: org.apache.mahout#mahout-h= dfs;0.13.0-SNAPSHOT: not found [INFO] [Console$] [error] Total time: 4 s, completed Dec 14, 2016 9:16:15 A= M [ERROR] [Console$] Return code of previous step is 1. Aborting. Regards Hossein =85=85=85=85=85=85=85=85=85=85=85=85 From: Pat Ferrel Sent: Tuesday, December 13, 2016 10:08 PM To: user@predictionio.incubator.apache.org Cc: Magnus Kragelund Subject: Re: Customizing Recommender engine The UR has a new Apache PIO compatible repo here: https://github.com/action= ml/universal-recommender.git git clone https://github.com/actionml/universal-recommender.git ur and proceed. The UR allows boosts or filters by properties. You are using a= filter (bias -1), which does not work with the template you are using. Eac= h template defines its own queries, config (engine.json), and input formats= . There are a few common ideas but each one will have quite a few differenc= es also and very different features. On Dec 13, 2016, at 6:20 AM, Hossein Bahrami > wrote: Hi, thanks for your reply. I don=92t use Universal recommender, actually I = use the Recommender Engine (http://predictionio.incubator.apache.org/templa= tes/recommendation/quickstart/) First I tried to use Universal recommender but it was difficulties building= the project so I switched to the Recommendation Engine (RE), the RE works = fine but don=92t know how to customize it to take other events (items=92 pr= operties as I described ) into account. Seems the RE returns very high score recommendations with my data so I gues= s it=92s the choice here for me and just want to do some customization on i= t to make it predict recommendations per category (i.e property) of items. Regards Hossein From: Magnus Kragelund Sent: Tuesday, December 13, 2016 12:17 PM To: user@predictionio.incubator.apache.org Subject: Re: Customizing Recommender engine Hi, Assuming that you are using the Universal Recommender Engine, you should ha= ve a look at the "Queries" section here: https://github.com/PredictionIO/te= mplate-scala-parallel-universal-recommendation#queries Try this request instead, where the "fields" property is used to filter by = category { "user": "674296", "num": 10, "fields": [ { "name": "categories", "values": ["CAT1", "CAT2"], "bias": -1 } ] } /magnus ________________________________ From: Hossein Bahrami > Sent: Tuesday, December 13, 2016 10:55:00 AM To: user@predictionio.incubator.apache.org Subject: Customizing Recommender engine Dear all, I=92m new to Predictionio, currently I=92m using it and I managed to import= (rate, buy) events and getting pretty good results querying it. But now I = want to limit the results for items in specific categories. I=92ve created = events for items=92 properties (categories) as well . I am posting this query to engine but it seems doesn=92t care about the cat= egories and returns same result every time. { "user": "674296", "num": 10, "categories" : ["CAT2", "CAT1"] } I=92ve imported bellow events client.create_event(event=3D"rate", entity_type=3D"user", entity_id=3Dint(row['userid']), target_entity_type=3D"item", target_entity_id=3Dint(row['itemid']), properties=3D { "rating" : float(row['rating']) }); client.create_event( event=3D"buy", entity_type=3D"user", entity_id=3Dint(row['userid']), target_entity_type=3D"item", target_entity_id=3Dint(row['itemid']), ); client.create_event( event=3D"$set", entity_type=3D"item", entity_id=3Ditemid, properties=3D { "categories": itemcats } ); Could someone give me a solution or hint to how customize this recommender = engine to take the categories into account. Thanks in advance Hossein --_000_DB5PR08MB1158407792EE3F53712A5A62999A0DB5PR08MB1158eurp_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable

Hi Pat,

Thanks for your reply, the reason I switched back to= the Recommendation Engine is getting error during build.

 

This is my pio version :  0.10.0-incubating

 

And I=92m getting below error during pio build of th= e UR template you shared, and also you can find the engine.json as well

####################################################= ######################

{

  "comment":" This config file uses default settings= for all but the required values see README.md for docs",

  "id": "default",

  "description": "Default settings",=

  "engineFactory": "org.template.RecommendationEngin= e",

  "datasource": {

    "params" : {

      "name": "sample-handmade-d= ata.txt",

      "appName": "ur2",

      "eventNames": ["rate"= , "$set"]

    }

  },

  "sparkConf": {

    "spark.serializer": "org.apache.spark.= serializer.KryoSerializer",

    "spark.kryo.registrator": "org.apache.= mahout.sparkbindings.io.MahoutKryoRegistrator",

    "spark.kryo.referenceTracking": "false= ",

    "spark.kryoserializer.buffer": "300m&q= uot;,

    "es.index.auto.create": "true"

  },

  "algorithms": [

    {

      "comment": "simplest setup= where all values are default, popularity based backfill, must add eventsNa= mes",

      "name": "ur",

      "params": {

        "appName": "ur= 2",

        "indexName": "= urindex",

        "typeName": "i= tems",

        "comment": "mu= st have data for the first event or the model will not build, other events = are optional",

        "indicators": [

          {

            "= ;name": "rate"

          },{

            "= ;name": "$set",

            "= ;maxCorrelatorsPerItem": 50

          }

        ],

        "availableDateName"= : "available",

        "expireDateName": &= quot;expires",

        "dateName": "d= ate",

        "num": 4=

      }

    }

  ]

}

####################################################= ###########################

ERRORS

 

[INFO] [Console$] [warn]     &nb= sp;  ::::::::::::::::::::::::::::::::::::::::::::::

[INFO] [Console$] [warn]    &nbs= p;   ::          UNR= ESOLVED DEPENDENCIES         ::

[INFO] [Console$] [warn]    &nbs= p;   ::::::::::::::::::::::::::::::::::::::::::::::

[INFO] [Console$] [warn]    &nbs= p;   :: org.apache.mahout#mahout-math-scala_2.10;0.13.0-SNAPSHOT:= not found

[INFO] [Console$] [warn]    &nbs= p;   :: org.apache.mahout#mahout-spark_2.10;0.13.0-SNAPSHOT: not = found

[INFO] [Console$] [warn]    &nbs= p;   :: org.apache.mahout#mahout-math;0.13.0-SNAPSHOT: not found<= /p>

[INFO] [Console$] [warn]    &nbs= p;   :: org.apache.mahout#mahout-hdfs;0.13.0-SNAPSHOT: not found<= /p>

[INFO] [Console$] [warn]    &nbs= p;   ::::::::::::::::::::::::::::::::::::::::::::::

[INFO] [Console$] [warn]

[INFO] [Console$] [warn]&n= bsp;       Note: Unresolved dependencies path= :

[INFO] [Console$] [warn]&n= bsp;            = ;   org.apache.mahout:mahout-math-scala_2.10:0.13.0-SNAPSHOT (/ro= ot/workspace/hossein.bahrami/ur2/build.sbt#L17-38)

[INFO] [Console$] [warn]&n= bsp;            = ;     +- com.actionml:template-scala-parallel-unive= rsal-recommendation_2.10:0.5.0

[INFO] [Console$] [warn]&n= bsp;            = ;   org.apache.mahout:mahout-spark_2.10:0.13.0-SNAPSHOT (/root/wo= rkspace/hossein.bahrami/ur2/build.sbt#L17-38)

[INFO] [Console$] [warn]&n= bsp;            = ;     +- com.actionml:template-scala-parallel-unive= rsal-recommendation_2.10:0.5.0

[INFO] [Console$] [warn]&n= bsp;            = ;   org.apache.mahout:mahout-math:0.13.0-SNAPSHOT (/root/workspac= e/hossein.bahrami/ur2/build.sbt#L17-38)

[INFO] [Console$] [warn]&n= bsp;            = ;     +- com.actionml:template-scala-parallel-unive= rsal-recommendation_2.10:0.5.0

[INFO] [Console$] [warn]&n= bsp;            = ;   org.apache.mahout:mahout-hdfs:0.13.0-SNAPSHOT (/root/workspac= e/hossein.bahrami/ur2/build.sbt#L17-38)

[INFO] [Console$] [warn]&n= bsp;            = ;     +- com.actionml:template-scala-parallel-unive= rsal-recommendation_2.10:0.5.0

[INFO] [Console$] sbt.Reso= lveException: unresolved dependency: org.apache.mahout#mahout-math-scala_2.= 10;0.13.0-SNAPSHOT: not found

[INFO] [Console$] unresolved dependency: org.apache.= mahout#mahout-spark_2.10;0.13.0-SNAPSHOT: not found

[INFO] [Console$] unresolved dependency: org.apache.= mahout#mahout-math;0.13.0-SNAPSHOT: not found

[INFO] [Console$] unresolved dependency: org.apache.= mahout#mahout-hdfs;0.13.0-SNAPSHOT: not found

[INFO] [Console$]      = ; at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:278)

[INFO] [Console$]      = ; at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:175)

[INFO] [Console$]      = ; at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:157)

[INFO] [Console$]      = ; at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:151)

[INFO] [Console$]      = ; at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:151)

[INFO] [Console$]      = ; at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:128)

[INFO] [Console$]      = ; at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:56)

[INFO] [Console$]      = ; at sbt.IvySbt$$anon$4.call(Ivy.scala:64)

[INFO] [Console$]      = ; at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:93)

[INFO] [Console$]      = ; at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetr= ies$1(Locks.scala:78)

[INFO] [Console$]      = ; at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:9= 7)

[INFO] [Console$]      = ; at xsbt.boot.Using$.withResource(Using.scala:10)

[INFO] [Console$]      = ; at xsbt.boot.Using$.apply(Using.scala:9)

[INFO] [Console$]      = ; at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58)

[INFO] [Console$]      = ; at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48)

[INFO] [Console$]      = ; at xsbt.boot.Locks$.apply0(Locks.scala:31)

[INFO] [Console$]      = ; at xsbt.boot.Locks$.apply(Locks.scala:28)

[INFO] [Console$]      = ; at sbt.IvySbt.withDefaultLogger(Ivy.scala:64)

[INFO] [Console$]      = ; at sbt.IvySbt.withIvy(Ivy.scala:123)

[INFO] [Console$]      = ; at sbt.IvySbt.withIvy(Ivy.scala:120)

[INFO] [Console$]      = ; at sbt.IvySbt$Module.withModule(Ivy.scala:151)

[INFO] [Console$]      = ; at sbt.IvyActions$.updateEither(IvyActions.scala:157)

[INFO] [Console$]      = ; at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:= 1318)

[INFO] [Console$]      = ; at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:= 1315)

[INFO] [Console$]      = ; at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$85.apply(Defaults.scala:13= 45)

[INFO] [Console$]      = ; at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$85.apply(Defaults.scala:13= 43)

[INFO] [Console$]      = ; at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:35)

[INFO] [Console$]      = ; at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1348)

[INFO] [Console$]      = ; at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1342)

[INFO] [Console$]      = ; at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:45)

[INFO] [Console$]      = ; at sbt.Classpaths$.cachedUpdate(Defaults.scala:1360)

[INFO] [Console$]      = ; at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1300)

[INFO] [Console$]      = ; at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1275)

[INFO] [Console$]      = ; at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)

[INFO] [Console$]      = ; at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)

[INFO] [Console$]      = ; at sbt.std.Transform$$anon$4.work(System.scala:63)

[INFO] [Console$]      = ; at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226= )

[INFO] [Console$]      = ; at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226= )

[INFO] [Console$]      = ; at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)

[INFO] [Console$]      &nbs= p;at sbt.Execute.work(Execute.scala:235)

[INFO] [Console$]      = ; at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)

[INFO] [Console$]      = ; at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)

[INFO] [Console$]      = ; at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrict= ions.scala:159)

[INFO] [Console$]      = ; at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)

[INFO] [Console$]      = ; at java.util.concurrent.FutureTask.run(FutureTask.java:266)

[INFO] [Console$]      = ; at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511= )

[INFO] [Console$]      = ; at java.util.concurrent.FutureTask.run(FutureTask.java:266)

[INFO] [Console$]      = ; at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j= ava:1142)

[INFO] [Console$]      = ; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.= java:617)

[INFO] [Console$]      = ; at java.lang.Thread.run(Thread.java:745)

[INFO] [Console$] [error] = (*:update) sbt.ResolveException: unresolved dependency: org.apache.mahout#m= ahout-math-scala_2.10;0.13.0-SNAPSHOT: not found

[INFO] [Console$] [error] = unresolved dependency: org.apache.mahout#mahout-spark_2.10;0.13.0-SNAPSHOT:= not found

[INFO] [Console$] [error] = unresolved dependency: org.apache.mahout#mahout-math;0.13.0-SNAPSHOT: not f= ound

[INFO] [Console$] [error] = unresolved dependency: org.apache.mahout#mahout-hdfs;0.13.0-SNAPSHOT: not f= ound

[INFO] [Console$] [error] = Total time: 4 s, completed Dec 14, 2016 9:16:15 AM

[ERROR] [Console$] Return = code of previous step is 1. Aborting.

 

Regards

Hossein

=85=85=85=85=85=85=85=85=85=85=85=85

 

From: Pat Ferrel
Sent: Tuesday, December 13, 2016 10:08 PM
To: user@p= redictionio.incubator.apache.org
Cc: Magnus Kragelund
Subject: Re: Customizing Recommender engine

 

The UR has a new Apache PIO compatible repo here: https://githu= b.com/actionml/universal-recommender.git


and proceed. The UR allows boosts or filters by properties.= You are using a filter (bias -1), which does not work with the template yo= u are using. Each template defines its own queries, config (engine.json), a= nd input formats. There are a few common ideas but each one will have quite a few differences also and very = different features. 



On Dec 13, 2016, at 6:20 AM, Hossein Bahrami <h.bahrami@live.com> wrote:
Hi, thanks for your reply. I don=92t use Universal recommender, actually I = use the Recommender Engine (http://predictionio.incubator.ap= ache.org/templates/recommendation/quickstart/)
 
First I tried to use Universal recommender but it was difficulties building= the project so I switched to the Recommendation Engine (RE), the RE works = fine but don=92t know how to customize it to take other events (items=92 pr= operties as I described ) into account.
 
Seems the RE returns very high score recommendations with my data so I gues= s it=92s the choice here for me and just want to do some customization on i= t to make it predict recommendations per category (i.e property) of items.<= /div>
 
Regards
Hossein
 
From: <= a href=3D"mailto:mak@ida.dk" style=3D"color: rgb(149, 79, 114); text-decora= tion: underline;" class=3D"">Magnus Kragelund
Sent: T= uesday, December 13, 2016 12:17 PM
To: user@predictionio.in= cubator.apache.org
Subject: Re: Customizing Recommender engine&= nbsp;
 
Hi,
Assuming tha= t you are using the Universal Recommender Engine, you should have a look at= the "Queries" section here: https://github.com/Predict= ionIO/template-scala-parallel-universal-recommendation#queries

Try this req= uest instead, where the "fields" property is used to filter by ca= tegory

= "user": "674296", 
= "num": 10, 
= "fields": [
= {
= "name": "categories",
= "values": ["CAT1", "CAT2"],
= "bias": -1
= }
 ]
}

/magnus


From: Hossein Bahrami <h.bahrami@live.com>
Sent: T= uesday, December 13, 2016 10:55:00 AM
To: user@pred= ictionio.incubator.apache.org
Subject: Customizing Recommender engine = ;
 
Dear all,
 
I=92m new to Predictionio, currently I=92m using it and I managed to import= (rate, buy) events and getting pretty good results querying it. But now I = want to limit the results for items in specific categories. I=92ve created = events for items=92 properties (categories) as well .
 
I am posting this query to engine but it seems doesn=92t care about the cat= egories and returns same result every time.
 
{ "user": "674296", "num": 10, "categori= es" : ["CAT2", "CAT1"] }
 
I=92ve imported bellow events
 
client.create_event(event=3D"rate",
entity_type=3D"user",
entity_id=3Dint(row['userid']),
target_entity_type=3D"item",
target_entity_id=3Dint(row['itemid']),
properties=3D { "rating" : float(row['rating']) });

            &nb= sp;            =             &nb= sp;          

client.create_event(
event=3D"buy",
entity_type=3D"user",
entity_id=3Dint(row['userid']),
target_entity_type=3D"item",
target_entity_id=3Dint(row['itemid']), );

            &nb= sp;            =       &= nbsp;

client.create_event(
event=3D"$set",
entity_type=3D"item",
entity_id=3Ditemid,
properties=3D { "categories": itemcats }
);
 
Could someone give me a solution or hint to how customize this recommender = engine to take the categories into account.
 
Thanks in advance
Hossein 

--_000_DB5PR08MB1158407792EE3F53712A5A62999A0DB5PR08MB1158eurp_--